我在我的系统中安装了 xampp 的位置/opt/lampp。之后我使用以下命令将 php 位置添加到我的路径变量中
export PATH=$PATH:/opt/lampp/bin
Run Code Online (Sandbox Code Playgroud)
因此,当我php -v使用终端运行时,我得到了预期的输出。
PHP 5.6.8 (cli) (built: Apr 20 2015 18:37:47)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时sudo php -v我得到这个:
sudo: php: command not found
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会发生这种情况。将其添加到路径变量时我做错了什么吗?
编辑:
这个问题不是与 'sudo' 一起运行时的环境变量的重复,因为在该问题中 zetah 询问如何将任意变量传递给 python 命令。他们能够执行pythonusing sudo,但我无法执行phpusing sudo。
根据此答案sudo,我使用以下命令添加了 PATH :
sudo PATH=$PATH:/opt/lampp/bin php -v
Run Code Online (Sandbox Code Playgroud)
但我得到的输出和以前一样:
sudo: php: command not found …Run Code Online (Sandbox Code Playgroud) 我有这个 PHP 脚本:
$dir = FCPATH . 'uploads' . DIRECTORY_SEPARATOR . 'posts'; // is in CodeIngiter
if (!is_dir($dir)) {
mkdir($dir, 755);
}
Run Code Online (Sandbox Code Playgroud)
这将创建一个用于存储帖子图像的文件夹。但是我收到此错误/警告:
Severity: Warning
Message: mkdir(): Permission denied
Run Code Online (Sandbox Code Playgroud)
我无法创建该文件夹。
我怎样才能解决这个问题?我的文件夹结构如下所示:
/opt/lampp/htdocs/www/my-site/public/ (uploads/posts) // all folders inside files will generate in php
Run Code Online (Sandbox Code Playgroud)
一些进一步的信息:如果我评论此代码,手动创建posts文件夹,然后尝试上传文件,我会收到一条错误消息,指出目标路径不可写。
输出ls -l /opt/lampp/htdocs/www/my-site/:
drwxrwxr-x 15 lykos lykos 4096 Sep 17 23:08 application
drwxrwxrwx 6 lykos lykos 4096 Sep 29 22:00 public
drwxrwxr-x 8 lykos lykos 4096 Sep 7 12:31 system
Run Code Online (Sandbox Code Playgroud)
输出ls -l …
但是,没有答案...为什么命令会sudo apt-get install lamp-server^安装一些 Perl 库?如help.ubuntu.com上所述。
帮助链接显示,命令安装以下软件包:apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 php5-common php5-mysql。
如果我只需要 Apache、MySQL 和 PHP,我可以跳过安装 Perl 吗?或者我的“基于 PHP”的 LAMP 需要这些包?
我已经开始使用一个需要xmlwriter PHP 扩展的库,但它似乎没有安装在我的服务器上。
我该如何安装?
我试过这个:
sudo yum install libxml2
Run Code Online (Sandbox Code Playgroud)
但结果是:
There are no enabled repos.
Run Code Online (Sandbox Code Playgroud)
是否有另一种安装方法,例如使用 apt-get?或者我该如何安装它?
我想知道如何在 Ubuntu Server 18.04 LTS 上安装 PHP 5.3,因为我的系统只需要 PHP 5.3。
这可能吗?
我试过这个:
? /etc dpkg -l |grep php
rc php7.1-cli 7.1.17-1+ubuntu17.10.1+deb.sury.org+1 amd64 command-line interpreter for the PHP scripting language
rc php7.1-fpm 7.1.17-1+ubuntu17.10.1+deb.sury.org+1 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)
rc php7.1-json 7.1.17-1+ubuntu17.10.1+deb.sury.org+1 amd64 JSON module for PHP
rc php7.1-mysql 7.1.17-1+ubuntu17.10.1+deb.sury.org+1 amd64 MySQL module for PHP
rc php7.1-opcache 7.1.17-1+ubuntu17.10.1+deb.sury.org+1 amd64 Zend OpCache module for PHP
rc php7.1-readline 7.1.17-1+ubuntu17.10.1+deb.sury.org+1 amd64 readline module for PHP
rc phpmyadmin 4:4.6.6-5 all MySQL web administration tool
Run Code Online (Sandbox Code Playgroud)
然后我尝试了这个:
? /etc apt remove php7.1-cli php7.1-fpm php7.1-json php7.1-mysql php7.1-opache php7.1-readline …Run Code Online (Sandbox Code Playgroud) 我正在尝试在全新安装的 Ubuntu Server 18.04 上安装 LEMP 堆栈。我能够通过安装除 php-fpm 之外的所有内容。即使在 18.04 上安装 LEMP 时的每个指令站点(尽管看起来每个人都从一个站点窃取了他们的站点)都说要安装它,但它似乎并不在包存储库中。关于如何安装它或替代 php-fpm 的任何想法?
seafile@seafile:~$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Fetched 172 kB in 1s (139 kB/s)
Reading package lists... Done
sudo apt-get install php
php php7.2-dev php7.2-odbc php7.2-snmp php-cgi php-gmp php-pspell
php7.2 php7.2-gd php7.2-opcache php7.2-sqlite3 php-cli php-ldap php-recode
php7.2-cgi php7.2-gmp php7.2-pgsql php7.2-tidy php-common php-mysql php-snmp
php7.2-cli php7.2-json php7.2-pspell php7.2-xml php-curl php-odbc php-sqlite3
php7.2-common php7.2-ldap …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Ubuntu 18.04(nginx + PHP 7.2)上使用 php memcache 扩展。Memcached 已安装并正常工作,但我无法使php-memcache扩展正常工作。
我可以毫无问题地安装 libmemcached11:
$ sudo apt-get install libmemcached11
libmemcached11 is already the newest version (1.0.18-5+deb.sury.org~xenial+2).
Run Code Online (Sandbox Code Playgroud)
当我运行时:
$ sudo apt install libmemcached-dev
The following packages have unmet dependencies:
libmemcached-dev : Depends: libmemcached11 (= 1.0.18-4.2ubuntu0.18.04.1) but 1.0.18-5+deb.sury.org~xenial+2 is to be installed
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我想练习从(几乎)从头开始设置 PHP / Apache Web 服务器,即:
随着我在途中跨越的任何障碍。我可以通过设置DigitalOcean Ubuntu droplet来做到这一点,但我想我也可以使用 VirtualBox(在 Windows 8.1 上)来做到这一点。但是到目前为止我看到的说明涉及下载 Ubuntu 桌面 ISO 映像并将其用作 VirtualBox 中的基础。我真的需要那个吗?
我不需要将 Ubuntu 用作桌面操作系统。可能是一个愚蠢的问题,但是我应该使用更精简的图像,还是我认为这一切都错了?

如您所见,它有 index.php 文件,但默认情况下并没有打开它。
我在/etc/apache2/mods-enabled/dir.conf
这里编辑的是文件
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Run Code Online (Sandbox Code Playgroud)
只有这个文件夹才会发生这种情况。所有其他文件夹都在那里打开 index.php 文件。