я использую docker-compose
установить минимальный nginx
+ php-fpm
приложение, но по какой-то причине в контейнере докера нет файла php.ini (я знаю, потому что phpinfo()
говорит Loaded Configuration File: (none)
).
Вот мой docker-compose.yml
файл:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php:
image: php:5-fpm
volumes:
- .root:/var/www/html:ro
command: bash -c "apt-get update && apt-get install -y php5-mysql && php-fpm"
site.conf
тоже довольно просто:
server {
index index.php;
server_name local.myspicesage.com;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
И, наконец, самое основное index.php
возможно:
<?php
echo phpinfo();
Я действительно не хочу начинать с нуля, если мне не нужно. Должен ли быть файл php.ini, включенный в php:5-fpm
образ докера? Если нет, то есть ли общий файл, который я мог бы использовать для начала?
Вам необходимо добавить файл php.ini:
docker run -d --name php-tmp php: 5-fpm
докер cp php-tmp: /usr/src/php.tar.xz.
compose_root / php / php.ini-разработка
Добавьте объем с помощью php.ini в контейнер php
объемы:
В контейнере также есть /usr/local/etc/php/conf.d
и будет читать и анализировать каждый файл конфигурации в этом каталоге.
Обратите внимание, что он все равно скажет Loaded Configuration File => (none)
, но это будет также сказать Additional .ini files parsed
и там вы увидите, как он проходит через этот каталог ... и различные файлы, которые контейнер помещает туда: docker-php-ext-XXX.ini
. (Так что говорить (none)
...)
Полезно делать такие вещи:
php -r 'phpinfo();' | grep -i conf
... который в этом случае очень быстро покажет вам только те строки в объемном выводе PHP, которые содержат (в верхнем или нижнем регистре) строку conf
.