各位前輩們好
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了,一般應該也不建議這樣做的。