Apache2.4多php共存

實踐背景:因爲如今手上有不少php5和php7的混合開發項目。而服務器上只有一個ip,項目規定在上架後不得使用80外的其餘端口。php

提出解決方案:html

1.Fcgi方式(本文用此種方式)2.反向代理方案(爲了減小內存消耗又沒有多餘的服務器就捨棄此方案)web

(一)準備工具apache

1.php 5windows

2.php 7服務器

3.Apache2.4php7

(二)下載地址app

(三)開始部署Apacheasp.net

  1. 安裝先安裝apache環境
  2. 修改apache的配置文件httpd.conf文件的幾項內容

    #引入模塊jsp

     LoadModule fcgid_module modules/mod_fcgid.so/

    #取消註釋並修改爲你的apache的cgi目錄

    ScriptAlias /cgi-bin/ "D:/SetSoft/wamp7/Apache2/cgi-bin/"

    #取消註釋並修改

    <Directory "D:/SetSoft/wamp7/Apache2/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

3.修改vhost文件

    <VirtualHost *:80>
    DocumentRoot "E:/WEB/5.jx.asnlife.cn"
    ServerName 5.jx.asnlife.cn:80
    ServerAlias 5.jx.asnlife.cn
    #添加映射
    AddHandler fcgid-script .php
    # 設置PHP_FCGI_MAX_REQUESTS大於或等於FcgidMaxRequestsPerProcess,防止php-cgi進程在處理完全部請求前退出
    FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
    #php-cgi每一個進程的最大請求數
    FcgidMaxRequestsPerProcess 1000
    FcgidInitialEnv PHPRC "D:/SetSoft/WAMP/PHP5"
    FcgidWrapper "D:/SetSoft/WAMP/PHP5/php-cgi.exe" .php
    ServerAdmin webmaster@5.jx.asnlife.cn
    DirectoryIndex index.html index.htm index.php default.php 
    ErrorLog logs/5.jx.asnlife.cn-error.log
    CustomLog logs/5.jx.asnlife.cn-access_%Y%m%d.log comonvhost
<Directory "E:/WEB/5.jx.asnlife.cn">
    Options FollowSymLinks ExecCGI
    AllowOverride All
    Require all granted
</Directory>
<LocationMatch "/(inc)/(.*)$">
    Require all denied
</LocationMatch>
<LocationMatch"/(attachment|attachments|uploadfiles|avatar)/(.*).(php|php5|phps|asp|asp.net|jsp)$">
    Require all denied
</LocationMatch>
</VirtualHost>

4.重啓apache既能夠訪問到相關的頁面

(注意)

1.若是紅色區域不添加或者註釋的話  則會以handler方式運行,此時請將黃色區域的ExecCGI取消不然沒法運行。

2.若是將紅色區域配置在httpd.conf中,會產生運行的時候沒法同時作到幾個php的共存。

3.當前服務器已經將apache+php7的基礎環境配置完畢,在無cgi方式的時候是能夠運行php文本的。

相關文章
相關標籤/搜索