群晖下搭建wordpress博客站点
本帖最后由 watermoon 于 2017-8-15 09:48 编辑如果说群晖只是拿来做数据仓库的话,那么这个仓库未免有点空旷了。如果说群晖只是拿来做下载的话,那么它就只是一台老牛破车。群晖的作用还有很多值得我们去进一步挖掘,这里我只想把自己这几个月亲身实践,试用了黑群白群多个版本之后,搭建wordpress博客站点的一些心得体会,完整地记录下来,供同好们参考。
wordpress是一个强大的开源博客程序,在接触群晖以前,我就已经为单位的网站架设过。当发现群晖有相应的套件可以直接采用时,颇感欣喜。尽管网络上有许多免费的博客站点可以让我们书写,但是谁也不能保证它们是否能长期存在下去。所以选博客网站,一是要可靠,二是要国外品牌。我一开始是千选万选选了微软的博客livespace来写的。心想微软不会说到就倒吧,它要倒了,电脑也进化了吧。不成想,live品牌整个被砍掉了,博客也就泡汤了。当然微软还是有善后的,国外的自动转给wordpress,国内因为“你懂的”原因所以不能给wordpress。所以我只能在新浪和网易上都占了地方。然而,又是因为“你懂的”原因,这两个地方都不太平,很容易被删文章或者评论。因此还是自己有服务器来搭建博客最可靠了。以上是前言。
进入正题,先说说如何在群晖DSM5.2系统下搭建wordpress博客站点。为何不直接说现在最新的DSM6.0.2呢?看下去就知道了。
一、在群晖DSM5.2系统下搭建wordpress博客站点。
1)打开web服务。wordpress博客程序就是一套网站程序,所以首先要打开系统的web服务。
在这里可以先简单地勾选启用即可,至于里面的设置以后用到时再说。在开始菜单里打开web station,若能显示下图,则表明已经开启了群晖系统的web服务了。
2)下载并安装wordpress套件。这个不用多说,群晖套件比windows下建站要方便多了,不需要考虑apache啊、php啊、mySQL啊等等,傻瓜式安装。它会自动提示需要安装数据库套件,一路“下一步”,直至完成。
至于数据库密码,若是需要,则首先要打开数据库套件在其中设置好(默认是空密码),再在wordpress套件安装的这一步中输入密码。
3)初始化wordpress。在开始菜单里点击wordpress,跳出博客网站的初始化页面,然后按需填入相关内容,一路下去就建好了博客站点。
现在只要在浏览器的地址栏中输入群晖服务器所在地址在其后加上/wordpress/即可在局域网中访问到wordpress博客站点。当然想要让主页自动跳转到博客首页的话,可以修改共享目录web下的index.html文件,在<title></title>标签之间加入自动跳转代码,如:
<meta http-equiv="refresh" content="0.1;url=/wordpress/"> 4)外网访问设置。在这之前其实wordpress站点已经搭建完毕,但关键问题是我们要让外网访问到站点。外网访问,白群有群晖提供的免费域名XXXXXX.synology.me,也可以用其他免费的动态域名。比如,我就用的是watermoon.f3322.net。
理论上只要在群晖的控制面板“外部访问”中新增好DDNS,在“路由器配置”中做好端口映射,就能从外网访问到博客站点。然而,现实却往往与理论相悖。宽带运营商一般都会无耻地封闭个人用户的上行80端口,导致无法通过域名访问直接访问站点。解决办法就是新增端口,在控制面板“web服务”中,勾选额外端口,填入自定义端口号,比如:8888(好像电信连8080都封掉的),再到“路由器配置”中做好端口映射。以后在外网访问时,地址上必须加端口号才行。例如:http://watermoon.f3322.net:8888/。
5)外网访问为什么wordpress站点只能看到首页?这个问题是wordpress才会碰到的。因为这套网站里面的链接都是采用绝对路径,而不是相对路径,所以端口号改变之后,其内部的链接仍然是没有端口号的,导致外网访问异常。最简单的办法是登录wordpress后台,修改设置-常规选项中的站点地址,加入端口号。
注意:这样做有一个副作用,就是再也无法在内网中直接输入IP地址访问站点了。解决办法就是要让wordpress自动获取站点地址。我们在web共享目录下的wordpress目录中找到设置文件wp-config.php,在文件的最后添加一段代码:
$home = 'http://'.$_SERVER['HTTP_HOST']; #获取当前访问的域名
$siteurl = 'http://'.$_SERVER['HTTP_HOST'];
define('WP_HOME', $home.'/wordpress');
define('WP_SITEURL', $siteurl.'/wordpress'); 保存以后,无论是在外网用动态域名+端口,还是在内网直接输入IP地址,都能正常访问wordpress博客站点中的所有链接了。
至此,在群晖DSM5.2系统下搭建wordpress博客站点大功告成!
二、在群晖DSM6.0.2系统下搭建wordpress博客站点。
照理说,系统应该越新越简便,然而在DSM6下搭建wordpress却变成了噩梦。
1)安装套件。这个仍然很自动、很傻瓜,会提示还需要安装web服务和数据库套件。注意:新的系统把web服务也做成了套件,而不再是集成于系统的控制面板中了,产生什么影响,下文再说。
2)初始化wordpress。以上大致与5.2系统下没什么区别,到了这里第一个大问题出现了。初始化时选了简体中文,完成后进入仪表盘,首页居然是英文的,里面很多都汉化不全,这是怎么回事呢?后来无意间发现了群晖在站点插件里加了一个翻译插件。问题就在这里了!尽管没有启用,但它对wordpress造成了困扰。
我试着启用它,选择英文,然后再关闭它。这之后,再在wordpress的设置中选择简体中文,终于让整个站点设置都显示为中文状态了。然而,与此同时,我又发现wordpress居然不能自动检查到最新版本了,请看截图。
再来看看正常状态下的截图。
问题似乎是出在wp-config.php中被群晖加了一段不自动检查的代码:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
add_filter('pre_site_transient_update_core','__return_null');
可是,就算删除这段代码,也还是无法找回升级按钮,只能看到新版的版本号。你说群晖是在折腾啥?我只能认为这是群晖故意不让用户通过wordpress自动升级的,而是一定要通过群晖的套件方式进行升级,因为群晖在wordpress的源代码中修改了其他东西,怕自动升级冲掉这些东西。
3)外网访问问题。接着有一个大问题出现了。上文讲过新的系统把web服务也做成了套件,但这个套件里面却再也找不到打开额外web服务端口的设置了!有网友去信咨询过,确认是群晖删除了这个设置。可恶啊!难道他们不知道国内电信基础运营商都是封掉80上行端口的吗?怎么办?通过不懈努力和盲目摸索。我终于找到了一个替代办法。添加虚拟主机,设定其端口号为8888,然后在外部访问中把路由器的8888映射到群晖的8888上。注意,不能使用路由器8888映射到群晖的80,为什么?因为当外网访问时必须始终显示端口号才行,而80端口号会被系统自动省略,那就会导致错误。在这里,我一直遇到问题,就是在外网访问时只能显示首页,却不能显示CSS等其他内容,找了半天也没查出问题,我只得把5.2下的wp-config.php拷贝出来覆盖6.0.2下的相应文件,终于解决了问题。至于有何副作用,目前还没发现。
现在貌似正常了,但折腾了我好多时间,谁说群晖比windows下架设wordpress方便了?
补记:
群晖系统在不断升级和完善。最近的DSM6.1.3版本中,wordpress套件也有了进步。尽管版本号还不算最新,只是4.7.5,不过上文提到的显示中文界面的小麻烦已经解决了,可以直接在设置中选择中文。当然如果想要让wordpress自动升级到最新版的话,按照上文中注释掉那句不允许检测版本的语句即可。中文版的升级按钮还是看不见,不过我们可以先升级成英文版的,其后就会出现中文版的升级按钮。现在已经可以很方便地升级到4.8.1中文版了。
不错,支持下。 详尽,实用,顶一个! 谢谢分享。。
http://www.gebi1.com/static/image/common/sigline.gif
https://wrdan.com 一个运行在家里的小网站 求大神解答,目前内局域网 IP可以访问,但是公网 IP,还有域名都不行。
内网用192.168.1.59/wordpress,可以访问。
由于电信屏蔽就做了端口映射,外网430,内网80,外网88,内网80都试过无法访问
然而用公网 IP+上述的做了端口映射的端口访问phpmyadmin却可以远程访问,说明端口映射没有问题
域名+上述的做了端口映射的端口访问phpmyadmin却可以远程访问,域名也没问题
就是访问wordpress时候会先转跳至res://ieframe.dll/navcancl.htm,之后直接BOOM
无法访问
还有带端口号可以用隐性URL去尾巴么?
求大神QAQ 本帖最后由 dannyw 于 2016-12-20 08:54 编辑
baogyq 发表于 2016-12-19 16:21
求大神解答,目前内局域网 IP可以访问,但是公网 IP,还有域名都不行。
内网用192.168.1.59/wordpress,可 ...
用https 443端口
http://www.gebi1.com/static/image/common/sigline.gif
https://wrdan.com 一个运行在家里的小网站
baogyq 发表于 2016-12-19 16:21
求大神解答,目前内局域网 IP可以访问,但是公网 IP,还有域名都不行。
内网用192.168.1.59/wordpress,可 ...
phpmyadmin打开数据库,看看网站设置用的是哪个地址。我发现有时候就算加了上面那段代码还是会有些问题。所以还是老老实实把地址全都写成外网的地址,比如:http://watermoon.f3322.net:8888/
电信似乎是把80,8080什么的都关了。 watermoon 发表于 2016-12-19 18:53
phpmyadmin打开数据库,看看网站设置用的是哪个地址。我发现有时候就算加了上面那段代码还是会有些问题。 ...
谢谢,终于可以了 怪不得我怎么找也找不到打开额外web服务端口的设置。原来是我的群晖出场就是6.0 收藏一下感觉6下好麻烦 学习!!长知识!! 然而,现实却往往与理论相悖。宽带运营商一般都会无耻地封闭个人用户的上行80端口,导致无法通过域名访问直接访问站点。解决办法就是新增端口,在控制面板“web服务”中,勾选额外端口,填入自定义端口号,比如:8888(好像电信连8080都封掉的),再到“路由器配置”中做好端口映射。以后在外网访问时,地址上必须加端口号才行。
想请教一下,WEB服务那里改成了8888,在路由器映射那里怎么配?外部端口填8888,内部填80?选TCP协议? ck_i 发表于 2017-3-14 20:39
想请教一下,WEB服务那里改成了8888,在路由器映射那里怎么配?外部端口填8888,内部填80?选TCP协议? ...
web服务虚拟服务器开8888端口,路由器那里内外部都选8888即可。 为什么我设置好了,但是外网报500错误呢?内网没问题可以访问 学习了 感觉我不怎么需要写这个 嘿嘿 5.2下的wp-config.php麻烦共享下 robbing 发表于 2017-4-26 23:33
5.2下的wp-config.php麻烦共享下
抱歉,这个文件我没保存,后来我还是不用套件直接装了。参见:
不用群晖套件在DSM下架设wordpress博客站点
请教,群晖建站后,如何给网站安装SSL证书。 感谢楼主分享,一直以为wordpress只能内部访问 milkha 发表于 2017-6-9 09:33
请教,群晖建站后,如何给网站安装SSL证书。
证书申请后,下载到本地,然后在控制面板-安全性中添加进去即可。
页:
[1]
2