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

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

Apache2.2 相关配置与常见命令

$ sudo vim /volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/httpd22.conf

$ 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

$ sudo vim /volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/httpd22.conf

$ 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 相关配置与常见命令

$ sudo vim /volume1/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf

$ 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

$ sudo vim /volume1/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf

$ 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相关配置与常见命令

$ sudo vim /etc/nginx/nginx.conf

$ sudo ls /usr/local/etc/nginx/conf.d

$ sudo synoservicecfg –restart nginx

$ sudo tail -f /var/log/nginx/error.log

$ sudo vim /etc/nginx/nginx.conf

$ sudo ls /usr/local/etc/nginx/conf.d

$ sudo synoservicecfg –restart nginx

$ sudo tail -f /var/log/nginx/error.log

Web Station 相关配置与常见命令

/volume1/web
1
2
3

/volume1/web

群晖(Synology)套件中的 WordPress 相关配置与常见命令

/volume1/web/wordpress

/usr/local/etc/nginx/conf.d/www.WordPress.conf
1
2
3
4
5

/volume1/web/wordpress

/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

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

调整后的规则如下:

.htaccess
Vim

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

原文链接:https://blog.csdn.net/qq_31857075/article/details/115017474

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享