美文网首页
基于docker搭建自己的个人网站

基于docker搭建自己的个人网站

作者: 牧瀬紅莉栖_ | 来源:发表于2019-12-10 16:03 被阅读0次

    准备工作

    本文主要讲解如何在自己的云服务器上使用docker搭建自己的网站

    关于WordPress

    WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统。在WP上有规模庞大的插件和主题,可以帮助我们快速建立一个博客甚至网站。

    在Windows上可以非常方便的安装WordPress,因为IIS上集成了WordPress的一键安装包。而在Linux上安装WordPress就比较复杂了,我们需要配置PHP环境、Apache或者Nginx服务器、MySQL数据库以及各种权限和访问问题。所以在Linux上最好的办法就是使用Docker来安装WordPress。

    安装Docker

    如何安装

    安装WordPress

    有了Docker,安装WordPress就很简单了,直接一条命令搞定。

    docker pull wordpress:latest
    
    

    安装MySQL

    WordPress需要使用MySQL数据库,这里也有两种方式,第一种是安装本地MySQL,第二种就是在Docker中安装MySQL镜像。如果要在Docker中安装MySQL也非常简单,同样一条命令搞定。

    docker pull mysql:latest
    
    

    如果从Docker中安装MySQL,还需要额外的配置来启动MySQL,具体文档参考这里。启动MySQL使用下面的命令。

    docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
    
    

    name参数指定要启动的实例名称,MYSQL_ROOT_PASSWORD指定ROOT密码。tag参数是MySQL的版本号,可以是5.75.68.0

    配置WordPress

    安装好数据库之后,就可以启动WordPress了。详细的文档参考这里。如果使用Docker中安装的MySQL实例,使用下面的命令。

    docker run --name wordpress --link mysql:mysql -p 8080:80 -d wordpress
    
    

    name参数指定要启动的WordPress实例名称,link参数指定要使用的Docker MySQL实例名称,p参数将Docker内部的80端口映射到本地的8080端口上。

    如果使用外部的MySQL数据库,则输入下面的命令。

    docker run --name wordpress -e WORDPRESS_DB_HOST=10.1.2.3:3306 \
        -e WORDPRESS_DB_USER=... -e WORDPRESS_DB_PASSWORD=... -d wordpress
    
    

    WORDPRESS_DB_HOST参数是MySQL的数据库端口号,WORDPRESS_DB_USER是要数据库用户名,WORDPRESS_DB_PASSWORD是数据库密码。这里的WORDPRESS_DB_HOST参数不能填写localhost,因为这样会重定向到WordPress镜像内部的localhost,而这个镜像中实际上没有安装MySQL。所以这里需要填写本机IP地址,才能正确访问到Docker外部的本机的数据库。

    因此需要注意,如果使用外部数据库的话,数据库的用户需要具有外部IP的权限,因为这次不是通过本机回环地址访问。默认情况下MySQL安装时候的ROOT用户只允许本地登录,所以可能需要配置允许用户远程登录。

    然后打开浏览器,输入localhost:8080(端口号是命令中设置的),然后就可以看到WordPress了。按照提示输入用户名等信息,然后安装WordPress。等到它提示安装完成,那么WordPress的安装就算大功告成了。

    最后稍加配置,再添加诸如内网映射等功能之后,站点就可以对外访问了。

    你可能会遇到的问题

    按照上面的步骤,wordpress已经搭建了不过笔者访问的时候遇到了一个大坑:

    Error establishing a database connection

    数据库连接失败了,到底哪除了问题
    最后找了很久资料发现原因是认证方法错误,mysql8.0以后默认的认证方式改了,所以才会有这样的错误

    解决方法

    #进入mysql容器
    docker exec -it mysql /bin/bash
    #登陆数据库
    mysql -u root -p
    use mysql;
    #开启root远程访问权限
    grant all on *.* to 'root'@'%';
    #修改加密规则
    alter user 'root'@'localhost' identified by '123456' password expire never;
    #更新密码
    alter user 'root'@'%' identified with mysql_native_password by '123456';
    #刷新权限
    flush privileges;
    

    另外你需要注意wordpress镜像里的config文件里配置的数据库名和账号密码必须对应。
    可以使用下面的命令进去查看

    docker exec -it wordpress /bin/bash
    

    相关文章

      网友评论

          本文标题:基于docker搭建自己的个人网站

          本文链接:https://www.haomeiwen.com/subject/ulcggctx.html