为什么我在Docker容器中安装PHP时没有php.ini文件?

我使用docker-compose来设置一个最小的nginx + php-fpm应用程序,但由于某些原因,docker容器上没有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-fpmdocker图像? 如果没有,是否有一个我可以用来开始的通用文件?

你需要添加php.ini文件:

  1. 运行临时的php容器

docker运行-d –name php-tmp php:5-fpm

  1. 复制php档案

docker cp php-tmp:/usr/src/php.tar.xz。

  1. 将php.ini-development或php.ini-production文件解压到configuration目录。 例:

compose_root / PHP / php.ini中发展

  1. 在php容器中添加php.ini的音量

    卷:

    • .root:在/ var / www / html等:RO
    • ./php/php.ini-development:/usr/local/etc/php/php.ini