军哥LNMP一键脚本配置装Web环境,并手动部署V2board面板比官方教程使用宝塔面板部署更省资源,也可避免宝塔面板的安全隐患。本教程一步步教你在lnmp环境下安装V2Board面板,并实现前后端分离,为您扫盲&避坑。
V2Board是一款公认的多协议用户管理面板开源软件,与SSPanel面板一道,被广大用户认可并广泛使用,两者在市场上的使用量均居首位。
其中,SSPanel面板的功能更为丰富全面,而V2Board则以其简单的操作界面受到用户的喜爱,两者都可以满足大部分用户需求。
然而,由于V2Board主要开发者失联,目前稳定版本维持在1.7.4版本,本文将在此分支版的基础上进行实用性演示,以此版本的功能和支持度都比原版更为丰富
项目地址:
https://github.com/v2board/v2board (原版)
https://github.com/wyx2685/v2board (分支)
这个分支版本增加了很多功能:在线设备数量限制,支持vless的reality/h2等。
准备环境
服务器建议1G内存及以上硬件配置,采用Debian操作系统,网站环境是:nginx-1.20 、 mysql-5.7 、 php-7.4 ,两个不同的主域名或二级域名均可(如下文的前端访问域名 v2b.jiemahao.com 与后端对接域名 sk.jiemahao.com );
安装lnmp环境并配置V2Board环境
我们这里主要讲常用的LNMP环境,也就是Linux、Nginx、MySQL、PHP,网上也有很多一键部署的LNMP脚本,我这里用的是https://lnmp.org/的一键安装包作为教程演示
一键安装包部署web环境命令
wget https://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0 && ./install.sh lnmp
安装V2Board面板所需的扩展
安装Redis
Redis此脚本是用来安装Redis,Redis是一个开源、支持网络、基于内存、键值对存储数据库。
安装
进入lnmp解压后的目录,执行:./addons.sh install redis
安装opcache
此脚本是用来安装opcache的,是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。LNMP 1.2下安装的PHP 5.5或更高版本的PHP不需要额外安装OPcache,默认已经安装上。
LNMP默认已安装但未启用执行:./addons.sh install opcache 进行开启。
安装fileinfo
使用lnmp2.0里面的 ./addons.sh 进行安装。
./addons.sh fileinfo
删除PHP的禁用函数 putenv , proc_open ,proc_get_status
打开/usr/local/php/etc/php.ini
查找 putenv , ,proc_get_status,打开 php.ini 找到把有的都删掉。
vi /usr/local/php/etc/php.ini lnmp php-fpm reload ##重新加载
防跨目录设置
考虑到像Thinkphp,codeigniter,Laravel等框架,网站目录通常是在’public’下面。然而,’public’下的程序需要跨目录调用’public’上级目录的文件。
因为LNMP默认是不允许跨目录访问的,所以我们必须禁用防止跨目录访问的设置。有时,这类框架程序显示的500错误提示也可能由此问题引起。
cd /root/lnmp2.0/tools ./remove_open_basedir_restriction.sh ##移除防跨目录访问
进行移除,输入原网站目录完整路径(注意不是新的网站路径),回车即可。
设置虚拟主机
配置网站目录地址,编辑网站配置文件:
vi /usr/local/nginx/conf/vhost/jiemahao.com.conf
找到 /home/wwwroot/站点目录 修改为 /home/wwwroot/站点目录/v2board/public 并保存退出
配置伪静态规则
命令行输入:vi /usr/local/nginx/rewrite/other.conf,添加如下内容并保存退出;
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并上传到网站目录
下载 https://codeload.github.com/wyx2685/v2board/zip/refs/heads/master
上传网站目录并解压,把文件移动到网站目录
部署V2Board
进入到网站目录 cd
执行下列命令安装依赖和配置V2B数据库、管理账户,同时记录好回显的管理地址和密码;
sh init.sh
执行下列命令给与站点目录权限,避免后面打开网站500错误.
chown -R www:www *
配置计划任务和队列服务
在完成上面的步骤后已经能正常访问网站,但是由于v2board的邮件系统和支付订单确认强依赖队列,所以还需要设置队列服务,这里我们采用Crontab计划任务和supervisor守护,命令行执行:
crontab -e ##打开在后面编辑添加下面一行,代表每隔1分钟执行一次任务 */1 * * * * php /home/wwwroot/jiemahao.com/artisan schedule:run
安装和配置supervisor
Debian为例: apt install supervisor
设置开机启动:systemctl enable supervisor
在配置Supervisor来管理您的应用时,您需要创建一个新的配置文件。这应该在/etc/supervisor/conf.d/目录下,并且文件扩展名应为.conf。
V2Board应用的Supervisor配置如下:
下面我们要在Supervisor管理器添加应用
[program:V2Board] user=root directory=/home/wwwroot/jiemahao.com/ command=php artisan horizon autostart=true autorestart=true redirect_stderr=true
完成配置文件的创建,命名为V2Board.conf,上传到/etc/supervisor/conf.d/目录下
通过以下命令让Supervisor读取并应用新的配置:
supervisorctl reread supervisorctl update
到此手动部署v2board面板已经完成,可能有的用户之前在宝塔面板已经搭建好并推广了不少用户,需要迁移到这边,那么只需要备份好数据库,并进入到新的数据库导入即可,当然最方便的是使用其它数据库,在前面安装v2board时修改下默认地址即可。
V2Board配置前后端分离主题(可选功能)
1、V2Board面板支持把用户访问的前端、管理后台分别部署为不同的网站,或者不同的服务器上面,这里采用V2b-Theme-Sleek开源主题演示,主题源码地址:https://github.com/binglog/V2b-Theme-Sleek
2、准备一个提供给用户访问的域名,在原服务器或其它服务器中新建个网站,在网站根目录中执行下列命令把主题源码克隆至本机;
git clone https://github.com/binglog/V2b-Theme-Sleek.git ${PWD}
3、编辑config.js文件,把其中的hosturl地址修改成v2b面板的网址,其它项根据需求替换修改后保存即可;
4、当支付的回调域名使用主题域名时,需要把v2b面板的app/Services/PaymentService.php文件替换下;
##找到文件50行
'return_url' => config('v2board.app_url') . '/#/order/' . $order['trade_no'], ##替换成以下代码 'return_url' => $_SERVER['HTTP_ORIGIN'] . "/#/dashboard",<.pre>