LNMP一键安装包搭建V2Board

最新更新

这类脚本啥的真的不好用,今年还出了各种奇奇怪怪的事,反正纯手动也不用,能不用就不用吧

碎碎念

日常开篇碎碎念,上次写博客还是上次。这次记录一下OneinStack和LNMP一键安装包的使用,主要讲LNMP,因为在我测试OneinStack的时候,觉得其他都挺好的唯独证书申请上面有bug,让我不太愉悦。

吐槽

当然也可能是在下操作有问题,重装过几次并且有查相关资料和issue,甚至换过几次机器依旧没有解决,要是有人知道怎么弄能告诉我一声最好了。(另外我会用acme自己申请但是这样就显得很不厚道,虽然是免费开源的东西但用起来不尽人意总是让人很难受的是吧)

LNMP的安装包目录下有一个tools目录,官方说明是:这些工具可以在使用LNMP提供一些很有用的安全防护设置、简化一些安装流程,更专注于做站。但他的工具如denyhost和fail2ban总感觉有些问题,denyhost有报错应该需要初始化一个配置文件才能使用,fail2ban则是不知道到底能不能用,反正显示启动失败的,我也懒得查日志排错,这东西我自己也会配置,这样真的是让人头大,不如还是让我自己装自己配…

反正下次就是纯手动,写好脚本全部自己来也没多大点事

安装LNMP

使用无人值守命令生成工具无人值守安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
架构模式选择 LNMP
MySQL版本 MySQL 5.6
是否二进制安装MySQL5.7/8.0(仅支持x86/x86_64架构) 二进制安装
是否启用InnoDB 是
数据库Root用户密码 1145141919
PHP版本 PHP 5.6
内存分配器 Jemalloc
#Apache版本(仅LNMPA及LAMP架构选择) Apache 2.4
#管理员邮箱(仅LNMPA及LAMP架构选择) webmaster@example.com
是否离线安装 是
生成
无人值守安装命令:
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && LNMP_Auto="y" DBSelect="3" Bin="y" DB_Root_Password="1145141919" InstallInnodb="y" PHPSelect="5" SelectMalloc="2" CheckMirror="n" ./install.sh lnmp

配置网站环境

安装Redis与Fileinfo

进入lnmp目录执行addons.sh选择Redis和Fileinfo即可

解除被禁止的函数

进入lnmp目录下的tools执行remove_disable_function.sh选择Remove all php disable function please type: 1

当然你要是觉得不安全可以自己修改php.ini找到disable_functions =putenvproc_openproc_get_statuspcntl_alarmpcntl_signal删除

关闭防跨站

相同的目录下,执行remove_open_basedir_restriction.sh不过呢这一步需要等到网站搭建好再执行

添加站点

执行lnmp vhost add顺便也创建一个数据库吧,然后按需求设置网站参数即可。

这里强调一下伪静态,可直接以后的选项或是自己新建。文件目录为/usr/local/nginx/conf/rewrite

v2board的伪静态如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
location /downloads {
}

location / {  
    try_files $uri $uri/ /index.php$is_args$query_string;  
}

location ~ .*\.(js|css)?$
{
    expires      1h;
    error_log off;
    access_log /dev/null; 
}

安装V2Board

通过SSH登录到服务器后访问站点路径如:/www/wwwroot/你的站点域名。

以下命令都需要在站点目录进行执行。

bash

1
2
3
# 删除目录下文件
chattr -i .user.ini
rm -rf .htaccess 404.html index.html .user.ini

执行命令从 Github 克隆到当前目录。

bash

1
git clone https://github.com/v2board/v2board.git ./

执行命令安装依赖包以及V2board

bash

1
sh init.sh

根据提示完成安装

配置定时任务

1
* * * * * php /home/wwwroot/v2board/artisan schedule:run

队列服务

安装supervisor

1
apt install supervisor -y

新建队列服务

1
nano /etc/supervisor/conf.d/v2board.conf
1
2
3
4
5
6
7
8
9
[program:v2board]
process_name=v2board
command=php /home/wwwwwwroot/v2board/artisan horizon
numprocs=1
user=www
autostart=true
autorestart=true
#redirect_stderr=true
#stdout_logfile=/home/wwwwwwroot/v2board/storage/logs/queue.log

更新队列服务

1
supervisorctl update

查看队列任务状态

1
supervisorctl status

网站根目录权限

如遇500错误需要检查站点根目录权限,递归755,保证目录有可写文件的权限,也可能是Redis扩展没有安装或者Redis没有按照造成的。你可以通过查看storage/logs下的日志来排查错误或者开启debug模式、站点设置中关闭防跨站。

网站根目录权限遵循:

文件 644, 文件夹 755 ,权限用户和用户组 www

1
2
3
chown -R www.www /home/wwwroot/
find /dhome/wwwroot/ -type d -exec chmod 755 {} \;
find /home/wwwroot/ -type f -exec chmod 644 {} \;

nginx关闭默认站点/空主机头

https://bbs.vpser.net/thread-1794-1-1.html

其他

LNMP工具介绍 https://lnmp.org/faq/lnmp-1-2-tools.html

暂时就写那么多了

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计