赞
踩
之前在博文容器中搭建WordPress中介绍了如何在容器中搭建WordPress,后面虚拟中调整了IP地址,原来连接的数据库地址10.1.1.6
变成了10.1.1.8
,导致WordPress容器因连接不上数据库而不能正常运行。
wordpress 02:04:54.37 Welcome to the Bitnami wordpress-nginx container
wordpress 02:04:54.37 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-wordpress-nginx
wordpress 02:04:54.38 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-wordpress-nginx/issues
wordpress 02:04:54.38
wordpress 02:04:54.38 INFO ==> ** Starting WordPress setup **
wordpress 02:04:54.39 INFO ==> Validating settings in NGINX_* env vars
wordpress 02:04:54.39 INFO ==> No custom scripts in /docker-entrypoint-initdb.d
wordpress 02:04:54.40 INFO ==> Initializing NGINX
realpath: /bitnami/nginx/conf/vhosts: No such file or directory
wordpress 02:04:54.42 INFO ==> Configuring PHP options
wordpress 02:04:54.42 INFO ==> Setting PHP expose_php option
wordpress 02:04:54.43 INFO ==> Validating settings in MYSQL_CLIENT_* env vars
wordpress 02:04:54.45 WARN ==> The WordPress configuration file '/opt/bitnami/wordpress/wp-config.php' is not writable. Configurations based on environment variables will not be applied for this file.
wordpress 02:04:54.52 INFO ==> Restoring persisted WordPress installation
wordpress 02:04:54.53 INFO ==> Trying to connect to the database server
wordpress 02:06:31.63 ERROR ==> Could not connect to the database
wordpress 02:07:11.30
通过命令sudo podman inspect wordpress
查看wordpress
容器的信息,可以看到配置Env
以及CreateCommand
中的"WORDPRESS_DATABASE_HOST=10.1.1.6"
。
同时在容器中使用命令less /opt/bitnami/wordpress/wp-config.php
查看数据库的配置DB_HOST
也是10.1.1.6
:
define( 'DB_HOST', '10.1.1.6:3308' );
前面的日志中有一条:
WARN ==> The WordPress configuration file '/opt/bitnami/wordpress/wp-config.php' is not writable. Configurations based on environment variables will not be applied for this file.
即WordPress
的配置文件/opt/bitnami/wordpress/wp-config.php
不可写,基于环境变量的配置不能应用于此文件。
使用命令:sudo podman exec -it wordpress bash
进入容器Shell,通过如下图所示命令查看wp-config.php
的权限为只读:
需要使用命令chmod 640 /bitnami/wordpress/wp-config.php
添加写权限。
本来是想着修改/opt/bitnami/wordpress/wp-config.php
中的DB_HOST
即可。
在容器内Shell执行sed -i 's/10.1.1.6/10.1.1.8/g' /opt/bitnami/wordpress/wp-config.php
替换IP地址,但是替换后,重启容器,再查看wp-config.php
中的DB_HOST
还是10.1.1.6
。
原来是因为容器是开启的,关闭时配置又写回去了。
需要先关闭容器,将配置复制出来:
sudo podman cp wordpress:/opt/bitnami/wordpress/wp-config.php .
修改了,再复制回去:
sudo podman cp ./wp-config.php wordpress:/opt/bitnami/wordpress/wp-config.php
再启动容器就可以了。
不过,为了让整个容器中的相关地址都改为10.1.1.8
,特别是容器的配置信息。由于是使用的podman,没有直接可修改的文本配置,不像docker可以直接修改配置文件,podman需要使用工具修改/var/lib/containers/storage/libpod/bolt_state.db
中的内容。
在修改前一定要把所有podman容器全部关闭,使用命令:
sudo service podman stop
停止podman服务后,再复制bolt_state.db
出来。它是使用的一种叫bolt的小众数据库,流行于Go语言。笔者在博文改变podman的存储路径中介绍过使用boltdbweb来修改podman的存储路径,不过这次再使用它来修改容器的配置就不好使了。要想修改更深层次的配置,这工具不行。
笔者在网上找到了另一款国人写的工具bolt-manager,可以达到目的。将bolt-manager.exe
与bolt_state.db
放在同一目录,运行bolt-manager.exe
,它会自动打开浏览器。选择bolt_state.db
数据库,再选择ctr
中WordPress容器的ID4a02449c5009
开头的(容器ID可以通过sudo podman ps -a
查看),如下图所示,可以看到WORDPRESS_DATABASE_HOST=10.1.1.6
这里要修改为10.1.1.8
:
修改的界面就没前面查看界面友好了,需要费点神去找一下,可以使用浏览器的搜索功能:
修改完成后,保存一下。
再将修改后的bolt_state.db
复制回去,开启podman服务,
service podman start
开启容器即可。
由于bolt_state.db
的重要性,强烈建议在修改前进行备份。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。