Linux环境下Nginx配置多PHP版本共存教程

需积分: 9 1 下载量 146 浏览量 更新于2024-09-09 收藏 547KB DOC 举报
"在Linux环境下,特别是64位的CentOS 6.4系统中,配置Nginx作为Web服务器实现多PHP版本共存是一项常见的需求。本篇内容将指导如何在已安装了PHP5.5.28的基础上,添加另一个PHP版本,如PHP5.4.44,并确保它们能够正常工作。" 在Nginx中实现多PHP版本共存,主要是通过配置不同的fastcgi_pass指令来指向不同版本的PHP解释器。首先,确保你已经正确地安装并配置了Nginx(例如,版本1.8.0),并且主版本PHP5.5已经安装在了 `/usr/local/php` 目录下。 要安装第二个PHP版本(例如,PHP5.4.44),可以按照以下步骤操作: 1. 下载源码: 使用 `wget` 命令从PHP官方网站获取5.4.44版本的源码包,例如: ``` wget http://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror ``` 2. 解压源码: 使用 `tar` 命令解压下载的源码包: ``` tar zxvf php-5.4.44.tar.gz ``` 3. 配置编译: 进入解压后的目录,并使用 `./configure` 命令指定安装路径和其他依赖项: ``` 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 ``` 4. 编译安装: 使用 `make` 和 `make install` 完成编译和安装过程: ``` make && make install ``` 5. 复制fpm配置: 将新的PHP版本的fpm配置文件复制到相应目录,以便后续配置Nginx使用: ``` cp -R ./sapi/fpm/init.d/* /etc/init.d/ cp -R ./sapi/fpm/php-fpm.conf /etc/php-fpm.d/ ``` 6. 启动新版本的PHP-FPM: 修改新版本的PHP-FPM配置文件(如 `/etc/php-fpm.d/www.conf`),设置监听端口和用户组,然后启动服务: ``` service php5.4.44-fpm start ``` 接下来,你需要编辑Nginx的配置文件(通常是 `/etc/nginx/nginx.conf` 或者 `/etc/nginx/sites-available/default`),为每个PHP版本创建独立的location块,分别指定对应的fastcgi_pass指令。例如: ```nginx location ~ \.php$ { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php break; } fastcgi_pass 127.0.0.1:9000; # 对应PHP5.5 include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ \.php54$ { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php break; } fastcgi_pass 127.0.0.1:9001; # 对应PHP5.4 include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } ``` 别忘了根据你的实际端口号和配置调整上述示例。 完成上述配置后,重启Nginx使更改生效: ``` service nginx restart ``` 这样,Nginx就可以根据请求中的文件扩展名(如`.php`或`.php54`)将请求转发给相应的PHP版本处理。确保每个PHP版本的fpm守护进程都在运行,你就可以在一台服务器上同时运行多个PHP版本了。 在实际环境中,可能还需要考虑不同版本PHP的权限设置、错误日志、性能优化等因素,这需要根据具体需求进一步调整配置。通过合理规划和配置,Nginx与多版本PHP的共存可以有效地满足开发、测试和生产环境的多样性需求。