如何在CentOS上用apache實現多版本PHP同時執行
今天工作碰到客人原有的舊系統沒辦法支援PHP7,因為系統是用cakePHP1.3寫的,而新的網站我已經改用
PHP7.0來執行,所以這下就必須碰到在同一個domain裡面要共存兩個版本的PHP才行。網路上查了一下方法
大部分都是Nginx+php-fpm來達到。但其實apache本身也能夠做到一樣的事情。作法是這樣的
這邊假設你已經安裝好了原先系統上就已經有的apache與php了。
所以我們要做的第一件事情就是裝上第二個不同版本的PHP以及這裡最重要的模組 php-fcgid
$ yum –enablerepo=remi install php56 php-fcgid
裝好後你會在你的 /opt/ 中看到 remi 的資料夾,這裡面就會有你新安裝的PHP版本
接下來我們要做的就是修改apache中的設定讓第二個版本的PHP生效。
我們先去把原本被載入的新版本PHP給關起來吧!
$ cd /etc/httpd/conf.d
$ mv php.conf php.conf.org
做完以上步驟後apache在啟動的時候就不會自動載入你用yum所安裝的PHP了
剩下的就是修改我們的apache的設定檔了
$ cd /etc/httpd/conf
$ vim httpd.conf
找到你有兩個網站,所設定的路徑,這邊假設是以下狀況
$ <Directory "/var/www/html/php_70">
$ Options FollowSymLinks
$ AllowOverride None
$ Require all granted
$ </Directory>
$ <Directory "/var/www/html/php_56">
$ Options FollowSymLinks
$ AllowOverride None
$ Require all granted
$ </Directory>
這時候你只需要這改成這樣
$ <Directory "/var/www/html/php_70">
$ Options FollowSymLinks
$ AllowOverride None
$ Require all granted
$ DirectoryIndex index.html index.php
$ AddHandler application/x-httpd-php .php
$ </Directory>
$ <Directory "/var/www/html/php_56">
$ Options FollowSymLinks +ExecCGI
$ AllowOverride None
$ Require all granted
$ DirectoryIndex index.html index.php
$ AddHandler fcgid-script .php
$ FcgidWrapper /opt/remi/php56/root/bin/php-cgi .php
$ </Directory>
接著重新啟動你的 apache 就大功告成了!