由于个人服务器配置较低,使用的是Ucloud的1H1G的服务器,另外不喜欢LNMP环境,网上找了很多教程都出现一些奇奇怪怪的问题,最后结合官方文档最终搭建好 Chevereto 图床。
预览地址:http://owye.cc
环境要求:
- Ubuntu20.04(18.04也能用,但是系统自带的php7.2太低,需要手动升级到7.4)
- PHP 7.4(在此之前试过7.2的,但是到了安装Chevereto时,提示php版本过低)
- MySQL 8
- Nginx1.18
注意:在开始之前,先更新系统。
sudo apt update && sudo apt upgrade
1.安装Nginx
Nginx的软件包在Ubuntu20.04默认软件仓库中可用。
# 安装Nginx
ubuntu@10-23-202-173:~$ sudo apt install nginx
安装完成后,检查Nginx服务的状态和版本:
# 查看运行状态
ubuntu@10-23-202-173:~$ sudo systemctl status nginx
# 查看nginx版本
ubuntu@10-23-202-173:~$ sudo nginx -v
如果正在运行防火墙,则还需要打开端口80和443(默认未开启,此步骤可忽略)
# 开放端口
ubuntu@10-23-202-173:~$ sudo ufw allow 'Nginx Full'
# 验证更改
ubuntu@10-23-202-173:~$ sudo ufw status
使用systemctl管理Nginx服务,您可以像任何其他systemd一样管理Nginx服务。
# 关闭nginx
ubuntu@10-23-202-173:~$ sudo systemctl stop nginx
# 启动nginx
ubuntu@10-23-202-173:~$ sudo systemctl start nginx
# 重启nginx
ubuntu@10-23-202-173:~$ sudo systemctl restart nginx
# 重载Nginx服务
ubuntu@10-23-202-173:~$ sudo systemctl reload nginx
# 禁用Nginx服务在开机时启动
ubuntu@10-23-202-173:~$ sudo systemctl disable nginx
# 开机自启动
ubuntu@10-23-202-173:~$ sudo systemctl enable nginx
2.安装mysql
# 安装MySQL
ubuntu@10-23-202-173:~$ apt install mysql-server
执行上面命令安装MySQL,不会设置密码或者做任何其它配置。因为,这样会使你的安装不安全,我们将在下一步解决该问题。
# 运行安全脚本
ubuntu@10-23-202-173:~$ sudo mysql_secure_installation
Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
接下来所有问题可以输入Y或者回车,采用默认配置即可。这将移除一些匿名用户和测试数据库,并且禁用远程root登录。同时,将加载这些新规则以使您做的变更能够在MySQL立刻生效。
2.1 调整用户认证和权限
为了能够以root用户通过密码的方式连接MySQL,将其认证方式从auth_socket
方式变更为mysql_native_password
。进行该设置,通过终端打开MySQL的提示符:
ubuntu@10-23-202-173:~$ sudo mysql
# 检查您的MySQL系统每个用户的认证方式
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
可以看到实际上root用户通过auth_socket插件的方式进行认证。要将root用户设置为通过密码认证,运行如下ALTER USER命令。务必将密码设置为高强度的密码,需要注意的是该操作将改变前面设置的密码:
# 创建chevereto数据库
CREATE DATABASE chevereto;
# 创建用户名
CREATE USER 'chevereto' IDENTIFIED BY 'chevereto';
# 设置root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'wjywkr5R@..';
注意: 必须记下数据库名称,用户名和密码,因为稍后将需要这些详细信息。
# 刷新,使更改生效
mysql> FLUSH PRIVILEGES;
# 查看更改是否生效
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
# 退出MySQL终端
exit
# 查看mysql服务状态
ubuntu@10-23-202-173:~$ systemctl status mysql.service
# 启动服务
sudo systemctl start mysql
# 停止服务
sudo systemctl stop mysql
# 查看mysql版本
ubuntu@10-23-202-173:~$ mysql -V
mysql Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
3.安装php
ubuntu20.04自带的php为php7.4
ubuntu@10-23-202-173:~$ sudo apt install php-fpm php-zip php-curl php-mbstring php-gd php-mysql
配置PHP处理器,使用root权限打开主配置文件。
sudo nano /etc/php/7.4/fpm/conf.d/chevereto.ini
# Paste Ctrl+Shift+V this
upload_max_filesize = 20M;
post_max_size = 20M;
max_execution_time = 30;
memory_limit = 512M;
# Write close Ctrl+o Ctrl+x.
4.设置网站
创建网站文件的路径,并分配www-data
所有者和组。
sudo mkdir -p /var/www/html/owye.cc/public_html
sudo chown www-data:www-data /var/www/html/owye.cc/public_html
删除默认的NGINX网站。
sudo rm -f /etc/nginx/sites-enabled/default
使用 nano 编辑器创建网站配置文件。
sudo nano /etc/nginx/sites-available/owye.cc.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name owye.cc;
root /var/www/html/owye.cc/public_html;
index index.html;
# Context limits
client_max_body_size 20M;
# Disable access to sensitive files
location ~* (app|content|lib)/.*\.(po|php|lock|sql)$ {
deny all;
}
# Image not found replacement
location ~ \.(jpe?g|png|gif|webp)$ {
log_not_found off;
error_page 404 /content/images/system/default/404.gif;
}
# CORS header (avoids font rendering issues)
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";
}
# Pretty URLs
location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$query_string;
}
location ~* \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
创建网站符号链接(可用网站)。
sudo ln -s /etc/nginx/sites-available/owye.cc.conf /etc/nginx/sites-enabled/
重新启动PHP和NGINX。
sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx
5.设置HTTPS
安装Certbot和特定于Web服务器的软件包,然后运行Certbot。
# 安装Certbot
sudo apt install python3-certbot-nginx
# 运行Certbot,会提示输入邮箱,以便使用ssl
sudo certbot --nginx
6.安装Chevereto
将安装程序下载到您的网站目录中,并以www-data的形式屏蔽。
sudo -u www-data wget -O /var/www/html/owye.cc/public_html/installer.php https://chevereto.com/download/file/installer
浏览器输入owye.cc/installer.php
按照以下步骤安装,接下来使用图形化界面安装就可以了,需要注意的是必须记住前面创建的数据库名称,数据库用户名和密码。
完结撒花!
参考文档:https://v3-docs.chevereto.com/setup/requirements.html#php
Q.E.D.