首页 > 后台 > 在Ubuntu14.04上安装Nginx1.10.1和PHP7.0

在Ubuntu14.04上安装Nginx1.10.1和PHP7.0

一、前言

Ubuntu14.04是两年前出的系统了,如果直接用apt-get安装的话,Nginx是1.4的版本,而PHP则是5.5的版本,都是比较老了,如果想安装新一点的版本的话,就得多几道工序。

 

二、安装Nginx 1.10.1

Nginx有两个开发仓库,一个是mainline,另一个是stable。

mainline仓库包含着Nginx官方最新发布的特性,当这些新特性经过一定时间考验成熟后,就会并入stable仓库也就是稳定版中,在Nginx官网中可以查看两个仓库的最新版本情况:

Screenshot_2

可以看到,mainline的最新版本为1.11.3,stable的最新版本为1.10.1,这里选择安装的是后者。

第一步:添加nginx_signing.key

wget http://nginx.org/keys/nginx_signing.key

sudo apt-key add nginx_signing.key

第二步:添加官方源

sudo vi /etc/apt/sources.list.d/nginx.list

然后写入:

deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx

这里的”trusty”是Ubuntu 14.04的系统代号,如果是别的系统版本则换为相应的系统代号(例如Ubuntu 16.04是”xenial”),点击这里可以查看Ubuntu所有系统版本的codename。

Ps:如果想安装mainline版本而非stable版本的话,可以这样写:

deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx

第三步:更新源并安装Nginx

sudo apt-get update && sudo apt-get install nginx

可以输入下面命令检查方才安装的Nginx的版本:

nginx -v

在浏览器里输入Ubuntu系统的所在IP,会出现欢迎页面:

2016050313320837

这说明此时Nginx已经成功地安装在了Ubuntu 14.04上。

 

三、安装PHP7.0

PHP7包含了最新的Zend引擎,据说能显著降低内存使用,速度是PHP5.6的两倍

Zend在其官网中发布了PHP7的性能测评图表,简直6得飞起啊,看到Wordpress的图表时,甚是惊喜:

Screenshot_3

至于实际环境运行怎样,自己倒没去测试过,不过新技术出来了,就要大胆拥抱嘛~

这里通过PPA来安装PHP7

第一步:添加PPA

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php

第二步:安装PHP7

sudo apt-get update
sudo apt-get install -y php7.0

输入”php -v”可以检查安装版本

第三步:安装组件扩展

一般都会用到MYSQL,GD, Cli, JSON:

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json

也可以执行sudo apt-cache search php7 来查看所有相关的组件扩展,选择安装。

第四步:配置PHP

sudo vim /etc/php/7.0/fpm/php.ini

我们需要寻找字段  cgi.fix_pathinfo  (查找方法:vim命令模式下按‘/’,然后输入要查找的字符回车)。这个参数用来对设置cgi模式下为php是否提供绝对路径信息或PATH_INFO信息,Nginx默认是不会设置PATH_INFO环境变量的的值,需要php使用cgi.fix_pathinfo=1来完成路径信息的获取,但同时会带来安全隐患

找到该字段,去掉注释后,把cgi.fix_pathinfo设置为0,这样php就获取不到PATH_INFO信息。

 

四、给Nginx适配php

第一步:统一用户

PHP7的默认所属用户和组为 www-data  需要将Nginx的也改为 www-data  :

sudo vim /etc/nginx/nginx.conf

第二步:修改默认配置

接下来还得告诉Nginx去如何使用PHP处理器,打开Nginx的默认服务配置:

sudo vim /etc/nginx/conf.d/default

我们要做如下改动:

1、添加index.php到server值index中,让Nginx识别index.php

2、开启PHP服务:

location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

改好后保存退出,重启服务:

sudo service php7.0-fpm restart
sudo service nginx restart

 第三步:创建PHP文件,测试上面步骤是否成功

首先创建一个测试文件,我们把它命名为info.php:

sudo vim /usr/share/nginx/html/info.php

然后把以下内容输入到info.php里面:

<?php
    phpinfo();
?>

保存并退出。

现在,你可以通过你的网页浏览器访问服务器了,按照下面格式输入访问的地址:

http://你的域名或IP/info.php

你将看到的是由PHP生成的关于你服务器信息的一个页面:

Check-PHP7-Information-for-Apache

看到这个,就说明你的Nginx和PHP已经成功安装在你的Ubuntu上了!

 

最后为了隐私和安全起见,最好输入下面命令行吧刚才生成的info.php文件删除:

sudo rm /usr/share/nginx/html/info.php

 


本文标题:在Ubuntu14.04上安装Nginx1.10.1和PHP7.0
转载请注明出处,欢迎分享


3 COMMENTS

  1. allen2018-01-24 pm12:00

    请问下楼主,我再用virtualbox下的ubuntu14.04,通过ppa安装php7,使用的是清华大学tuna源,在执行第一步添加ppa之后,执行apt-get update报了Failed to fetch http://ppa.launchpad.net/ondrej/php/ubuntu/dists/trusty/main/binary-amd64/Packages Hash Sum mismatch

    在网上找了很多都没解决问题,请问下楼主遇到过这种问题没有

    • 山客2018-01-25 am11:39

      出现Hash Sum Mismatch是因为你在清华源获取的文件的校验信息跟官方源不一致
      更换为阿里源吧稳定些, 再不行删掉/var/lib/apt/lists/partial/下的文件

  2. 测试2016-08-16 pm5:24

    手机QQ