我有一个看起来像这样的docker-compose.yml:
webserver:
build: ./_docker/php
ports:
- 80:80
links:
- mysql
volumes_from:
- app
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: "${DB_NAME}"
MYSQL_USER: "${DB_USER}"
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PW}"
MYSQL_PASSWORD: "${DB_PW}"
volumes:
- ./_docker/data/db:/docker-entrypoint-initdb.d
volumes_from:
- data
data:
image: mysql:5.7
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
app:
image: tianon/true
volumes:
- .:/var/www/public_html
Dockerfile看起来像这样:
FROM php:7.0-apache
#php:7.2.2-apache
#php:5.6.33-apache
COPY php.ini /usr/local/etc/php/
COPY 000-default.conf /etc/apache2/sites-available/
RUN a2enmod rewrite
RUN a2enmod expires
RUN a2enmod headers
RUN apt-get update
RUN apt-get install -y zlib1g-dev libxml2-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng12.0 imagemagick
RUN docker-php-ext-install mysqli zip soap
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install gd
# Install opcache
RUN docker-php-ext-install opcache
和这样的php ini:
max_input_vars = 1500
max_execution_time = 300
post_max_size=50M
upload_max_filesize=50M
启动容器时,我的网络服务器位于http://localhost
上。
我在其中放了一个index.php
的{{1}},它表明phpinfo();
是有效的。
当我打开php.ini
并登录到PMA时,显示我的上传限制设置为2048KiB。
我在哪里可以更改?
谢谢!
答案 0 :(得分:27)
在Docker中像这样使用UPLOAD_LIMIT env。这是从我的docker-compose.yml中获得的。默认情况下,它以字节为单位,因此3000000000将约为3000MB。
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: 'php7.3-phpmyadmin'
restart: 'always'
links:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
UPLOAD_LIMIT: 3000000000
ports:
- '8082:80'
volumes:
- /sessions
答案 1 :(得分:5)
我在
中实现了UPLOAD_LIMIT
ENV变量
https://github.com/phpmyadmin/docker/pull/261/files#diff-80edf79b0f382a3c6e871ac209ffd6abR57
答案 2 :(得分:3)
以下内容效果很好。 我的docker-compose.yml包含以下内容:
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: some-name
env_file:
- phpmyadmin.env
depends_on:
- mariadb
volumes:
以下条目已添加到phpmyadmin.env中:UPLOAD_LIMIT = 256MB 放下容器后立即显示较大的数字(最大:256MiB)。
答案 3 :(得分:1)
就我而言,我无法使用UPLOAD_LIMIT对其进行修复,因此,即使是暂时的,也无需进一步调试,我就需要快速的解决方案:
打开phpmyadmin容器终端:docker exec -it container_name bash
如果您没有vim或nano编辑器,请安装以下一项:apt-get update
,apt-get install vim
vi /usr/local/php/conf.d/myconf.ini
具有以下内容:post_max_size=50M
upload_max_filesize=50M
重新启动容器
记住,当重新创建容器时,这些更改将消失,这只是一个临时解决方案。按照上一个答案的建议尝试使用UPLOAD_LIMIT。
更新
使用设置upload_limit环境再次尝试,但仍然没有运气,因此找到了另一个解决方案:
创建了一个文件uploads.ini
并包含以下内容:
post_max_size=50M
upload_max_filesize=50M
并将其链接到容器体积:
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql:db
ports:
- 8084:80
volumes:
- ./uploads.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
environment:
MYSQL_ROOT_PASSWORD: something
#UPLOAD_LIMIT: 3000000000 <-- didn't work