Post Banner

Chevereto 图床搭建

Author

Skyler Shu

Chevereto 需要的环境:

  • Apache / NGINX web server
  • PHP 5.5.0 (standard libraries)
  • MySQL 5.0 (ALL PRIVILEGES)
  • 索性直接使用 LNMP 环境搭建好了。

    一. LNMP 环境搭建

    1. 使用 SSH 工具登陆 VPS

    这里需要基本的 Linux 知识,如果不会请自行查找相关资料。

    2. 安装并运行 screen 命令

    创建 screen 会话

    shell

    1
    screen -S lnmp

    如果提示 screen: command not found 命令不存在可以执行:yum install screenapt-get install screen 安装。

    3. 安装 LNMP 稳定版

    shell

    1
    wget 

    ⚠️ 注意事项

  • 如下载速度慢或无法下载请更换其他下载节点,请查看 LNMP 下载节点具体替换方法
  • 如果遇到 Read error (Connection reset by peer) in headers.,请参考 LNMP 一键安装包如何更换 lnmp下载镜像 (国内 / 国外) 地址
  • 本步骤完整代码如下:

    shell

    1
    2
    3
    4
    5
    6
    +------------------------------------------------------------------------+
    | LNMP V1.7 for CentOS Linux Server, Written by Licess |
    +------------------------------------------------------------------------+
    | A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux |
    +------------------------------------------------------------------------+
    | For more information please visit https:

    这一步需要耗费不少时间,最后显示 success 表明 lnmp 安装完成。

    shell

    1
    2
    Install lnmp takes 45 minutes.
    Install lnmp V1.7 completed! enjoy it.

    二. 域名解析

    配置域名解析并 ping 查看是否解析成功。

    三. 配置虚拟主机

    ⚠️

    进入这一步之前务必将域名解析到 ip

    基本操作:

    php

    1
    2
    3
    4
    5
    #添加虚拟主机
    lnmp vhost add
    
    #删除虚拟主机
    lnmp vhost del

    本步骤完整代码:

    php

    1
    root@VM-0-14-debian:~/lnmp1.7# 

    提示 Press any key to start create virtul host... 后,回车确认便会开始创建虚拟主机。

    添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP 等相关信息:

    shell

    1
    2
    3
    4
    5
    6
    7
    ================================================
    Virtualhost infomation:
    Your domain: www.apppie.art
    Home Directory: /home/wwwroot/www.apppie.art
    Rewrite: other
    Enable log: no
    Database username: 

    现在,我们已经搭建好了 LNMP 环境并为网站配置了虚拟主机。

    四. 部署 Chevereto

    方法一:使用 Chevereto Installer 快速部署

    使用官方提供的 Chevereto Installer 快速部署。下载installer.php 后上传至网站根目录,然后访问 example.com/installer.php 即可。

    方法二:压缩包安装

    本文使用的是方法二。

    1. 下载文件

    1. 前往网站根目录

    shell

    1
    cd /home/wwwroot/www.apppie.art

    2. 下载安装包

    shell

    1
    wget https://github.com/Chevereto/Chevereto-Free/archive/1.3.0.tar.gz

    3. 解压压缩包

    shell

    1
    tar -zxvf 1.3.0.tar.gz

    4. 将 chevereto-free-1.3.0 下所有文件移动到 /home/wwwroot/www.apppie.art

    shell

    1
    mv chevereto-free-1.3.0/* /home/wwwroot/www.apppie.art

    5. 修改目录层次结构中所有文件的所有者和组用户

    php

    1
    2
    3
    chmod -R 755 /home/wwwroot/www.www.apppie.art
    chown -R www:www /home/wwwroot/www.apppie.art
    chown -R www:www /home/wwwroot/*/*

    如果出现 .user.ini 不允许,使用如下命令:

    shell

    1
    chattr -i /home/wwwroot/www.apppie.art/.user.ini

    由于我使用的是 nginx 服务器,这时访问网站会显示 404,需要设置伪静态才能正常访问。

    2. 设置伪静态

    在配置文件 root 行下面添加代码(如果 LNMP 1.7 已有请忽略):

    php

    1
    include rewrite/other.conf;

    修改 /usr/local/nginx/conf/rewrite 下的 other.conf。本来 other.conf 为空,加入以下代码即可。

    shell

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # Image not found replacement
    location ~* (jpe?g|png|gif) {
            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 / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    执行:/etc/init.d/nginx restart 重启,如果报错可能是添加有误或伪静态规则有误。

    3. 访问域名安装

    五. 其他优化

    1. 设置 Nginx 301 跳转

    实现两个功能:

  • http 跳转到 https
  • www 域名跳转到非 www 域名
  • LNMP 虚拟主机配置文件路径:

    shell

    1
    /usr/local/nginx/conf/vhost

    1⃣️ http 强制跳转到 https

    监听 80 端口,在默认 server_name 行下方添加 return 301 https://www.apppie.art$request_uri;

    shell

    1
    2
    3
    4
    5
    server {
      listen 80;
      server_name www.apppie.art apppie.art;
      return 301 https://apppie.art$request_uri;
    }

    2⃣️ www 跳转非 www

    需要实现 http://www.image.apppie.me、https://www.image.apppie.me 跳转到目标网址。 上一步已经把 http://www.image.apppie.me 配置好了,现在只需要配置 https://www.image.apppie.me 跳转即可。

    复制 LNMP 默认 Nginx 配置文件的 443 段,删除 server_name 的 apppie.art,并添加 return 301 https://apppie.art$request_uri;

    shell

    1
    2
    3
    4
    5
    6
    server {
      listen 443 ssl http2;
      server_name www.apppie.art;
      return 301 https://apppie.art$request_uri;
    	#省略其他配置
    }

    修改原来配置文件的 443 段,删除 server_name 的 www.apppie.art

    执行:/etc/init.d/nginx restart 重启,如果报错可能是添加有误或伪静态规则有误。

    完整配置文件:

    shell

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    server {
      listen 80;
      server_name www.apppie.art apppie.art;
      return 301 https://apppie.art$request_uri;
    	#省略其他配置
    }
    
    server {
      listen 443 ssl http2;
      server_name apppie.art;
    	#省略其他配置
    }
    
    server {
      listen 443 ssl http2;
      server_name www.apppie.art;
      return 301 https://apppie.art$request_uri;
    	#省略其他配置
    }

    2. 证书续期

    执行以下自动续期脚本:

    shell

    1
    "/usr/local/acme.sh"/acme.sh --cron --home "/usr/local/acme.sh"

    crontab 命令是 Linux 用于设置周期性被执行的指令。

    shell

    1
    crontab -l

    3. 修改 Footer

    Chevereto 自带的 footer 只有 Powered by Chevereto,如果你想加入备案号等其他自定义内容需要自己修改。我们可以前往 /home/wwwroot/www.apppie.art/app/themes/Peafowl/views 下的 index.php,修改 82 行的如下代码:

    php

    1
    <div class="footer"><?php _se('Powered by'); ?> <a href="https://chevereto.com" rel="generator" target="_blank">Chevereto</a></div>

    这里我举个例子 🌰

    php

    1
    <div class="footer"><?php _se('Copyright © 2019-2021 '); ?> <a href="https://apppiece.com" rel="generator" target="_blank">AppPie</a>. Bulit by <a href="https://skylershu.com" rel="generator" target="_blank">Skyler Shu</a>. Powered by <a href="https://chevereto.com" rel="generator" target="_blank">Chevereto</a>. </div>

    参考

    1. LNMP 一键安装包

    2. 安装 - LNMP 一键安装包

    3. LNMP 添加、删除虚拟主机及伪静态使用教程

    4. LNMP 下 Nginx 如何设置域名 301 重定向