[WordPress建站经验]docker-wordpress开启子域名形式多站点,并开启https访问

1,206次阅读
一条评论

共计 3190 个字符,预计需要花费 8 分钟才能阅读完成。

前言

Tips:务必先做好域名申请以及正确绑定服务器资源,在worpress网站初始化之前就应该做好,然后通过http://domain.com 主域名访问进行初始化配置数据库等等操作,诸如xxx.domain.com、亦或是www.domain.com也不行的!!!!

本人踩坑点:使用http://www.domain.com进行初始化,wordpress记录主站域名为www.domain.com,导致后续无法选择子域名形式多站点,wordpress提示网站已经是子域名无法再选择子域名多站点,默认选择子目录形式开启多站点;

wordpress开启多站点

修改wordpress 域名根路径下的文件 wp-config.php ,在文件中寻找如下一段注释:

/* That’s all, stop editing! Happy publishing. */

在这段注释之上添加如下一行:

/* 开启多站点. */
define( ‘WP_ALLOW_MULTISITE’, true );

刷新wordpress管理界面,左侧边栏-工具-配置网络,此时出现如下页面,需要选择多站点形式,即子域名或是子目录;

[WordPress建站经验]docker-wordpress开启子域名形式多站点,并开启https访问

我们选择子域名形式,继续配置,将如下两处配置添加到wp-config.php和.htaccess(这是隐藏文件 查询需要使用路上ls -la)文件中去:

[WordPress建站经验]docker-wordpress开启子域名形式多站点,并开启https访问

如图,这里可以观察下这一行:`define( ‘SUBDOMAIN_INSTALL’, true );` ,为true即表示开启子域名多站点,为false即为子目录多站点

然后刷新页面,重新登陆wordpress管理页面,观察左侧边栏-工具-网络配置,此时管理页面也会发生如下变化,左上角我的站点下出现管理网络选项

[WordPress建站经验]docker-wordpress开启子域名形式多站点,并开启https访问

此时已经完成多站点开启工作,现在可以多网站进行一些简单配置工作。

wordpress子域名多站点开启https协议

Apache2方式:

进去wordpress容器工作根目录/var/www/html,检查是否开启ssl组件:

a2enmod ssl

第一次执行会出现下面的信息:

[WordPress建站经验]docker-wordpress开启子域名形式多站点,并开启https访问

然后重起一下wordpress服务即可,如果在此执行会出现另一段信息:

[WordPress建站经验]docker-wordpress开启子域名形式多站点,并开启https访问

说明ssl模块已经加载完成

编辑容器中的ssl文件,编辑配置文件:

root@cd5205193f22:/var/www/html# vim /etc/apache2/sites-available/default-ssl.conf

找到SSLCertificateFile和SSLCertificateKeyFile这两个配置项,修改文件名为所申请的证书(我在腾讯云申请的一年免费证书)名称:

SSLCertificateFile /etc/ssl/certs/domain.com_bundle.pem
SSLCertificateKeyFile /etc/ssl/private/domain.com.key

将配置文件default-ssl.conf 加载进ssl模块:

root@cd5205193f22:/var/www/html# ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf

退出容器重启wordpress服务,此时完成了主站点的https的改造;

子域名站点https协议配置方法:

修改ssl-http配置文件000-default.conf ,添加新的监听域名(粉色部分作用:强制http请求转到https):

第一个域名监听:
<VirtualHost *:80>
  ServerName domain.com
  <Directory “/var/www/html”>
    RewriteEngine   on
    RewriteBase /
    # FORCE HTTPS
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
  </Directory>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
第二个域名监听:
<VirtualHost *:80>
  ServerName news.domain.com
  <Directory “/var/www/html”>
    RewriteEngine   on
    RewriteBase /
    # FORCE HTTPS
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
  </Directory>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
修改ssl-https配置文件default-ssl.conf ,添加新的监听域名:
第一个域名监听:
<VirtualHost *:443>
  ServerAdmin webmaster@localhost
  ServerName writes.cn
  DocumentRoot /var/www/html
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  SSLEngine on
  SSLCertificateFile      /etc/ssl/certs/domain.com_bundle.pem
  SSLCertificateKeyFile   /etc/ssl/private/domain.com.key
  <FilesMatch “\.(?:cgi|shtml|phtml|php)$”>
     SSLOptions +StdEnvVars
  </FilesMatch>
  <Directory /usr/lib/cgi-bin>
     SSLOptions +StdEnvVars
  </Directory>
</VirtualHost>
第二个域名监听:
<VirtualHost *:443>
  ServerAdmin webmaster@localhost
  ServerName news.writes.cn
  DocumentRoot /var/www/html
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  SSLEngine on
  SSLCertificateFile      /etc/ssl/certs/news.domain.com_bundle.pem
  SSLCertificateKeyFile   /etc/ssl/private/news.domain.com.key
  <FilesMatch “\.(?:cgi|shtml|phtml|php)$”>
     SSLOptions +StdEnvVars
  </FilesMatch>
  <Directory /usr/lib/cgi-bin>
     SSLOptions +StdEnvVars
  </Directory>
</VirtualHost>
退出,重启wordpress服务,现在完成子站点的https协议开启;

正文完
 2
裴先生
版权声明:本站原创文章,由 裴先生 2024-01-09发表,共计3190字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
本站勉强运行: