微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux 安装php环境,并使用nginx代理

安装PHP

一、检查是否已安装

1)yum安装检查:yum list installed |grep PHP


2)rpm安装检查:rpm -qa |grep PHP


3)自己编译安装的有多种方式查询,例如查找PHP的执行程序,或者检查进程ps -ef |grep PHP等方

二、下载安装

1)用wget下载PHP的tar.gz文件:wget http://br2.PHP.net/get/PHP-7.2.2.tar.gz


2)解压tar.gz文件:tar zxvf PHP-7.2.2.tar.gz


3)新建待会要安装PHP文件夹:mkdir /usr/local/PHP,然后进入解压后的PHP安装包文件夹里,配置configure:


./configure --prefix=/usr/local/PHP --with-curl=/usr/local/curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-MysqLi --with-openssl --with-pcre-regex --with-pdo-MysqL --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip


注意:如果报错缺少lib,请按提示执行包安装,一般使用yum install **即可安装


4)make && make install


执行成功后目标目录/usr/local/PHP下会生成

三、配置PHP

1)配置PHP.ini,拷贝源文件目录中的ini到安装目录:cp PHP-7.2.2/PHP.ini-development /usr/local/PHP/lib/PHP.ini


2)配置PHP-fpm.conf,这是PHP-fpm配置文件:cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf


3)配置www.conf,配置用户文件:cp /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf


4)将PHP-fpm启动文件复制到init.d文件夹中一份方便启动PHP:cp -R /usr/local/PHP/sbin/PHP-fpm /etc/init.d/PHP-f

四、确认安装

执行命令/etc/init.d/PHP-fpm即可


查看是否启动:ps -ef |grep PHP既可以看到PHP启动了哪些进程

五、配置Nginx

1)更改PHP.ini文件,vim /usr/local/PHP/lib/PHP.ini


通过查找cgi.fix_pathinfo=1这个配置,并去除注释,并改为cgi.fix_pathinfo=0,这里并不属于Nginx支持PHP配置相关,而是专属于NginxPHP一个安全漏洞,如果这里值为1,用户方可以通过上传图片上传木马,然后通过url访问该图片地址,并在地址后加入/xxx.PHP将该图片作为PHP文件运行,这是只有在Nginx里才会存在的问题,apache和iis都没有该问题


以上问题可以直接参看鸟哥博客,写的相当详细:http://www.laruence.com/2010/05/20/1495.html


2)配置web专用的组和用户


添加www用户组:groupadd www


添加www用户组下的用户www:useradd -g www www


3)更改PHP-fpm.conf配置


将user=nobody的注释去掉,并将nobody改成上面配置的www用户


将group=nobody的注释去掉,并将nobody改成上面配置的www用户组


最后检查PHP-fpm.conf最后的include的值是不是正确的www.conf目录地址,如果不正确则换成正确的目录地址。


4)更改www.conf配置


将user=nobody的注释去掉,并将nobody改成上面配置的www用户


将group=nobody的注释去掉,并将nobody改成上面配置的www用户组


5)更改Nginx.conf文件 /etc/local/Nginx/conf/Nginx.conf


将#user=nobody去掉注释并改为user=www


去除 location ~ \.PHP${...}这段代码的注释,并将fastcgi_param里的/scripts改为

Nginx配置文件Nginx.conf中的server节点添加如下代码

        index index.html index.htm index.PHP; #设置认页,可不设置
        location ~\.PHP$ {
            root /data/kodecloud/; #目标根目录
            fastcgi_pass  127.0.0.1:9000; #PHP的端口
            fastcgi_index  index.PHP;
            fastcgi_param  SCRIPT_FILENAME /$document_root$fastcgi_script_name;
            include  fastcgi_params;
        }

 

6)重启PHP-fpm和Nginx,可以killall PHP-fpm然后再/etc/init.d/PHP-pfm即可重启,/usr/local/Nginx/sbin/Nginx -s stop即可停止Nginx,然后执行/usr/local/Nginx/sbin/PHP即可重启。
注意:启动过程若出现端口占用使用:fuser -k 端口号/tcp 


7)在html目录里随便创建一个PHP文件内容PHPinfo();,然后在浏览器中访问该文件地址,看是否得到正确的PHP相关信息,如果正确显示则配置成功

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐