首先 , 容器内没有 /etc/php 目录,那就需要通过 php --ini
命令来查看配置路径。
root@8493683eed97:/var/www/html# php --ini
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File: (none)
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
/usr/local/etc/php/conf.d/docker-php-ext-exif.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini,
/usr/local/etc/php/conf.d/docker-php-ext-intl.ini,
/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini,
/usr/local/etc/php/conf.d/error-logging.ini,
/usr/local/etc/php/conf.d/opcache-recommended.ini
然后可以看出,主目录都在 /usr/local/etc/php
再通过 grep 命令找到想要的配置,这里是 upload_max_filesize
root@8493683eed97:/var/www/html# grep 'upload_max_filesize' -nr /usr/local/etc/php
/usr/local/etc/php/php.ini-development:853:upload_max_filesize = 2M
/usr/local/etc/php/php.ini-production:855:upload_max_filesize = 2M
然后修改对应文件。
可能需要安装 vim:
apt update && apt install vim -y
最后重启apache.
service apache2 restart
破防了。上面的步骤操作完了完全没有用。一个10年后端开发经验者被困在了修改php的一个小变量上。给我上了深深一课。
以下是能工作的步骤:
创建新文件uploads.ini
vi $PHP_INI_DIR/conf.d/uploads.ini
填写以下内容
file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600
然后重启。
来自这里的高赞回答,其他地方的没有用。
再后来我又想新增变量,结果加到uploads.ini中也不生效。
仔细看了官网文档,是建议把php.ini-production 改名为 php.ini
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"