Linux系统下为Nginx安装多版本PHP
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法linux版本:64位CentOS 6.4Nginx版本:nginx
千家信息网最后更新 2025年12月04日Linux系统下为Nginx安装多版本PHP
我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法
linux版本:64位CentOS 6.4
Nginx版本:nginx1.8.0
php版本:php5.5.28 & php5.4.44
注意假如php5.5是主版本已经安装在/usr/local/php目录下,那么再安装其他版本的php再指定不同安装目录即可。
安装PHP
# wget http://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror# tar zxvf php-5.4.44.tar.gz# cd php-5.4.44#./configure --prefix=/usr/local/php5.4.44 \--with-curl \--with-freetype-dir \--with-gd \--with-gettext \--with-iconv-dir \--with-kerberos \--with-libdir=lib64 \--with-libxml-dir \--with-mysql \--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-gd-native-ttf \--enable-mbregex \--enable-mbstring \--enable-pcntl \--enable-shmop \--enable-soap \--enable-sockets \--enable-sysvsem \--enable-xml \--enable-zip# make && make install# cp -R ./sapi/fpm/php-fpm.conf /usr/local/php5.4.44/etc/php-fpm.conf# cp php.ini-development /usr/local/php5.4.44/lib/php.ini# cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm5.4.44
修改php-fpm.conf的侦听端口为9001,因为主版本5.5.28是侦听9000。
; Note: This value is mandatory.listen = 127.0.0.1:9001
启动php-fpm
# /etc/init.d/php-fpm5.4.44
php安装成功查看进程
#ps aux|grep php
这样就已经起好php-fpm了。
配置Nginx
增加一段新的端口8054的配置并指向到9001以及指定目录即可:
server { listen 8054; server_name localhost; location / { #root html;root /usr/www5.4.44; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9001;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME /usr/www5.4.44$fastcgi_script_name;} }nginx的配置文件nginx.conf在
# cd /usr/local/nginx/conf
完整的nginx配置如下:
#user nobody;worker_processes 4; #error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; root /usr/www; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/www$fastcgi_script_name; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } server { listen 8054; server_name localhost; location / { #root html; root /usr/www5.4.44; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/www5.4.44$fastcgi_script_name; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }重启nginx
# /usr/local/nginx/sbin/nginx -s reload
注意需要防火墙增加新端口的开启,不然无法访问:
防火墙配置
注意如果你希望在本地机器例如xp访问虚拟机的网页,如果是centos6需要修改防火墙启动80端口
# cd /etc/sysconfig
修改iptables文件,或者直接用vim编辑
# vim /etc/sysconfig/iptables
添加下面一行,打开防火墙80端口:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8054 -j ACCEPT
重启防火墙
# /etc/init.d/iptables restart
测试是否成功,查看phpinfo()
以上即是Linux系统下为Nginx安装多版本PHP的方法,希望对大家有用
版本
配置
端口
防火墙
防火
目录
系统
成功
文件
方法
不同
一行
指向
有用
服务器
机器
环境
网页
进程
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
战地风云5怎么打服务器
东营管理系统软件开发推荐
青岛商城分销软件开发费用
学网络安全推荐的书籍
数据库怎样备份与恢复
将数据库的一列置为空
自动化专业数据库
武汉网络安全培训 北斗
天津mes软件开发
程序调试是软件开发过程中
数据库拒绝连接怎么解决
网络安全监管员证书
网络安全法教育记录
计算机网络技术多少学分
软件开发pdca管理循环有用吗
要做好网络安全保密工作
南京wms软件开发公司
万方数据库怎么
数据库保存加密码
崩坏三PC端服务器
江苏软件开发者网站推荐
数据库日志满了怎么删除
东大网络安全施畅
前锦网络技术公司规模
昆明新华互联网科技收费
校园网网络安全论文doc
乡镇网络安全活动总结
服务器请稍后再试怎么解决
数据库跨库查询缺点
高州网络安全宣讲