顯示具有 fastcgi 標籤的文章。 顯示所有文章
顯示具有 fastcgi 標籤的文章。 顯示所有文章

2019-07-20

如何在 Windows 讓 Apache 在一個 host 中,指定某個資料夾下的 php 是跑不同的版本

標題下的好像很怪…簡略說明一下

其實就是 Windows 下 Apache 跑 php-fpm (Fastcgi) - 使用 VirtualHost 這篇的另一個形式…我的目的還是要在一個 apache service 中跑不同版本的 php ;只是之前是使用 VirtualHost 來操作,但我現在是希望在一個 host …或者也可以理解為一個 VirualHost 下,不同的 Directory 可以跑不同的 php 版本,這樣我就不用換 VirualHost 的 domain:port ,只要切換 localhost/______/ 就好了。

前置作業說明:

  1. 跟之前一樣使用 xampp ,apache 2.4.39 x64 + php 7.3.7 x64,這是主要的,然後指定一個 localhost/php52 這個位置可以跑 php 5.2.17 x86
  2. 作不作 vhost 都無所謂,因為這一篇要的就是一個 host 就做到可以跑不同的 php 版本
  3. 如前一篇說的,因為此種方式已經算改了 xampp 的部份算大改了,所以會建議就不要讓 apache load httpd-xampp.conf 了,或者將 httpd-xampp.conf 中的每一行都用 # 註解起來

2019-07-18

Windows 下 Apache 跑 php-fpm (Fastcgi) - 使用 VirtualHost

因為工作需求…有些案子會需要用頗舊的 php 版本來跑,但我又不想在系統資源有限的測試機 (本機 windows 10 電腦,還不是server) 安裝一堆配合 php 的 apache 版本,然後又在那邊糾結 x86/x64 的,所以想到在 linux 上在用 nginx 時好像都是用 php-fpm 在跑 php ,而不是跟 apache 那樣在 loadmodule (難怪 nginx 比較輕量級),而且 loadmodule 會使用固定的 module name ,像 php7 是 php7_module, php5 是 php5_module …不同版本之間是還行,但同一個大版本之後想分載各個小版本會因為都是用同一個 module name 的關係會有衝突而載入失敗,所以最後在想比較簡單的方式…那就是讓 apache 也走類似 php-fpm 的 fastcgi 方式。
(為什麼說類似,因為好像 php-fpm 沒有 windows 版,而且好像 windows 的 php 中的 php-cgi.exe 就是為了讓 windows 有 php-fpm 而用的)

所以接下來有幾個重點,主要是要讓 apache 2.4.39 x64 在使用 VirtualHost 的情況下,讓走 80 port 跑 php 7.3.7 x64 ,而 8080 port 跑 php 5.2.17 x86

前置作業說明:

  1. apache 2.4.39 x64 + php 7.3.7 x64 我是用 xampp ,然後再去 php 網站找到 5.2.17 x86 回來放進 xampp 資料夾中
  2. 我不特別講 apache vhost 的設定,反正這個 google 一下資料就很多,所以下面的「操作」我是以 vhost 已經分別可以讓 80, 8080 的網頁服務執行成功的情況下來講的
  3. 因為我是分 80, 8080 來跑 vhost ,所以記得 httpd.conf 的 listen 要加 80, 8080