无法在docker php 7.3.5中启用php ast
我正在尝试将php ast扩展安装到我的项目中。这是我的Dockerfile:无法在docker php 7.3.5中启用php ast,php,docker,Php,Docker,我正在尝试将php ast扩展安装到我的项目中。这是我的Dockerfile: FROM php:7.3.5-apache RUN apt-get -yqq update \ && apt-get -yqq install --no-install-recommends libzip-dev git COPY ./php/php.ini /usr/local/etc/php/ COPY ./php/php_errors.log /var/log/php_errors.lo
FROM php:7.3.5-apache
RUN apt-get -yqq update \
&& apt-get -yqq install --no-install-recommends libzip-dev git
COPY ./php/php.ini /usr/local/etc/php/
COPY ./php/php_errors.log /var/log/php_errors.log
COPY ./apache/error.log /var/log/apache2/error.log
COPY ./apache/access.log /var/log/apache2/access.log
COPY . /var/www/html
COPY ./apache/vhost.conf /etc/apache2/sites-available/000-default.conf
COPY ./mysql/my.cnf /etc/mysql/conf.d/my.cnf
COPY --from=composer:1.6.5 /usr/bin/composer /usr/bin/composer
RUN apt-get update && apt-get install -y libmcrypt-dev libtool zip unzip \
&& docker-php-ext-install mysqli pdo_mysql \
&& pecl install mcrypt-1.0.2 ast-1.0.1 \
&& docker-php-ext-enable mcrypt ast \
&& a2enmod rewrite
RUN chown -R www-data:www-data /var/www/html
在我运行这个构建并尝试使用ast之后,我收到一条消息,表明ast未启用。有人能用简单的英语解释一下我应该如何在Docker php 7.3.5或更高版本上安装这个扩展吗
更新
这是我的docker-compose.yml:
version: "3"
services:
appnew:
build: .
depends_on:
- mysqlnew
ports:
- 8080:80
networks:
- app-net
volumes:
- ..:/var/www/html
container_name: appnew
mysqlnew:
image: mysql:5.6
ports:
- 13317:3306
environment:
- MYSQL_DATABASE=XXXX_db
- MYSQL_ROOT_PASSWORD=XXXXXX
volumes:
- mysql57data:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
# - ./mysql/logs:/var/log/mysql/
networks:
- app-net
container_name: mysqlnew
networks:
app-net:
driver: "bridge"
volumes:
mysql57data:
driver: "local"
这是我的php.ini:
date.timezone = Europe/London
memory_limit = 128M
post_max_size = 500M
upload_max_filesize = 200M
error_log = /var/log/php_errors.log
error_reporting = -1
log_errors = 1
我用了这个Dockerfile
FROM php:7.3.5-apache
RUN apt-get -yqq update \
&& apt-get -yqq install --no-install-recommends libzip-dev git
RUN apt-get update && apt-get install -y libmcrypt-dev libtool zip unzip \
&& docker-php-ext-install mysqli pdo_mysql \
&& pecl install mcrypt-1.0.2 ast-1.0.1 \
&& docker-php-ext-enable mcrypt ast \
&& a2enmod rewrite
运行构建并编写php-m
,这是输出
[PHP Modules]
ast
Core
ctype
curl
date
dom
fileinfo
在那之后,你有那么多的台词 附带问题:将现有日志文件复制到映像有什么意义?与您最初的问题相关:您确定您正在复制的php.ini不是(或完全不是)您遇到的问题的一部分吗?我将日志文件复制到项目中的docker目录,以便可以实时查看主机上的日志。我将尝试从Dockerfile中排除php.ini,以检查它是否会导致问题。奇怪。我使用了相同的Dockerfile,在php-m之后我得到:
root@454479178c88:/var/www/html#php-m[php Modules]Core ctype curl date dom fileinfo filter ftp
和no ast您使用的是什么操作系统?docker版本?Ubuntu 18.04,docker版本18.09.5,版本e8ff056I正在使用Ubuntu 18.04和docker 18.09.6,版本481bc77。有没有可能你使用的是低内存机器?像1GB还是2GB?我不明白为什么ast不应该在那个里,在构建时我看到了很多make命令,所以内存可能是一个因素。谢谢你们的帮助,但我使用的是16GB内存的机器。