背景
隨著MAC作業系統和各種軟體的不斷升級,在系統上搭建APACHE2.4+PHP5.2的環境變得異常困難,筆者嘗試過透過brew install [email protected]的環境,並利用brew-php-swithcer或者brew link php 5.6來和PHP7做切換,但實際使用中,PHP5依賴一些軟體包,比如openssl比較老,導致出現各種問題,並不能很好的解決在一個電腦上,執行兩套PHP開發環境的需求。基於此,筆者只能另闢蹊徑,透過Dokcer來解決這個問題。
執行環境macOS Big Sur v11.1docker3.1(可以透過brew install docker安裝,也可以透過官方下載img安裝)步驟1、官網查詢一下php可以使用的映象(別人做好上傳的),直接搜比如php5.2之類的
2、筆者找的是flandera/php5.2-apache這個,自帶apache,由於缺乏文件,把映象拉下來,跑一下進去看看
進去後,研究下結構,結果如下:
apache的conf檔案目錄在/etc/conf/apache2/apache2.conf,此外這個conf檔案include了一個空的httpd.conf檔案網站根目錄在/var/www下3、解決思路
編制一個dockerfile檔案,將httpd.conf檔案打包成新的映象將程式透過docker命令對映到容器中4、編制conf檔案
Alias /webapp "/var/webapp/www"<Directory "/var/webapp/www"> Options None AllowOverride None Order allow,deny Allow from all</Directory>
5、編制dockerfile(參考,名稱和目錄根據實際修改)
FROM flandera/php5.2-apache:latestLABEL maintainer="author" EXPOSE 80RUN mkdir -p /var/webappCOPY httpd.conf /etc/apache2/httpd.conf
6、重新編譯並執行
docker build -t company-php:5.2 .docker run -d -p 9987:80 -v /Users/divsun/webapp:/var/webapp --name=php company-php:5.2
執行命令時候,httpd.conf需要和Dockerfile在同一個目錄,如果conf檔案有改動,需要重新打包
5、mac電腦打http://localhost:9987/webapp看是不是正常了
最新評論