文章目录
- 安装Web Station 和 PHP
- 配置PHP
- 配置新站点(虚拟主机):
- 配置nginx
- 安装MariaDB
- 修改数据库配置
- 配置远程连接
- 远程连接
最近折腾了一台群晖NAS,并搭建了一套web服务器,关于其中的一些设置,和传统的Linux的配置还不太一样,因此记录下来。
本机的群晖系统信息如下(DSM7.2.1):
安装Web Station 和 PHP
首先,在群晖的“套件中心”中找到 Web Station 直接点击“安装套件”:
安装后,直接nginx就已经被安装了,打开后,点击 PHP7.3后面的一个箭头,就会跳转到PHP的安装页面,直接安装即可:
配置PHP
如下图所示,可以勾选需要自定义的PHP的扩展,或者其他的配置项:
配置新站点(虚拟主机):
打开 Web Station,进入:网络门户 --> 新增
:
然后,访问IP地址后面跟上自定义的端口(我这里是5100端口),即可访问你的站点。
配置nginx
我这里使用的是thinkphp 框架,需要配置nginx的rewrite,默认的套件控制面板上没有提供配置项,因此需要登录服务器来配置。
进入 /usr/local/etc/nginx/conf.d
目录,这里面会有很多的nginx的配置文件,并且命名没有规则(或者说目前我还没有找出它们的规则),那么应该怎么定位到刚才自己创建的虚拟主机的配置呢?
可以通过创建时间来查找,比如我刚才大概是 23点左右创建的虚拟主机,那么大概应该就是下面这个文件了:
打开后一看,果然就是。在这个文件的最后面有一行:include /usr/local/etc/nginx/conf.d/a5ab61b3-3ae0-43a4-9f52-241763092a0b/user.conf*;
这一行的路径表示用户可以自定义的当前虚拟主机的nginx的配置文件。OK,直接进入。
但是,却提示此目录不存在:
没关系,直接创建一个目录,并且创建一个 user.conf
文件:
然后可以在此文件中写入Nginx配置,需要注意的是,这个文件只是配置文件的一部分,所以不能有server{}。比如我这里要自定义rewrite:
location / {
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
# Redirect everything that isn't a real file to index.php
try_files $uri $uri/ /index.php?$args;
}
然后通过命令 sudo nginx -s reload
重启nginx,或者在套件中心重新启动 Web Station 也可以。
安装MariaDB
MariaDB 是 MySQL的一个分支,用法基本和MySQL类似。直接在套件中心搜索 MariaDB 然后安装即可:
安装完成后会提示你输入root账户的密码,然后打开,勾选“启用TCP/IP连接”,如果不勾选,无法远程连接。
同时,需要勾选控制面板中的“启用SSH功能”
修改数据库配置
通过远程连接工具(例如 SecureCRT)远程连接到NAS服务器,并且通过命令 sudo -i
切换到root 用户,进入到 MariaDB的目录: /var/packages/MariaDB10/etc
,然后新建一个配置文件: my.cnf
,写入如下内容:
[mysqld]
port=3306
innodb_strict_mode=0
这里的内容可以根据你自己的需要进行配置。不能更改默认的my_port.cnf
文件:
参考:https://kb.synology.cn/zh-cn/DSM/tutorial/Can_MariaDB_settings_be_customized_on_Synology_NAS
配置远程连接
在 Web Station 里面,可以安装phpMyAdmin
,安装后打开,进入:账户 ---> root ---> 修改权限
然后按下图提示修改:
保存后,会生成一个新的root账户:
远程连接
可以使用 Navicat 等远程连接工具进行连接:
然后,我在导入原有的 mysql5.7 导出的 .sql
文件的时候报了一个错:[ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB
,
解决方案,修改 /var/packages/MariaDB10/etcmy.cnf
增加如下内容:
innodb_strict_mode=0
修改后,命令行查询 show variables like '%innodb_strict_mode%';
如果显示OFF
就可以了:
参考:https://blog.csdn.net/qq_34975663/article/details/138116242