iT邦幫忙

0

appserv的php5、php7、php8如何設定共存

  • 分享至 

  • xImage

各位好
想請教一下,該如何在win10的境下,使用appserv設定php5、php7、php8三者共存,並可以在「服務」中作選擇切換appserv的php版本呢

目前我已有作到的是php5與php7的共存
參考的是以下文章
https://ntflc.com/2017/06/04/Install-Apache-and-PHP-on-Windows/

我有試著再抓一個apache24下來,資料夾名稱換成別的,同樣也有設定系統參數path
再去執行cmd的指令httpd -k install,得到結果如下:
[Thu Dec 16 17:53:10.408431 2021] [mpm_winnt:error] [pid 8636:tid 500] AH00433: Apache2.4: Service is already installed.

但沒有看到php8的相關文章資訊,想請教一下版上的大大是否有人有作到三者併存,以及如何設定的呢?謝謝

https://ithelp.ithome.com.tw/upload/images/20211216/20137870frkxLk25IZ.png

fillano iT邦超人 1 級 ‧ 2021-12-16 18:18:21 檢舉
透過fastcgi及virtual host應該可以做到。
froce iT邦大師 1 級 ‧ 2021-12-17 08:47:01 檢舉
用nginx之類的reverse proxy應該很輕鬆可以做到。
但這種狀況...我會建議你改用docker。
我是利用NGINX的。
apache的我不會處理。

目前是裝 PHP5.6 7.4 8.0 8.1
可以從vhost內決定哪個站點使用哪個版本處理。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
nick
iT邦新手 5 級 ‧ 2021-12-17 12:09:25
最佳解答

可以用 laragon (https://laragon.org/) 達成切換 PHP 不用特別學習 apache nginx 輸入網址可以動就好...
但如果你電腦要同時都有 PHP 那就要看一下 apache/nginx 使用 Virtual Host 來決定指向 PHP 版本
www.example.com 要 PHP5
www.example-a.com 要 PHP7
但這段配置之路 不是每個人都喜歡
詳細之路可以看一下
https://mark-lin.com/posts/20190131/
總結 :
docker 可以達成 但還需要補足 IP port 容器知識
nginx/apache 可以對接不同的版本 php-cgi(php-fpm) 但還需要理解 php-cgi
laragon (LAMP) 無腦切換

breakgod iT邦新手 2 級 ‧ 2021-12-17 14:30:52 檢舉

請問若我要用docker來作的話
該怎麼設定比較好呢?
我是有裝laradock,但對於docker的概念沒有很明確
不知道要如何分裝設定容器
謝謝

nick iT邦新手 5 級 ‧ 2021-12-17 15:02:28 檢舉

https://msirius.medium.com/1-n-php-versions-and-projects-via-laradock-51938b337071
google 第一個結果 且環境版本不同 只能幫到這邊惹

breakgod iT邦新手 2 級 ‧ 2021-12-17 15:40:53 檢舉

好的!! 我看了一下,照著作,然後卡在docker-compose.yml這裡,看不太懂他這裡要如何操作?

Amend docker-compose.yml
The goal is to introduce 1+n php-fpm services which run different versions of PHP.
By default, you get one php-fpm service where PHP version is controlled with PHP_VERSION flag in the .env file.
This is your “master” php-fpm service and should run the newest PHP version, the same version applies to PHP CLI inside workspace container. At the moment of writing, that’s 7.4, thus PHP_VERSION=7.4
Let’s create our “child” php-fpm container(s) with hard-coded PHP version. As previously stated I had a requirement for PHP 7.1.x, 7.2.x and 7.4.x.
In the docker-compose.yml, copy php-fpm entry and paste below original entry with the following tweaks:

Key differences for PHP-FPM 7.2

php-fpm-7.2:
args:
- LARADOCK_PHP_VERSION=7.2
volumes:
- ./php-fpm/php7.2.ini:/usr/local/etc/php/php.ini

我要發表回答

立即登入回答