Wordpress子目录建站部署方案
使用docker 安装wordpress 并且通过nginx映射到主域名的子目录建站
-
第一步
使用docker-componse 部署wordpress
version: '3.2' services: wordpress: image: wordpress restart: always ports: - 8089:80 environment: WORDPRESS_DB_HOST: ip:port WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: passsword WORDPRESS_DB_NAME: dbName volumes: - ./wordpress_data/wordpress:/var/www/html - ./wordpress_data/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
启动命令
docker-componse up -d
-
第二步
使用上面开放的映射端口8089开打网页
举例:ip:8089
成功进入后台后按照提示进行相关配置
配置成功后来到后台、打开导航栏中的设置
把wordpress地址和站点地址改为需要的域名地址包含子目录信息,例如:https://www.baidu.com/blog
注意:配置好后当前地址无法进入,往后看
-
第三步
配置nginx相关配置
location ^~ /article/ { client_max_body_size 50M; rewrite ^/article(/.*)$ $1 break; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:8089/; } # 重定向页面 location ~ /wp-(admin|login|content|includes)/ { client_max_body_size 50M; return 301 /article$request_uri; }
-
第四步
打开docker挂载出来的wordpress安装目录
wordpress_data/wordpress/wp-config.php文件
添加一下代码
define('WP_HOME','https://www.localhost.com/blog'); define('WP_SITEURL','https://www.localhost.com/blog'); $_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/", $_SERVER['REQUEST_URI']);
-
第五步
修改.htaccess文件
wordpress_data/wordpress/目录下
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # 祛除wordpress上传限制 默认2MB php_value upload_max_filesize 64M php_value post_max_size 64M php_value max_execution_time 300 php_value max_input_time 300
注意:如果后续修改文章无法打开是因为
.htaccess
被同步修改,多了一层映射关系可重新配置第五步试试
chmod 444 .htaccess # 只给只读权限不能再次被系统覆盖掉
-
第六步
/wordpress_data/wordpress/wp-admin 打开文件夹
新增php.ini文件
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300