Synology(群晖)常见的配置项以及命令项

  • Post author:
  • Post category:其他

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 WordPressEND WordPress之间的指令(行)是

动态生成的,只应被WordPress过滤器修改。

任何对标记之间的指令的修改都会被覆盖。

END WordPress

BEGIN WordPress

BEGIN WordPressEND WordPress之间的指令(行)是

动态生成的,只应被WordPress过滤器修改。

任何对标记之间的指令的修改都会被覆盖。

END WordPress

主要关注RewriteRule . /index.php [L]这条规则,可以看到是跳转到网站根目录的。我们需要修改成,跳转到WordPress根目录 RewriteRule . /wordpress/index.php [L]。

调整后的规则如下:

.htaccess
Vim

BEGIN WordPress

BEGIN WordPressEND WordPress之间的指令(行)是

动态生成的,只应被WordPress过滤器修改。

任何对标记之间的指令的修改都会被覆盖。

END WordPress

BEGIN WordPress

BEGIN WordPressEND WordPress之间的指令(行)是

动态生成的,只应被WordPress过滤器修改。

任何对标记之间的指令的修改都会被覆盖。

END WordPress

调整之后,就不会出现404异常了。