首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php找不到整洁

Php找不到整洁
EN

Stack Overflow用户
提问于 2019-02-22 09:26:41
回答 2查看 3.3K关注 0票数 3

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

PHP Warning: PHP Startup: Unable to load dynamic library 'tidy' (tried: /usr/lib/php7/modules/tidy (Error loading shared library /usr/lib/php7/modules/tidy: No such file or directory), /usr/lib/php7/modules/tidy.so (Error relocating /usr/lib/php7/modules/tidy.so: _zval_ptr_dtor: symbol not found)) in Unknown on line 0

Dockerfile

代码语言:javascript
复制
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

坞壳输出

运行phpinfo()

代码语言:javascript
复制
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
代码语言:javascript
复制
# 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"
代码语言:javascript
复制
#ls /usr/lib/php7/modules/
curl.so    sodium.so  tidy.so    zip.so
EN

回答 2

Stack Overflow用户

发布于 2019-02-25 17:37:31

有用于安装php库的docker命令。因此,不用使用linux命令,例如:apk add php-tidy,使用docker-php-ext-install tidy解决了我的问题。下面是工作的停靠文件。

代码语言:javascript
复制
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

票数 1
EN

Stack Overflow用户

发布于 2021-12-12 21:07:58

基于Debian Bullseye的Dockerfile:

代码语言:javascript
复制
RUN apt-get update && \
    apt-get install -y libtidy-dev && \
    rm -rf /var/lib/apt/lists/* && \
    docker-php-ext-install tidy && \
    docker-php-ext-enable tidy
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54823868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档