搭建V2Board官方文档其实已经写的很详细了,不过因为官方文档是使用面板搭建,文字咖不太喜欢用面板(穷),一直使用的是 lnmp 脚本,其实使用脚本困难的地方也就那么几个,文字咖这里记录下来,方便查阅。
1. 安装Redis、fileinfo
fileinfo lnmp 默认是已经安装好了的,至于 Redis 也提供了扩展,非常方便:
./addons.sh install redis
一键安装即可。
删除PHP的禁用函数:putenv , proc_open , pcntl_alarm , pcntl_signal,proc_get_status,打开 php.ini 找到把有的都删掉
vi /usr/local/php/etc/php.ini lnmp php-fpm reload ##重新加载
2. 防跨目录设置
因为 Thinkphp、codeigniter、Laravel 等框架,网站目录一般是在 public 下,但是 public 下的程序要跨目录调用 public 上级目录下的文件,因为 LNMP 默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。
这里可以直接使用 lnmp 安装包 tools/ 工具,
cd /root/lnmp1.8/tools ./remove_open_basedir_restriction.sh
进行移除,输入原网站目录完整路径(注意不是新的网站路径),回车即可。
3. 配置计划任务和队列服务
1) 由于 v2board 的邮件系统和支付订单确认强依赖队列,所以还需要设置队列服务,文字咖这里采用 Crontab 计划任务和 PM2 守护,命令行执行:
crontab -e ##打开在后面编辑添加下面一行,代表每隔1分钟执行一次任务 */1 * * * * php /home/wwwroot/站点文件名/v2board/artisan schedule:run
2) 使用 pm2 需要先安装 nodejs,通过 npm 全局安装 pm2,安装过程文字咖这里就不多赘述了,完成后
node -v npm -v pm2 -v
3) 回到站点目录下,使用 PM2 执行守护进程:
cd /home/wwwroot/站点文件名/v2board pm2 start "pm2.yaml" --name v2board
4. 队列问题
有些小伙伴,面板界面会有队列出现问题的提示,这里其实很简单,只需要重启队列即可。
cd /home/wwwroot/站点文件名/v2board php artisan queue:restart pm2 start "pm2.yaml" --name v2board