docker下安裝php拓展swoole
docker下安裝php拓展,docker下可用的命令少,安裝起來可沒那麼方便了,我這裡用的ubuntu系統,安裝了集成環境dnmp
若是一開始知道要用到swoole拓展,安裝dnmp的時候直接改配置文件.env就得了,省事省力.下面就記錄下在 php容器中安裝php拓展.
進入我的php容器
sudo docker exec -it php /bin/sh
用php -m查看當前已經安裝好的拓展,沒有swoole
pecl install swoole
很不幸的是報錯了,大概是說找不到autoconf 後來百度了一番安裝autoconf的教程,還得安裝m4
本來docker容器就應該精簡輕巧為主,安裝這麼多花裡胡哨的東西幹嘛呢,再者說docker-compose安裝php其他拓展的時候如果少了m4應該會自己裝上,所以肯定還有其他辦法的.
後來了解到PHP中安裝拓展有幾個特殊的命令
docker-php-sourcedocker-php-ext-installdocker-php-ext-enabledocker-php-ext-configure用這些命令應該就可以了,之前玩過windows下的docker,那個安裝php拓展直接用install-php-extensions 就可以了
找到剛才安裝失敗的swoole拓展包find / -name "swoole-4.5.2.tgz"看到下載到了
/tmp/pear/download/swoole-4.5.2.tgz
進入該目錄
cd /tmp/pear/download
將包解壓,移動到指定的目錄 /usr/src/php/ext,如果沒有這個目錄用 docker-php-source extract來生成
tar zxvf swoole-4.5.2.tgz
mv swoole-4.5.2 /usr/src/php/ext/
cd /usr/src/php/ext/
我們發現這裡的文件夾都是不帶後面的版本號的,這個 swoole-4.5.2我們改成 swoole
mv swoole-4.5.2 swoole
然後執行docker-php-ext-install swoole就行了,讓它慢慢編譯就好了,完了用php -m查看下就發現swoole拓展有了
最後退出容器後,記得重啟php服務啊!記得重啟php服務啊!記得重啟php服務啊!