【问题标题】:How to install PHP Extensionson SourceGuardian on wordpress docker image?如何在 wordpress docker 映像上安装 PHP Extensionson SourceGuardian?
【发布时间】:2021-01-10 13:10:48
【问题描述】:

我正在使用 docker 在我的本地机器上运行 Wordpress。当我想在我的 wordpress 网站上激活 Elementor Pro 时,出现此错误:

PHP script '/var/www/html/wp-content/plugins/elementor-pro/abzarwp/abzarwp.php' is protected by SourceGuardian and requires a SourceGuardian loader 'ixed.7.2.lin' to be installed.

1) Click here to download the required 'ixed.7.2.lin' loader from the SourceGuardian site
2) Install the loader to /usr/local/lib/php/extensions/no-debug-non-zts-20170718
3) Edit and add 'extension=ixed.7.2.lin' directive
4) Restart the web server

我的docker-composer.yml 是这样的:

version: "3.8"

services:
  # Wordpress
  wordpress:
    depends_on:
      - db
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: poshasin_wp
    ports:
      - "8081:80"
    restart: always
    volumes:
      - ./wordpress:/var/www/html
      - ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: ${MYSQL_USER}
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
    networks:
      - poshasin_wp_net

    # ...

而且,我的 wordpress Dockerfile 就像这里:

FROM wordpress:php7.2-apache

RUN apt-get update \
    && apt-get -y --no-install-recommends install wget \
    && rm -rf /var/lib/apt/lists/*

现在,我该如何解决这个问题?我的意思是如何在 wordpress docker 镜像中安装SourceGuardian

【问题讨论】:

  • 首先在 Docker 中,您必须安装该扩展以在 php.ini 中可用。你也这样吗?
  • 嗨@aviboy2006,不。我该怎么做?
  • linuxpitstop.com/… 在你的RUN 命令之后首先在docker中添加相同的命令
  • @aviboy2006,我的容器中没有/etc/php7.2/mods-available/sourceguardian.conf 路径。我该怎么办?

标签: wordpress docker elementor


【解决方案1】:

我像这样更新我的 Wordpress Dockerfile

FROM wordpress:php7.2-apache

# Install and enable Source Gaurdian loader
RUN PHP_VERSION=$(php -v | head -n1 | cut -d' ' -f2 | cut -d. -f1-2) \
    && mkdir -p /tmp/sourceguardian \
    && cd /tmp/sourceguardian \
    && curl -Os https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz \
    && tar xzf loaders.linux-x86_64.tar.gz \
    && cp ixed.${PHP_VERSION}.lin "$(php -i | grep '^extension_dir =' | cut -d' ' -f3)/sourceguardian.so" \
    && echo "extension=sourceguardian.so" > /usr/local/etc/php/conf.d/15-sourceguardian.ini \
    && rm -rf /tmp/sourceguardian

现在,一切都完美了!

【讨论】:

  • 太棒了。你做了哪些额外的改变?
  • 嗨@aviboy2006 谢谢你的帮助。我将这一行 echo "extension=sourceguardian.so" > /etc/php.d/15-sourceguardian.ini 更改为 echo "extension=sourceguardian.so" > /usr/local/etc/php/conf.d/15-sourceguardian.ini
  • 什么参考是正确的只有你必须检查路径
  • 是的!我只是改变了路径。
猜你喜欢
  • 2018-12-02
  • 2020-05-12
  • 2019-09-03
  • 2020-10-20
  • 1970-01-01
  • 2016-09-08
  • 2020-11-08
  • 1970-01-01
  • 2020-08-25
相关资源
最近更新 更多