本文解释如何在Ubuntu 16.04 LTS(Xenial Xerus)上安装PHP 7.0(php-fpm)。在开始之前需要安装好诸如Nginx或Apache之类的http服务器。
1.初步步骤
首先,通过运行以下命令确保你的系统和apt包列表是最新版:
apt-get update -y && apt-get upgrade -y
-y参数的意思是可以在不提示我们的情况下更新。
2.安装PHP 7.0
Ubuntu默认安装FastCGI Process Manager,也就是php-fpm。要安装PHP 7.0(和php7.0-fpm),需要的命令是:
apt-get install php -y
检查php7.0-fpm是否正在运行:
systemctl status php7.0-fpm
如果它没有运行,则通过以下命令启动php7.0-fpm服务:
systemctl start php7.0-fpm
设置php7.0-fpm在重启时启动:
systemctl enable php7.0-fpm
3.配置PHP 7.0以使用Apache 2.4
本节假定你已经安装了Apache 2.4。只需很少的配置就可以让PHP 7.0和Apache 2.4正常工作。
你可以设置Apache执行文件后缀的优先级,编辑默认站点的配置文件:
vi /etc/apache2/sites-available/000-default.conf
在VirtualHost *:80块内找到这一行:
DocumentRoot / var / www / html
在它后面添加以下行,然后保存并退出:
DirectoryIndex index.php index.html
index.php和index.html的顺序决定哪一个优先。
重新启动Apache:
systemctl restart apache2
创建一个测试index.php文件:
vi /var/www/html/index.php
粘贴下面的代码,然后保存并退出文件:
<?php
echo “Hello world!”;
?>
再次在浏览器中输入服务器的IP地址,你应该看到文本“Hello world!”。而不是缺省的Apache页面。
若没有看到(显示源代码或其他不正常的情况)请校验apache是否载入PHP模块
a2query -m php7.0
若没有载入,则执行下面的命令加载模块
a2enmod php7.0
另外还有一种情况就是你没有安装libapache2-mod-php7.0
apt-get install libapache2-mod-php7.0 -y
安装完成后执行前两步步骤。
最后重启apache
systemctl restart apache2
4.配置PHP 7.0以使用Nginx
本节假定你已经安装了Nginx。Nginx需要比Apache更多的配置才能使它和PHP 7.0一起工作。
首先,创建一个测试index.php文件:
vi /var/www/html/index.php
粘贴下面的代码,然后保存并退出文件:
<?php
echo “Hello world,I’m PHP!”;
?>
现在编辑deafult Nginx配置文件:
vi/etc/nginx/sites-available/default
找到以下行:
index index.html index.htm index.nginx-debian.html;
添加index.php:
index index.php index.html index.htm index.nginx-debian.html;
index.php,index.html,index.htm和index.nginx-debian.html的顺序确定哪个优先,并且由Nginx首先加载。
找到以下几行:
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
修改如下:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
保存并退出。
现在重新启动php7.0-fpm和nginx:
systemctl restart php7.0 -fpm
systemctl restart nginx
在浏览器中再次浏览到服务器的IP地址,您应该看到文字“Hello world,I’m PHP!” 而不是默认的Nginx页面。