CentOS7安装Nginx+PHP7

今天做个文章,希望很多新手能少走一些弯路,我也是瞎折腾了很久,网上的教程可以说是多种多样。但我感觉有些是错的有些是过时的,有些是瞎折腾的。废话不多说,马上开始。

安装Nginx

不管是Nginx还是PHP-fpm我都建议使用yum命名安装,编译安装方法复杂度会增加而且容易出错。

yum install -y nginx

完成后查看其运行状态

systemctl status nginx

然后发现并没打开服务,所以开启其服务并再次查看状态

systemctl start nginx
ps -ef | grep -v grep | grep nginx

看到:
root 2195 1 0 20:25 ? 00:00:00 nginx: master process /usr/sbin/nginx
nginx 2196 2195 0 20:25 ? 00:00:00 nginx: worker process
运行

 systemctl status nginx

则看到active (running)
接下来还要将其添加到开机项

systemctl enable nginx

到这里你就可以网页验证nginx是否成功运行。
获取服务器地址(我使用的是虚拟机)

ip addr

《CentOS7安装Nginx+PHP7》 image.png

看到欢迎页面说明安装成功

安装php-fpm

通常的做法会直接yum install php php-fpm
但是这样是安装不到最新版本的PHP,默认是5版本,所以需要改动一下

yum install php70w-fpm

php70w
php70w-bcmath
php70w-cli
php70w-common
php70w-dba
php70w-devel
php70w-embedded
php70w-enchant
php70w-fpm
php70w-gd
php70w-imap
php70w-interbase
php70w-intl
php70w-ldap
php70w-mbstring
php70w-mcrypt
php70w-mysql
php70w-mysqlnd
php70w-odbc
php70w-opcache
php70w-pdo
php70w-pdo_dblib
php70w-pear
php70w-pecl-apcu
php70w-pecl-imagick
php70w-pecl-xdebug
php70w-pgsql
php70w-phpdbg
php70w-process
php70w-pspell
php70w-recode
php70w-snmp
php70w-soap
php70w-tidy
php70w-xml
php70w-xmlrp
这样便可以直接安装到支持7.0版本的PHP的php-fpm,
查看php-fpm服务设定

systemctl list-unit-files | grep php-fpm

开启php-fpm

systemctl start php-fpm

查看其状态

systemctl status php-fpm

设为开机启动项

systemctl enable php-fpm

接下来就是要让Nginx能解析PHP文件,需要修改一些东西
找到目录文件

/etc/nginx/nginx.conf

也可以在conf.d中创建一个default.conf /etc/nginx/conf.d/default.conf(如果没有那可以创建)

使用vi 打开

vi  /etc/nginx/nginx.conf

添加index.php

《CentOS7安装Nginx+PHP7》 image.png

原来是没有index.php但你需要添加为了让Nginx支持PHP文件

index index.php index.html index.htm;

着这里你还会注意到一个路径:root /usr/share/nginx/html;

这个是Nginx默认的存放html和你的php文件路径

接下来是打开PHP scripts to FastCGI server的注释,就是去掉#

location ~ \.php$ {
      root           html;
      fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
#fastcgi_param  SCRIPT_FILENAME
# scripts$fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;

        include        fastcgi_params;
  }

在这里你会看到,我把原来的

#fastcgi_param  SCRIPT_FILENAME
# scripts$fastcgi_script_name;

给注释掉
而替换成

fastcgi_param  SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;

注意这里的路径/usr/share/nginx/html/

这里是php-fpm去找你的PHP文件的路径,这里错了,将会提示你找不到File not found这类问题

配置参考写法有所区别,然而也是改动这部分:
下面是所要添加和修改的

root  /usr/share/nginx/html/
location / {
    #定义首页索引文件的名称
    index index.php index.html index.htm;   
}

# PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
}

然后重启Nginx

systemctl restart nginx

然后切换到目录/usr/share/nginx/html/
创建一个php文件

vi /usr/share/nginx/html/index.php

《CentOS7安装Nginx+PHP7》 image.png

随后在浏览器上输入http://xxx.xxx.xxx.xxx/index.php

《CentOS7安装Nginx+PHP7》 image.png

OK,到此就完成了。本人也是新手,不喜勿喷

    原文作者:cyhai
    原文地址: https://www.jianshu.com/p/b2ce745256e1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞