1. 程式人生 > >配置不同站點不同版本PHP

配置不同站點不同版本PHP

Apache 配置

 1.常規手動部署apache方法(不會apache配置的請先移步看下Apache基本手工配置方法),解壓fcgid,取其mod_fcgid.so至modules目錄

 2.開啟httpd.conf 註釋掉以下類似配置

#LoadModule php5_module "D:/php53/php5apache2_2.dll"
#PHPIniDir "D:/php53/"

 3.增加配置(尾部或中部即可)

#載入fcgid擴充套件模組(額外說明,fcgid根據實際apache版本對應,apache2版本測試2.3.6正常)
LoadModule fcgid_module modules
/mod_fcgid.so #新增對映 AddHandler fcgid-script .fcgi .php # 設定PHP_FCGI_MAX_REQUESTS大於或等於FcgidMaxRequestsPerProcess,防止php-cgi程序在處理完所有請求前退出 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 #php-cgi每個程序的最大請求數 FcgidMaxRequestsPerProcess 1000 #php-cgi最大的程序數 FcgidMaxProcesses 3 #最大執行時間 FcgidIOTimeout 120 FcgidIdleTimeout
120 #限制最大請求位元組 (單位b) FcgidMaxRequestLen 2097152 AddType application/x-httpd-php .php #------這裡是預設虛擬主機配置 #php.ini的存放目錄 FcgidInitialEnv PHPRC "D:/php5.4.4/" #php-cgi的路徑 FcgidWrapper "D:/php5.4.4/php-cgi.exe" .php

ExecCGI 為附加值

<Directory />
    Options FollowSymLinks ExecCGI
    AllowOverride None
    Order deny,allow
    Deny 
from all </Directory>

4.修改新增執行許可權(如若不然,可能會提示HTTP錯誤,禁止訪問403)

5. 虛擬主機檔案配置 (每個虛擬主機獨立的配置段中只需要更改其配置版本路徑即可,以下配置為PHP5.3.1虛擬主機配置)

<VirtualHost *:80>
      ServerName "apihost"
      ServerAlias www.apihost.com api.apihost.com
      FcgidInitialEnv PHPRC "D:/php5.3.1/"
      FcgidWrapper "D:/php5.3.1/php-cgi.exe" .php
      DocumentRoot "D:/WEB/apihost/wwwroot/"
      ErrorLog "D:/WEB/apihost/log/error.log"
      CustomLog "D:/WEB/apihost/log/access.log" common
</VirtualHost>

 

Nginx 配置

安裝不同的 php 版本,在 php 安裝路徑找到 php-fpm.conf 檔案修改不同的監聽埠,如下

listen = 127.0.0.1:9000 

需要使用哪個版本,在nginx 每個站點的配置檔案(一般為nginx 配置同目錄下的 vhost/域名.conf)中指定對應的埠即可,server 裡指定 fastcgi_pass 

server {
        ……
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;  # 這裡與php 監聽埠一致
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}