前言
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管理界面,左侧边栏-工具-配置网络,此时出现如下页面,需要选择多站点形式,即子域名或是子目录;
我们选择子域名形式,继续配置,将如下两处配置添加到wp-config.php和.htaccess(这是隐藏文件 查询需要使用路上ls -la)文件中去:
如图,这里可以观察下这一行:`define( 'SUBDOMAIN_INSTALL', true );` ,为true即表示开启子域名多站点,为false即为子目录多站点
然后刷新页面,重新登陆wordpress管理页面,观察左侧边栏-工具-网络配置,此时管理页面也会发生如下变化,左上角我的站点下出现管理网络选项
此时已经完成多站点开启工作,现在可以多网站进行一些简单配置工作。
wordpress子域名多站点开启https协议
Apache2方式:
进去wordpress容器工作根目录/var/www/html,检查是否开启ssl组件:
第一次执行会出现下面的信息:a2enmod ssl
然后重起一下wordpress服务即可,如果在此执行会出现另一段信息:
说明ssl模块已经加载完成
编辑容器中的ssl文件,编辑配置文件:
root@cd5205193f22:/var/www/html# vim /etc/apache2/sites-available/default-ssl.confSSLCertificateFile /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子域名站点https协议配置方法:
修改ssl-http配置文件000-default.conf ,添加新的监听域名(粉色部分作用:强制http请求转到https):第一个域名监听:<VirtualHost *:80>ServerName domain.com<Directory "/var/www/html">RewriteEngine onRewriteBase /# FORCE HTTPSRewriteCond %{HTTPS} !=onRewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]</Directory>ServerAdmin webmaster@localhostDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>第二个域名监听:<VirtualHost *:80>ServerName news.domain.com<Directory "/var/www/html">RewriteEngine onRewriteBase /# FORCE HTTPSRewriteCond %{HTTPS} !=onRewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]</Directory>ServerAdmin webmaster@localhostDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
修改ssl-https配置文件default-ssl.conf ,添加新的监听域名:
第一个域名监听:<VirtualHost *:443>ServerAdmin webmaster@localhostServerName writes.cnDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combinedSSLEngine onSSLCertificateFile /etc/ssl/certs/domain.com_bundle.pemSSLCertificateKeyFile /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@localhostServerName news.writes.cnDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combinedSSLEngine onSSLCertificateFile /etc/ssl/certs/news.domain.com_bundle.pemSSLCertificateKeyFile /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协议开启;