用LNMP环境安装v2board

前言

v2board是一个机场面板,xrayr是最近出来的一个后端,讲道理这个后端算很良心了,现在有很多后端都是收费的,而这个永久免费,并且完全开源。

第一步 安装必要的软件

系统是debian10,先来装v2board,建议内存至少1gb。
如果机器内存小于1gb可以尝试挂个swap上去,说不定在安装依赖的时候能够强行怼过去:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo echo '/swapfile none swap defaults 0 0' >> /etc/fstab
sudo free -m

安装nginx/mariadb/redis和一些需要用到的工具:

apt -y update
apt -y install curl wget git unzip nginx mariadb-server redis-server supervisor


安装php:

apt -y install php7.3-common php7.3-cli php7.3-fpm \
php7.3-gd php7.3-mysql php7.3-mbstring php7.3-curl \
php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-intl \
php7.3-bz2 php7.3-bcmath php-redis

安装composer:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/bin/composer

启动所有需要用到的服务并设置开机自启:

systemctl enable --now nginx mariadb redis-server php7.3-fpm supervisor

[重要]由于之前安装了php的redis扩展,这里需要重启fpm才能生效:

systemctl restart php7.3-fpm

初始化数据库:

mysql_secure_installation

创建一个名为v2board的数据库和用户:

mysql -u root -p
CREATE DATABASE v2board CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON v2board.* TO v2board@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit

拉取项目源码:

cd /var/www
git clone https://github.com/v2board/v2board.git
cd v2board

安装依赖:

composer install

安装v2board:

php artisan v2board:install

按照下图来填写数据库连接信息以及设置管理员账号密码:

[重要]给予正确的权限:
```r
chown -R www-data:www-data /var/www/v2board
chmod -R 755 /var/www/v2board

新建nginx站点配置文件:

vim /etc/nginx/conf.d/v2board.conf

写入如下配置:

server {
    listen      80;
    server_name v2board.ohshit.club;
    root        /var/www/v2board/public;
    index       index.php;
    client_max_body_size 0;

    location /downloads {
    }

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}

由于v2board的前端资源文件比较大,务必启用gzip进行压缩,不然访问的时候可能很慢:

vim /etc/nginx/nginx.conf

去掉下面这些配置的注释:

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

重载nginx使其生效:

systemctl reload nginx

安装certbot:

apt -y update
apt -y install snapd
snap install core
snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

使用certbot签发ssl证书:

certbot --nginx

添加计划任务:

crontab -e

写入如下配置:

* * * * * php /var/www/v2board/artisan schedule:run >> /dev/null 2>&1

配置守护进程

使用npm安装pm2

apt install npm -y #安装npm
apt install gcc gcc-c++ #安装gcc

自建一个文件夹下载node

mkdir npm
cd npm
wget https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz

解压

tar -xvf  node-v10.14.1-linux-x64.tar.gz
mv node-v10.14.1-linux-x64 node

添加环境变量

在 /etc/profile 文件中添加代码:

vi /etc/profile
export NODE_HOME=/root/npm/node  
export PATH=$NODE_HOME/bin:$PATH
# 注意!!  NODE_HOME后面的值要添加到自己的node解压的路径
<p class="mume-header " id="注意-node_home后面的值要添加到自己的node解压的路径"></p>


source /etc/profile #刷新配置
node -v #看看自己的版本情况
npm -v

npm install -g pm2 #安装pm2
pm2 list #查看pm2是否安装成功

cd /var/www/v2board #进入v2board安装目录
pm2 start pm2.yaml  #载入pm2配置

备份与还原

备份数据库及 config/v2board.php 文件后全新安装v2board恢复文件即可完成重装。

有可能会报错,如果报错就进到安装目录,删除掉.env文件

rm .env

备份时,将sql文件提取出来,并将config/v2board.php文件保存。

还原时,先安装好v2board,然后进入sql:

mysql -u root -p
use v2board;
source  /root/.sql

查看导入的表

show tables; #看看表是否导入完整。


数据库导入完毕,将备份的v2board.php文件黏贴进config/v2board.php中。

数据库和php文件导入完成后,刷新v2board,不然网页信息更新不出来。

站点目录下执行

sh update.sh

参考文档地址:https://dmax.top/1054.html
参考文档地址:https://www.cnblogs.com/vmtauto/p/7424009.html
参考文档地址:https://lala.im/7848.html