Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在docker php 7.3.5中启用php ast_Php_Docker - Fatal编程技术网

无法在docker php 7.3.5中启用php ast

无法在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

我正在尝试将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.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内存的机器。