/wordpress-local-dev

已经上线的Wordpress网站本地开发方案。使用Docker搭建LNMP环境,模拟线上的域名,站点目录及数据库。

Primary LanguagePHPMIT LicenseMIT

wordpress-local-dev

已经上线的Wordpress网站本地开发方案。使用Docker搭建LNMP环境,模拟线上的域名,站点目录及数据库。

  1. 域名配置

    mkcert快速生成证书

    mkcert -install  #信任CA
    mkcert example.com #生成证书

    将生成的两个example.com.pemexample.com-key.pem放在./config/nginx/ssl下,修改./config/nginx/sites-available/www.conf配置文件中出现的域名

    注: 本nginx配置为nginxconfig.io生成后简化所得。

    证书路径配置:

    # SSL
    ssl_certificate     /etc/nginx/ssl/example.com.pem;
    ssl_certificate_key /etc/nginx/ssl/example.com-key.pem;
    

    监听443端口的server_name配置( http重定向和子域名重定向视具体情况修改和开启 ):

    server_name         example.com;
    

    修改root为线上的Wordpress站点对应目录

    root                /www/wwwroot/example.com
    

    将php文件转发给php容器

    location ~ \.php$ {
        fastcgi_pass php_cgi_container:9000;
        include      nginxconfig.io/php_fastcgi.conf;
    }
    
  2. 修改docker挂载目录

    修改docker-compose.ymlwebcgi两个service中的volumes

    volumes:
      - "./www:/www/wwwroot/example.com"

    /www/wwwroot/example.com改为Wordpress站点对应的目录

  3. SwitchHosts管理Hosts文件

    添加新的Hosts文件,写入内容并激活

    127.0.0.1    example.com
  4. 导出站点wordpress数据库为sql文件,放在./sql文件夹中,构建mysql镜像时会自动导入

    配置docker-compose.yml中mysql的root密码。

    environment:
      - MYSQL_ROOT_PASSWORD=admin
  5. 为PHP镜像安装扩展,参考PHP官方说明

    how-to-install-more-php-extensions

    我采用的方案是docker-php-extension-installer,已经安装mysqlixdebug。 添加更多扩展请在./docker/php/Dockerfile中最后一行加入,用空格隔开。

  6. 导入Wordpress站点文件

    ./www目录即为站点的根目录。

    推荐使用Git对线上站点进行版本控制。.gitignore.example是线上站点的.gitingore模板,根据情况修改。

  7. 配置wp-config.php

    复制一份站点的wp-config.php文件到本地。 将DB_host修改为mysql_db_container

    define( 'DB_HOST', "mysql_db_container" );

    访问test.php即可测试mysql连接

  8. docker-compose up -d