自带插件不能删除
ssh进入服务器,输入(/home/web为安装路径):
echo "define('FS_METHOD', 'direct');" >> /home/web/html/wp-config.php
redis报错连接不上
ssh服务器,输入(/home/web为安装路径):
echo "define('WP_REDIS_HOST', 'redis'); define('WP_REDIS_PORT', '6379');" >> /home/web/html/wp-config.php
文章页面404
触发原因是固定链接修改后,同时发布文章会显示 wordpress网站发布失败:此响应不是合法的JSON响应
nginx添加伪静态配置规则,在https,server{ } 大括号里面添加下面的代码:
location / {
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
主题上传失败
表现为 上传的文件大小超过 php.ini 文件中定义的 upload_max_filesize 值
先查看下容器信息
docker ps -a
进入容器 php:填容器名或者镜像ID 容器
docker exec -it php /bin/bash
查询 php.ini 的位置
php --ini
如果出现如下显示:
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File: (none)
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-fpm.ini,
/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
文件本该出现的位置/usr/local/etc/php显示为 (none) ,表明文件不存在
输入ls显示路径下只有有如下文件:
conf.d php.ini-development php.ini-production
php.ini-development、php.ini-production为官方提供的参考配置文件,任意复制一份并重命名为 php.ini :
cp php.ini-production php.ini
再输入php --ini检查是否生效,出现如下表示生效:
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File: /usr/local/etc/php/php.ini
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-fpm.ini,
/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
退出容器:
exit
将配置文件复制到容器外方便修改,./表示容器外的当前路径:
docker cp php:usr/local/etc/php/php.ini ./
将文件下载到本地,修改如下内容:
post_max_size = 16M
upload_max_filesize = 16M
覆盖容器外的 php.ini ,并复制回容器内:
docker cp php.ini php:usr/local/etc/php/php.ini
重启容器
docker restart php
刷新下页面,上传主题文件
缺少一个或多个必须的模组
在 工具-站点健康 里显示
进入容器 php:填容器名或者镜像ID 容器
docker exec -it php /bin/bash
输入php -m,查看当前的扩展模块,不出意外的是没有:
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
random
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
安装exif、zip扩展
docker-php-ext-install exif
docker-php-ext-install zip
安装gd扩展
先安装gd的依赖包,不然装不了gd扩展(php7.4以上的版本):
apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ libwebp-dev \ zlib1g-dev
添加gd库编译选项:
docker-php-ext-configure gd \ --enable-gd \ --with-freetype \ --with-jpeg \ --with-webp
再安装gd扩展模块:
docker-php-ext-install -j$(nproc) gd
安装intl扩展
pecl install imagick && \
docker-php-ext-enable imagick
安装imagick扩展
先安装,弹出提示直接回车:
apt-get install -y libmagickwand-dev \
&& pecl install imagick
再安装imagick扩展模块:
docker-php-ext-enable imagick
如果是PHP8.3以上版本:
ERROR: `make INSTALL_ROOT="/tmp/pear/temp/pear-build-defaultuserl6yASZ/install-imagick-3.7.0" install' failed
这个错误通常是由于 Imagick.stub.php 文件中的预处理条件没有正确关闭。这个问题在 PHP 8.3 上尤为常见。解决需要把PHP换成8.2或以下版本,或者用 develop 分支。
因为不影响使用,也没查到可以成功使用的 develop 分支方法,所以选择不管imagick扩展。
检查是否都安装成功
输入php -m检查容器扩展,退出容器
exit
用上文的方法,修改 php.ini ,将对应插件前的 ; 去掉,没有的添加上:
extension=gd
extension=intl
extension=exif
extension=zip
extension=imagick.so
重启容器
docker restart php
WordPress无法上传WebP、ico等图片
搜索安装 Enable SVG, WebP, and ICO Upload 插件