由于个人服务器配置较低,使用的是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.


如果不是特别幸运,那么请特别努力!