美文网首页编程开发
CentOS7安装Nginx+PHP7

CentOS7安装Nginx+PHP7

作者: cyhai | 来源:发表于2018-08-02 15:13 被阅读187次

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

    安装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
    
    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

    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
    
    image.png

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

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

    相关文章

      网友评论

        本文标题:CentOS7安装Nginx+PHP7

        本文链接:https://www.haomeiwen.com/subject/ganjvftx.html