樱花映射手机上用linux,Sakura Frp 成功迁移至 Linux 服务器

本文详细记录了将Sakura Frp从Windows迁移到Linux服务器的过程,包括修改代码以适应PHP 7.2.6和MariaDB 10.3,解决Mcrypt扩展问题,数据库迁移中的bin-log信任问题,以及HTTPS跳转配置。迁移后,网站运行正常,但遇到插入空id值的问题,通过使用NULL替换已解决。

之前 Sakura Frp 主站是搭建在 IIS 10.0 + PHP 5.4.45-nts + MySQL 5.7 的服务器上的,机器是 i5-6500。

PHP 5.4.45 安全性不够高,性能也很差,MySQL 在高并发请求下还是不够快。

于是琢磨了一下打算搬迁数据,更换到另一台 i7-4790 的服务器上。

首先是修改代码,由于历史遗留问题,代码里的 MySQL 查询函数都是 mysql_query,所以还要一点点修改。

新的服务器我使用 OneinStack 一键安装环境,方便快捷

20180128152959.png

安装的新环境是 Apache 2.4 + PHP 7.2.6 + Mariadb 10.3,全都是最新版本。

装好 OneinStack 以后,创建好虚拟主机,我用的是 Let’s Encrypt,自动生成好证书。

然后我把网站文件拖进去,访问出现了 500 错误,看了一下 Apache Error Log,发现是缺少了 Mcrypt 扩展。

于是去 PECL 下载了一个 Mcrypt 源码,丢到服务器上编译。

[code lang=”bash”]yum install libmcrypt libmcrypt-devel mcrypt mhash -y

wget http://pecl.php.net/get/mcrypt-1.0.1.tgz

tar zxvf mcrypt-1.1.1.tgz

cd mcrypt-1.0.1

phpize

./configure

make && sudo make install[/code]

然后再次访问网站,还是 500 错误,再看看日志,原来是数据库没导入 ( 啊,又忘了

又跑去原来的 Windows 上导出数据库到 SQL,然后在新服务器上导入,结果导入的时候出现了一个错误。

This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de

百度了一下,是因为数据库开了 bin-log,这时候只要关掉就好了,所以需要执行下面的语句:

[code lang=”bash”]set global log_bin_trust_function_creators=TRUE;[/code]

再次导入 SQL 文件,没有出现任何问题。

接着再配置网站的 http 跳转到 https,在网站下写一个 htaccess 文件

[code]

RewriteEngine On

RewriteBase /

RewriteRule page\/([A-Za-z0-9]+)\/$ /index.php?page=$1

RewriteCond %{SERVER_PORT} ^80$

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=302]

[/code]

至此完成了 HTTPS 跳转配置。

接下来还发现了一个问题,后台能够正常查询出添加的映射,但是无法新增映射,首页也无法评论,经过检查发现是 INSERT 的时候,VALUES 的 id 值为 “” 即空,但是在 Mariadb 10.3 中是不允许插入为空的值的,必须要用 NULL 替换,经过修改后正常了。

目前网站一切运行正常,暂时没有发现问题,如果大家在使用中遇到任何奇怪的 bug,欢迎告诉我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值