impossible de mettre à jour php.fichier ini dans le conteneur Docker
Je suis en train de définir Magento2 sur Docker avec Nginx & PHP7.
J'ai ajouté un php personnalisé.fichier ini, comme recommandé par le PHP7 Docker image. Je peux voir d'phpinfo.php que c'est le chargement de mon php.fichier ini mais aucun de mes mises à jour sont là.
Il devrait être:
memory_limit = 2G
max_execution_time = 800
J'ai vérifié le PHP contenant et je peux voir le php.fichier ini est là, avec les paramètres corrects, ou du moins je le pense?
$ docker exec -it mymagento2docker_php_1 /bin/bash
# cat /usr/local/etc/php/php.ini
; This file is created automatically by the docker build
memory_limit = 2G
max_execution_time = 800
Ce que je fais mal? Ci-dessous sont quelques-uns plus de détails, merci d'avance!
Docker Projet
.
├── docker-compose.yml
├── index.php
├── magento2
│ ├── [DIRECTORIES & FILES OMMITED]
│
├── nginx
│ ├── Dockerfile
│ ├── default.conf
│ └── nginx.conf
├── output.txt
├── php
├── Dockerfile
└── config
└── php.ini
docker-composer.yml
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
app:
image: php:7.0-fpm
volumes:
- ./magento2:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: mage2
MYSQL_DATABASE: mage2
MYSQL_USER: mage2
MYSQL_PASSWORD: mage2
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
php/Dockerfile
FROM php:7.0-fpm
# Install dependencies
RUN apt-get update \
&& apt-get install -y \
cron \
libfreetype6-dev \
libicu-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
libxslt1-dev
# Configure the gd library
RUN docker-php-ext-configure \
gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
# Install required PHP extensions
RUN docker-php-ext-install \
gd \
intl \
mbstring \
mcrypt \
pdo_mysql \
xsl \
zip \
soap
# Install the 2.4 version of xdebug that's compatible with php7
RUN pecl install -o -f xdebug-2.4.0
COPY config/php.ini /usr/local/etc/php/
## php/config/php.ini ##
; This file is created automatically by the docker build
memory_limit = 2G
max_execution_time = 800
Mise à JOUR
J'ai essayé de redémarrer nginx avec le ci-dessous, mais il n'a pas de travail.
$ docker exec -it mymagento2docker_php_1 /bin/bash
# /etc/init.d/nginx restart
bash: /etc/init.d/nginx: No such file or directory
# service nginx restart
nginx: unrecognized service
# nginx -s reload
bash: nginx: command not found
# exit
$ docker restart mymagento2docker_nginx_1
mymagento2docker_nginx_1
$ docker exec -it mymagento2docker_nginx_1 /bin/bash
# /etc/init.d/nginx restart
Restarting nginx: nginxross in ~/my-magento2-docker
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------
mymagento2docker_app_1 true Exit 0
mymagento2docker_data_1 docker-entrypoint.sh true Exit 0
mymagento2docker_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
mymagento2docker_nginx_1 nginx -g daemon off; Exit 0
mymagento2docker_php_1 php-fpm Up 9000/tcp
mymagento2docker_phpmyadmin_1 /run.sh phpmyadmin Up 0.0.0.0:8080->80/tcp
ross in ~/my-magento2-docker
$ docker-compose up -d
Starting mymagento2docker_app_1
Starting mymagento2docker_data_1
mymagento2docker_mysql_1 is up-to-date
mymagento2docker_phpmyadmin_1 is up-to-date
mymagento2docker_php_1 is up-to-date
Starting mymagento2docker_nginx_1
ross in ~/my-magento2-docker
$ docker exec -it mymagento2docker_nginx_1 /bin/bash
# service nginx restart
Restarting nginx: nginxross in ~/my-magento2-docker
$ docker-compose up -d
Starting mymagento2docker_app_1
Starting mymagento2docker_data_1
mymagento2docker_mysql_1 is up-to-date
mymagento2docker_phpmyadmin_1 is up-to-date
mymagento2docker_php_1 is up-to-date
Starting mymagento2docker_nginx_1
ross in ~/my-magento2-docker
$ docker exec -it mymagento2docker_nginx_1 /bin/bash
# nginx -s reload
2016/10/05 14:07:43 [notice] 12#12: signal process started
#
OriginalL'auteur Holly | 2016-10-05
Vous devez vous connecter pour publier un commentaire.
Ajouter un volumes: la section de votre php service dans le docker-composer.yml fichier, carte un répertoire local avec un personnalisé.ini fichier à /usr/local/etc/php/conf.d, et redémarrez votre conteneur. Quelle que soit valide les paramètres dans ce fichier remplacent celles de la principale php.fichier ini. (D'ailleurs vous pouvez faire de même avec MySQL, mais pas avec Nginx).
Cela fonctionne dans mon propre projet:
php:
volumes:
- ./localpath/custom.ini:/usr/local/etc/php/conf.d/custom.ini
J'ai tout essayé et cela a finalement fonctionné. Si vous voulez laisser une réponse sur mon stackoverflow post et je vais l'accepter comme une réponse!
Assurez-vous, où est la poste?
OriginalL'auteur otravers
je pense que vous devez recharger la config nginx.
je ne sais pas quel système d'exploitation de votre php conteneur utilise, mais essayez de l'intérieur du conteneur pour certains:
ma logique, la raison est, que vous installez php ( et commencer à la même heure ) et après tout ce que vous copiez la nouvelle config.
bien sûr, sans le commentaire hashtag. à l'intérieur de votre nginx conteneur. sinon, vous pouvez essayer de redémarrer votre php-fpm à l'intérieur de l'php containerwith: /etc/init.d/php7-fpm ou redémarrer le service php7-fpm redémarrage peut-être juste à php-fpm redémarrer sans le numéro de version. ici ma recherche de lien cyberciti.biz/faq/unix-linux-redémarrer-php-service de la commande
merci j'ai essayé, mais sans succès, de voir ma mise à jour
Semblable à cette réponse (assez pour ne pas faire une réponse distincte), j'ai dû redémarrer apache "apachectl restart"
OriginalL'auteur Gabbax0r
C'est ce qui s'est passé :
- Si vous mappez le php.ini à partir de l'hôte dans le récipient, assurez-vous que le fichier php.ini) doit exister sur l'hôte avant de lancer le conteneur. Sinon, le conteneur ne pourra pas démarrer
- S'il vous plaît vérifiez si le panneau a été en mesure de lire votre php.fichier ini (vérification de l'autorisation, parfois, docker est en cours d'exécution en tant qu'utilisateur différent et ne peuvent pas accéder à l'ordinateur hôte de fichier qui appartient à la racine)
- Chaque mise à jour de php.ini, vous devez redémarrer php-fpm (obtenir à l'intérieur du conteneur et de redémarrer le php-fpm pour tester, ne pas reconstruire conteneur) , et vider le cache (si vous activez opcache)
OriginalL'auteur Dylan B