群晖5.2php核心设置_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

1

2

3

4

5

6

7

8

9

10

11

# 目录相同链接位置 /usr/local/etc/apache22/conf/httpd22.conf

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

# 重启 Apache2.2,有时候重启无效,此时请重启服务器

$sudo/usr/syno/bin/synopkgrestarthttpd2.2

# 查看访问日志

$sudotail-f/var/log/httpd/apache22-access_log

# 查看错误日志

$sudotail-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

1

2

3

4

5

6

7

8

9

10

11

# 目录相同链接位置 /usr/local/etc/apache24/conf/httpd24.conf

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

# 重启 Apache2.4,有时候重启无效,此时请重启服务器

$sudo/usr/syno/bin/synopkgrestarthttpd2.4

# 查看访问日志

$sudotail-f/var/log/httpd/apache24-access_log

# 查看错误日志

$sudotail-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

1

2

3

4

5

6

7

8

9

10

11

# nginx 配置文件

$sudovim/etc/nginx/nginx.conf

# nginx 配置信息存储位置

$sudols/usr/local/etc/nginx/conf.d

# 重启nginx

$sudosynoservicecfg--restartnginx

# 查看日志

$sudotail-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

$conn = mysqli_connect("localhost:3307","wordpress","password","wordpress") or die("connect err: ".mysqli_error());

echo "MySQL is OK";

?>

1

2

3

4

$conn=mysqli_connect("localhost:3307","wordpress","password","wordpress")ordie("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-uroot-p-e"grant all privileges on wordpress.* to 'wordpress'@'localhost' identified by 'pass';"

还有一个奇怪的问题,设置数据库参数的时候,如果访问的地址是 IP地址,可以配置成功,但是如果使用域名访问,就会配置失败,这应该算是一个问题。

另外,建议增加配置WP_HOME,WP_SITEURL来覆盖数据库中的地址,直接在wp-config.php尾部增加即可,这样可以解决网站都跳转到被同步网站的情况。

具体代码如下:

wp-config.php

PHP

$HTTP_TYPE = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';

$HOME = $HTTP_TYPE.$_SERVER['HTTP_HOST'].'/wordpress'; #获取当前访问的域名

$SIT_URL = $HTTP_TYPE.$_SERVER['HTTP_HOST'].'/wordpress';

define('WP_HOME', $HOME);

define('WP_SITEURL', $SIT_URL);

1

2

3

4

5

$HTTP_TYPE=((isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']=='on')||(isset($_SERVER['HTTP_X_FORWARDED_PROTO'])&&$_SERVER['HTTP_X_FORWARDED_PROTO']=='https'))?'https://':'http://';

$HOME=$HTTP_TYPE.$_SERVER['HTTP_HOST'].'/wordpress';#获取当前访问的域名

$SIT_URL=$HTTP_TYPE.$_SERVER['HTTP_HOST'].'/wordpress';

define('WP_HOME',$HOME);

define('WP_SITEURL',$SIT_URL);

另外,建议把wp-config.php的权限修改成只有所有者才能写入,默认情况权限有些高,保证安全性。如下:

$ sudo chmod 600 wp-config.php

1

$sudochmod600wp-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/

1

2

3

4

$sudotail-f/var/log/httpd/apache22-error_log

...........

...........

2020-04-26T08:57:14+08:00DS718[SunApr2608:57:142020][error][client10.8.0.10]Filedoesnotexist:/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/

1

2

3

4

$sudotail-f/var/log/httpd/apache22-error_log

...........

...........

2020-04-26T08:57:14+08:00DS718[SunApr2608:57:142020][error][client10.8.0.10]Filedoesnotexist:/var/services/web/index.php,referer:http://10.10.10.111/wordpress/

WP Super Cache生成的默认配置文件内容如下:

.htaccess

Vim

# BEGIN WordPress

# 在`BEGIN WordPress`与`END WordPress`之间的指令(行)是

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

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

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

# END WordPress

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#BEGINWordPress

#在`BEGINWordPress`与`ENDWordPress`之间的指令(行)是

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

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

RewriteEngineOn

RewriteBase/

RewriteRule^index\.php$-[L]

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteRule./index.php[L]

#ENDWordPress

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

调整后的规则如下:

.htaccess

Vim

# BEGIN WordPress

# 在`BEGIN WordPress`与`END WordPress`之间的指令(行)是

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

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

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /wordpress/index.php [L]

# END WordPress

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#BEGINWordPress

#在`BEGINWordPress`与`ENDWordPress`之间的指令(行)是

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

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

RewriteEngineOn

RewriteBase/

RewriteRule^index\.php$-[L]

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteRule./wordpress/index.php[L]

#ENDWordPress

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

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值