如何在 wordpress docker 图像上安装 PHP Extensionson SourceGuardian?
How to install PHP Extensionson SourceGuardian on wordpress docker image?
我在本地机器上使用 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
?
我像这样更新我的 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
现在,一切都完美了!
我在本地机器上使用 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
?
我像这样更新我的 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
现在,一切都完美了!