各位前輩們好
host環境:win10 pro 64bit
docker環境:Linux容器
請教一下,
我要建立nginx + php + mysql的開發環境
我參考了一些網路範例寫了yml檔
但在執行docker-compose up -d
的時候,
mysql,nginx有執行,但php卻一直出錯
雖然依照PHP給的錯誤訊息進行調整還是出錯,
感覺超級麻煩,
用DockerFile的時候沒有錯誤,
改用yml的時候錯誤一堆,
請問我是什麼環節沒注意到導致這麼多的錯誤??
依照錯誤訊息進行調整而加了下面幾行
chmod -R 777 /usr/local/etc/php &&
pear config-set php_ini /usr/local/etc/php &&
但還是有如下的錯誤訊息
cannot open php.ini "/usr/local/etc/php" for writing
You should add "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so" to php.ini
下面是我的docker-compose.yml
version: '3'
services:
mysql8:
image: mysql:8.0.23
ports:
- 3307:3306
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/log:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_ROOT_HOST: '%'
command: mysqld --default-authentication-plugin=mysql_native_password
web:
image: nginx:latest
ports:
- 9011:80
- 9012:443
volumes:
- ./www:/var/www/html
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php:
image: php:7.4-fpm
ports:
- 9013:9000
volumes:
- ./www:/var/www/html
command: sh -c "
cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini &&
chmod -R 777 /usr/local/etc/php &&
pear config-set php_ini /usr/local/etc/php &&
apt-get update &&
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev &&
docker-php-ext-configure gd --with-freetype --with-jpeg &&
docker-php-ext-install gd &&
docker-php-ext-install mysqli pdo pdo_mysql &&
pecl install xdebug &&
docker-php-ext-enable xdebug
"
2021 / 2 / 28
最後放棄全部起在yml中,PHP拆出去放在dockerfile中就好了..
不用再加上多餘的
chmod -R 777 /usr/local/etc/php &&
pear config-set php_ini /usr/local/etc/php &&
若有人知道為什麼嗎?
沒反應所以還是回答一下好了...
script中的這一行
pear config-set php_ini /usr/local/etc/php &&
改成
pear config-set php_ini /usr/local/etc/php/php.ini &&
應該就可以運作了,錯誤訊息看起來是因為試圖把設定寫入/usr/local/etc/php
這個檔案所引發的,但這是個目錄。另外,改了這裡,其實也就不用chmod
了,一般應該也不建議這樣做的。