# 在云托管中如何安装PHP的SG11扩展
SourceGuardian安全组件是PHP中较为重要和安全级别较高的安全组件,目前大部分php官方镜像未安装或启用SG11,所以如果你的项目需要此组件,则可以参照此文档
# 一、配置Dockerfile
在你原有的Dockerfile中,FROM下面一行添加下述命令
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
注意要放在COPY你的代码之前,避免每次构建重新剥离层。
# 二、验证是否开启
<?php
echo phpinfo();
当访问时查看是否存在如下信息,如果有则证明添加成功
# 三、完整示例
新建一个文件夹,文件夹下分别建立如下文件
- Dockerfile
FROM php:7.3-apache
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
COPY index.php /var/www/html/
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
CMD ["apachectl", "-DFOREGROUND"]
- index.php
<?php
echo phpinfo();
将文件夹部署到微信云托管中即可,部署过程可以参考此文档