發佈日期:
分類:
如何在XAMPP中‧設定同時執行兩個不同版本的PHP程式
01. 自從PHP更新到7.0之後,有些之前於PHP 5.x執行的程式,特別是一些罐頭程式,己不能在新的PHP 7.0上執行。一直以為是沒有解決方法的,直到轉工期間多了時間,開始研究一下有沒有解決方法。02. 方法就是沿用XAMPP下載返來的PHP 7.3,加上之前的PHP5.6程式,再作一點設定就可以了。
03. 首先下載XAMPP舊的版本,今次用了的是5.6.40版本。
04. 解壓檔案,只需要PHP資料夾就可以了。
05. 將解壓後的PHP資料夾名稱改為其他名稱(例如:PHP56),將資料夾複製到XAMPP程式位置,即是C:\XAMPP\PHP56。
06. 打開C:\XAMPP\\PHP56\php.ini檔案。
將: extension_dir = "\xampp\php\ext" 更改為: extension_dir = "\xampp\\php56\ext"
將: session.save_path = "\xampp\tmp" 更改為: session.save_path = "c:/xampp/tmp"
06. 打開C:\xampp\apache\conf\extra\httpd-xampp.conf檔案。新增以下內容。
ScriptAlias /php56/ "C:/xampp/php56/" Action application/x-httpd-php56-cgi /php56/php-cgi.exe <Directory "C:/xampp/php56"> AllowOverride None Options None Require all denied <Files "php-cgi.exe"> Require all granted </Files> </Directory>
07. 我會以另一個埠位(port)作為存取PHP 5.6的舊網頁程式的內容。所以在C:\xampp\apache\conf\\extra\httpd-xampp.conf檔案。再加入以下內容。
Listen 2080 <VirtualHost *:2080> DocumentRoot "舊網頁內容位置" <Directory "舊網頁內容位置"> Require all granted </Directory> <FilesMatch "\.php$"> SetHandler application/x-httpd-php56-cgi </FilesMatch> </VirtualHost>
08. 重新啟動Apache服務。
09. 在瀏覽器輸入網址『http://localhost:2080』。第一次我居然遇到『malformed header from script ‘php-cgi.exe’: Bad header: <br />』錯誤。網上有人題及是httpd-xampp.conf檔案設定問題。打開C:\xampp\apache\conf\extra\httpd-xampp.conf檔案。
將: SetEnv PHPRC "\xampp\php" 更改為: # SetEnv PHPRC "\xampp\php"
10. 再次重新啟動Apache服務。終於見到舊程式的登入畫面。
11. 但登入後又出現另一個『Fatal Error: Contact system adminstrator.』錯誤。這個是因為php.ini錯誤,打開C:\XAMPP\PHP56\php.ini檔案。
將: short_open_tag = Off 更改為: # short_open_tag = Off
12. 再次重新啟動Apache服務。終於見到舊程式的內容。
發佈留言