docker环境搭建之wordpress

近来由于某种原因xxx自己用docker搭建一个wordpress环境。把各个坑都踩了遍。这里记录一下。

新手上路,大佬勿喷。

这里我是win下本地搭好了然后导出数据库放docker里面导入sql文件起服务的。

一、docker部署的任意端口后一直跳转80

因为wordpress在安装的时候就已经绑定了端口,所以需要改成docker命令run的端口一样的端口。我直接在sql文件里面加两条:

修改服务器端口后需要修改wordpress的默认端口。我这里以run1234端口为例。

方法1:

  1. define('WP_SITEURL', 'http://127.0.0.1:1234');  
  2. define('WP_HOME', 'http://127.0.0.1:1234');  

这两个全局变量需要比较新的wordpress,应该版本大于2.2。

方法2:

如果不是的话,那就直接修改数据库中表wp_options。

  1. update wp_options set option_value='http://127.0.0.1:1234' where option_name='siteurl';  
  2. update wp_options set option_value='http://127.0.0.1:1234' where option_name='home';  

二、跳转/wp-admin/install.php显示未曾安装

wordpress不像其他cms一样,安装后会自动生成install.lock文件,wordpress是根据是否有数据库对应表的内容来判断是否安装的。

而这个坑是我自己sb了,为了配权限自己创建了个普通权限用户,wp-config.php也是用这个数据库用户登陆的,然后就很迷的没有连上数据库,exec进终端mysql可以用普通用户登陆。在wp-config.php里面改用数据库root用户

三、WordPress相对路径设置

终于可以进index.php了,不过css,js这些全挂了,原因是因为链接全是绝对路径127.0.0.1:1234/xxxxxx

查看网站的源代码发现网站wp-includes/option.php文件中存在函数get_option,该函数通过参数名来获取数据库中wp_options中的字段。

现在的要求是能使得wordpress使用任何ip都能正常解析,那么可以在这个函数中判断参数为home或者siteul的请求,如有该请求不去查询数据库直接返回需要的地址。

将函数进行如下修改:在函数开始部分加上判断并设置动态的ip地址.

然后就ojbk了。

参考链接:https://blog.csdn.net/hellbaby666/article/details/41645601

http://blog.oa25.org/?p=491

https://www.jianshu.com/p/992218bf872c

猜你喜欢

转载自blog.csdn.net/like98k/article/details/82731252