gpt4 book ai didi

Php 找不到 tidy

转载 作者:行者123 更新时间:2023-12-02 18:36:48 27 4
gpt4 key购买 nike

我在 docker container 中使用 php7 来运行基于 phpdocx 库的服务。它需要安装 tidy 和一些其他扩展并激活才能工作。我已经安装了 php-tidy 但是我收到以下警告。

PHP 警告:PHP 启动:无法加载动态库 'tidy'(已尝试:/usr/lib/php7/modules/tidy(加载共享库/usr/lib/php7/modules/tidy 时出错:否此类文件或目录),/usr/lib/php7/modules/tidy.so(重定位/usr/lib/php7/modules/tidy.so 时出错:_zval_ptr_dtor:未找到符号))第 0 行未知

Dockerfile

FROM php:7.3.2-cli-alpine3.9
USER root


COPY . code
WORKDIR code


RUN apk update && apk add php-tidy && apk add php-zip && apk add php-curl && apk add php-sodium

# RUN sed -i s/;extension=tidy/extension=tidy/ -f /usr/local/etc/php/php.ini-development
# RUN sed -i s/;extension=tidy/extension=tidy/ -f /usr/local/etc/php/php.ini-production

COPY php.ini /usr/local/etc/php/php.ini-development
COPY php.ini /usr/local/etc/php/php.ini-production

COPY php.ini /usr/local/etc/php/php.ini


CMD php -S 0.0.0.0:8080

docker shell 的输出

关于运行 phpinfo()

Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => /usr/local/etc/php/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/conf.d
Additional .ini files parsed => /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
# vi /usr/local/etc/php/php.ini

extension=tidy

[Tidy]
; The path to a default tidy configuration file to use when using tidy
; http://php.net/tidy.default-config
;tidy.default_config = /usr/local/lib/php/default.tcfg

; Should tidy clean and repair output automatically?
; WARNING: Do not use this option if you are generating non-html content
; such as dynamic images
; http://php.net/tidy.clean-output
tidy.clean_output = Off



; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "/usr/lib/php7/modules/"
; On windows:
;extension_dir = "ext"

#ls /usr/lib/php7/modules/
curl.so sodium.so tidy.so zip.so

最佳答案

有 docker 命令来安装 php 库。因此,而不是使用 linux 命令,例如:apk add php-tidy 使用 docker-php-ext-install tidy 解决了我的问题。以下是有效的 docker 文件。

FROM php:7


ENV DEBIAN_FRONTEND noninteractive

USER root
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y apt-utils
RUN apt-get install -y libzip-dev
RUN apt-get install -y libtidy-dev
RUN apt-get install -y curl
RUN apt-get install -y libcurl3
RUN apt-get install -y libcurl3-dev
RUN docker-php-ext-install zip
RUN docker-php-ext-install curl
RUN docker-php-ext-install tidy
RUN docker-php-ext-enable zip
RUN docker-php-ext-enable curl
RUN docker-php-ext-enable tidy

COPY . code
WORKDIR code

EXPOSE 8080
CMD php -S 0.0.0.0:8080

关于Php 找不到 tidy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823868/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com