用LNMP环境安装v2board

我们大部分都是用宝塔或者aapanel来搭建v2board

今天我们试试用 LNMP环境来安装V2BOARD。

但是特别说明下。没有了aapanel面板,操作起来可能会不那么顺手。

所以新手绕过。

第一步 安装必要的软件

推荐环境debian10

sudo apt update && apt upgrade -y
sudo apt install -y curl vim wget unzip apt-transport-https lsb-release ca-certificates git gnupg2 redis

第二步 安装nginx

sudo apt update
sudo apt install -y nginx

第三步 安装PHP

#添加软件源
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
#安装php7.4
sudo apt update
sudo apt install -y php7.4-fpm php7.4-redis php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc php7.4-opcache php7.4-zip php7.4 php7.4-json php7.4-bz2 php7.4-bcmath

第四部 安装mysql

wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
sudo dpkg -i mysql-apt-config*
sudo apt install mysql-server
#根据提示设置密码

截至到这里。我们都只是安装系统的基础环境
下面开始 下载v2board并进行安装。

sudo -i
mkdir -p /var/www/v2b
cd /var/www/v2b
git clone https://github.com/v2board/v2board.git ./
wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install
chmod -R 755 ${PWD}
chown -R www-data:www-data ${PWD}

下载解压之后我们现在要开始对网站环境进行配置,确保程序正常运行。

配置nginx及ssl

安装acme.sh
wget -O - https://get.acme.sh | sh
source ~/.bashrc

创建目录并删除nginx默认文件

rm -rf /etc/nginx/sites-enabled/default
mkdir -p /var/www/letsencrypt

在/etc/nginx/sites-enabled/acme中填写以下内容并执行systemctl restart nginx

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;

location /.well-known/acme-challenge {
root /var/www/letsencrypt;
}

location / {
return 301 https://$host$request_uri;
}
}

将域名解析到vps并执行

#example.com替换成你的域名
acme.sh --issue -d example.com -w /var/www/letsencrypt
mkdir -p /etc/nginx/ssl
acme.sh --install-cert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.crt \
--reloadcmd "service nginx force-reload"
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

在/etc/nginx/sites-enabled/sspanel.conf中填入以下内容,并执行systemctl restart nginx

#example.com替换成你的域名
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;

root /var/www/sspanel/public;
index index.php index.html;
server_name example.com;

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;

ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

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;
}

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

创建数据库并初始化
mysql -u root -p
mysql>CREATE DATABASE v2b;

php artisan v2board:install

配置定时任务
在corntab中添加以下内容

php /var/www/v2b/artisan schedule:run

配置守护进程

apt install supervisor
cat </etc/supervisor/conf.d/v2b
autorestart=True ; 程序异常退出后自动重启
autostart=True ; 在 supervisord 启动的时候也自动启动
redirect_stderr=True ; 把 stderr 重定向到 stdout,默认 false
command=php artisan queue:work --queue=send_email,send_telegram,stat_server ; 启动命令,与手动在命令行启动的命令是一样的
user=root ; 用哪个用户启动
directory=/var/www/v2b/ ; 程序的启动目录
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 0 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /var/log/v2bdm.log
EOF

本文作者: 老张
本文链接: https://laozhang.me/1054.html
版权说明: 本站文章很多都来自互联网,如果侵犯了您的版权请告诉我们,我们会尽快删除,如果您喜欢本文想要转载请保留本站链接,感谢您的支持!
THE END
分享
二维码
< <上一篇
下一篇>>