Synology(群晖)常见的配置项以及命令项
Apache2.2 相关配置与常见命令
目录相同链接位置 /usr/local/etc/apache22/conf/httpd22.conf
$ sudo vim /volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/httpd22.conf
重启 Apache2.2,有时候重启无效,此时请重启服务器
$ sudo /usr/syno/bin/synopkg restart httpd2.2
查看访问日志
$ sudo tail -f /var/log/httpd/apache22-access_log
查看错误日志
$ sudo tail -f /var/log/httpd/apache22-error_log
目录相同链接位置 /usr/local/etc/apache22/conf/httpd22.conf
$ sudo vim /volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/httpd22.conf
重启 Apache2.2,有时候重启无效,此时请重启服务器
$ sudo /usr/syno/bin/synopkg restart httpd2.2
查看访问日志
$ sudo tail -f /var/log/httpd/apache22-access_log
查看错误日志
$ sudo tail -f /var/log/httpd/apache22-error_log
Apache2.4 相关配置与常见命令
目录相同链接位置 /usr/local/etc/apache24/conf/httpd24.conf
$ sudo vim /volume1/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf
重启 Apache2.4,有时候重启无效,此时请重启服务器
$ sudo /usr/syno/bin/synopkg restart httpd2.4
查看访问日志
$ sudo tail -f /var/log/httpd/apache24-access_log
查看错误日志
$ sudo tail -f /var/log/httpd/apache24-error_log
目录相同链接位置 /usr/local/etc/apache24/conf/httpd24.conf
$ sudo vim /volume1/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf
重启 Apache2.4,有时候重启无效,此时请重启服务器
$ sudo /usr/syno/bin/synopkg restart httpd2.4
查看访问日志
$ sudo tail -f /var/log/httpd/apache24-access_log
查看错误日志
$ sudo tail -f /var/log/httpd/apache24-error_log
Nginx相关配置与常见命令
nginx 配置文件
$ sudo vim /etc/nginx/nginx.conf
nginx 配置信息存储位置
$ sudo ls /usr/local/etc/nginx/conf.d
重启nginx
$ sudo synoservicecfg –restart nginx
查看日志
$ sudo tail -f /var/log/nginx/error.log
nginx 配置文件
$ sudo vim /etc/nginx/nginx.conf
nginx 配置信息存储位置
$ sudo ls /usr/local/etc/nginx/conf.d
重启nginx
$ sudo synoservicecfg –restart nginx
查看日志
$ sudo tail -f /var/log/nginx/error.log
Web Station 相关配置与常见命令
默认网页服务器根目录
/volume1/web
1
2
3
默认网页服务器根目录
/volume1/web
群晖(Synology)套件中的 WordPress 相关配置与常见命令
安装以及启用WordPress需要配置Web Station,一般建议使用Apache来访问,具体的配置信息参考下图:
WordPress根目录
/volume1/web/wordpress
WordPress在Nginx上的转发配置文件位置
/usr/local/etc/nginx/conf.d/www.WordPress.conf
1
2
3
4
5
WordPress根目录
/volume1/web/wordpress
WordPress在Nginx上的转发配置文件位置
/usr/local/etc/nginx/conf.d/www.WordPress.conf
如果群晖上的WordPress使用的数据库是从其他服务器同步过来的,然后配置成功之后,打开网页显示空白的话,一般都是源网站更改过WordPress的源代码,而套件安装的是干净的版本,导致代码运行异常。
目前我的网站是阿里云服务器同步到群晖(Synology)上的,阿里云服务器上使用自定义的主题 twentyfifteen-child , 然而群晖(Synology)上安装的WordPress是没有这个自定义子主题的,我们需要同步这部分文件下来,否则页面照旧运行异常。另外,对应的插件也需要同步。
群晖使用的数据库是MariaDB10,配置数据库连接的时候,有时候需要手工指出端口号(默认3307),否则会连接失败。因此在WordPress配置的时候也需要这么操作,如果不设置,那么配置的时候提示成功,但是配置完成后,访问网站会提示数据库访问异常。
群晖可以正常运行的配置,参考下图:
测试数据库连接的代码如下:
mysql.php
PHP
<?php $conn = mysqli_connect(“localhost:3307″,”wordpress”,”password”,”wordpress”) or die(“connect err: “.mysqli_error()); echo “MySQL is OK”; ?> <?php $conn = mysqli_connect(“localhost:3307″,”wordpress”,”password”,”wordpress”) or die(“connect err: “.mysqli_error()); echo “MySQL is OK”; ?>
另外,记得给访问WordPress数据库的用户授权,否则也是不能正常访问的,授权命令如下:
$ mysql -u root -p -e “grant all privileges on wordpress.* to ‘wordpress’@‘localhost’ identified by ‘pass’;”
1
$ mysql -u root -p -e “grant all privileges on wordpress.* to ‘wordpress’@‘localhost’ identified by ‘pass’;”
还有一个奇怪的问题,设置数据库参数的时候,如果访问的地址是 IP地址,可以配置成功,但是如果使用域名访问,就会配置失败,这应该算是一个问题。
可能的原因参考 域名访问群晖服务器上的网站的时候,报告500错误
另外,建议增加配置WP_HOME,WP_SITEURL来覆盖数据库中的地址,直接在wp-config.php尾部增加即可,这样可以解决网站都跳转到被同步网站的情况。
具体代码如下:
wp-config.php
PHP
H
T
T
P
T
Y
P
E
=
(
(
i
s
s
e
t
(
HTTP_TYPE = ((isset(
HTTPTYPE=((isset(_SERVER[‘HTTPS’]) &&
S
E
R
V
E
R
[
′
H
T
T
P
S
′
]
=
=
′
o
n
′
)
∣
∣
(
i
s
s
e
t
(
_SERVER[‘HTTPS’] == ‘on’) || (isset(
SERVER[′HTTPS′]==′on′)∣∣(isset(_SERVER[‘HTTP_X_FORWARDED_PROTO’]) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] == ‘https’)) ? ‘https://’ : ‘http://’;
$HOME =
H
T
T
P
T
Y
P
E
.
HTTP_TYPE.
HTTPTYPE._SERVER[‘HTTP_HOST’].’/wordpress’; #获取当前访问的域名
$SIT_URL =
H
T
T
P
T
Y
P
E
.
HTTP_TYPE.
HTTPTYPE._SERVER[‘HTTP_HOST’].’/wordpress’;
define(‘WP_HOME’, $HOME);
define(‘WP_SITEURL’, $SIT_URL);
1
2
3
4
5
H
T
T
P
T
Y
P
E
=
(
(
i
s
s
e
t
(
HTTP_TYPE = ((isset(
HTTPTYPE=((isset(_SERVER[‘HTTPS’]) &&
S
E
R
V
E
R
[
′
H
T
T
P
S
′
]
=
=
′
o
n
′
)
∣
∣
(
i
s
s
e
t
(
_SERVER[‘HTTPS’] == ‘on’) || (isset(
SERVER[′HTTPS′]==′on′)∣∣(isset(_SERVER[‘HTTP_X_FORWARDED_PROTO’]) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] == ‘https’)) ? ‘https://’ : ‘http://’;
$HOME =
H
T
T
P
T
Y
P
E
.
HTTP_TYPE.
HTTPTYPE._SERVER[‘HTTP_HOST’].’/wordpress’; #获取当前访问的域名
$SIT_URL =
H
T
T
P
T
Y
P
E
.
HTTP_TYPE.
HTTPTYPE._SERVER[‘HTTP_HOST’].’/wordpress’;
define(‘WP_HOME’, $HOME);
define(‘WP_SITEURL’, $SIT_URL);
另外,建议把wp-config.php的权限修改成只有所有者才能写入,默认情况权限有些高,保证安全性。如下:
$ sudo chmod 600 wp-config.php
1
$ sudo chmod 600 wp-config.php
另一个常见问题是,WordPress启用WP Super Cache之后,通过.htaccess 配置重写规则(permalinks),实现缓存请求的情况下,出现404错误。如下图:
观察服务器的日志,看到如下信息:
$ sudo tail -f /var/log/httpd/apache22-error_log
…
…
2020-04-26T08:57:14+08:00 DS718 [Sun Apr 26 08:57:14 2020] [error] [client 10.8.0.10] File does not exist: /var/services/web/index.php, referer: http://10.10.10.111/wordpress/
$ sudo tail -f /var/log/httpd/apache22-error_log
…
…
2020-04-26T08:57:14+08:00 DS718 [Sun Apr 26 08:57:14 2020] [error] [client 10.8.0.10] File does not exist: /var/services/web/index.php, referer: http://10.10.10.111/wordpress/
日志中,可以看到,找不到文件/var/services/web/index.php ,而实际应当访问的文件地址是/var/services/web/wordpress/index.php 。
可见WP Super Cache配置的重写规则出现了问题。默认情况下WordPress都是配置在网站根目录,但是我们现在处于网站的子目录,因此我们需要对WP Super Cache生成的默认规则进行手工修改。
$ sudo tail -f /var/log/httpd/apache22-error_log
…
…
2020-04-26T08:57:14+08:00 DS718 [Sun Apr 26 08:57:14 2020] [error] [client 10.8.0.10] File does not exist: /var/services/web/index.php, referer: http://10.10.10.111/wordpress/
$ sudo tail -f /var/log/httpd/apache22-error_log
…
…
2020-04-26T08:57:14+08:00 DS718 [Sun Apr 26 08:57:14 2020] [error] [client 10.8.0.10] File does not exist: /var/services/web/index.php, referer: http://10.10.10.111/wordpress/
WP Super Cache生成的默认配置文件内容如下:
.htaccess
Vim
BEGIN WordPress
在BEGIN WordPress
与END WordPress
之间的指令(行)是
动态生成的,只应被WordPress过滤器修改。
任何对标记之间的指令的修改都会被覆盖。
END WordPress
BEGIN WordPress
在BEGIN WordPress
与END WordPress
之间的指令(行)是
动态生成的,只应被WordPress过滤器修改。
任何对标记之间的指令的修改都会被覆盖。
END WordPress
主要关注RewriteRule . /index.php [L]这条规则,可以看到是跳转到网站根目录的。我们需要修改成,跳转到WordPress根目录 RewriteRule . /wordpress/index.php [L]。
调整后的规则如下:
.htaccess
Vim
BEGIN WordPress
在BEGIN WordPress
与END WordPress
之间的指令(行)是
动态生成的,只应被WordPress过滤器修改。
任何对标记之间的指令的修改都会被覆盖。
END WordPress
BEGIN WordPress
在BEGIN WordPress
与END WordPress
之间的指令(行)是
动态生成的,只应被WordPress过滤器修改。
任何对标记之间的指令的修改都会被覆盖。
END WordPress
调整之后,就不会出现404异常了。