博客搭建-自建Lychee图床

4,178 阅读2分钟

为什么自己建图床

这主要是因为我个人博客的流量实在是不高,再加上国外的免费图床可能说被ban就被ban,国内图床又各种不稳定,这就导致我看到很多人的文章中的图片经常处于无法打开的情况。

所以嘛,我就想自己搞一个,这样折腾一下,还能多学点知识

我的环境

由于本文是基于我自己的VPS环境配置的,在其他环境下步骤会有些许不同,不确保完全一样,所以我先写出我自己的环境,其他的情况应该大同小异吧

  • Ubuntu 18.04
  • PHP 7.2.10
  • MySQL 5.7
  • Nginx 1.14.0

我们图床使用的是开源的Lychee,大家可以看到lychee还是非常好看的

image-20181220194859505

安装

环境

首先要保证环境满足Lychee的条件,Lychee需要PHP5.5以上,并且安装了下列PHP拓展

  • A web server (Apache, nginx, etc)

  • A MySQL database (MariaDB also works)

  • PHP 5.5 or later with the following extensions: session, exif, mbstring, gd, mysqli, json, zip, and optionally, imagick

    运行php -m查看下是否自己已经安装了这些拓展,没安装的话就用下面的命令安装

sudo apt-get install php7.2-xx

当我们搞定了上面要求的这些环境之后,我们继续

下载

我们进入 /var/www目录下,直接从github把Lychee拉下来

git clone --recurse-submodules https://github.com/LycheeOrg/Lychee.git

然后对相应的文件夹设置好权限

chmod -R 775 uploads/ data/

配置

配置Nginx

接着我们为新的页面设置Nginx Server Block,

进入/etc/nginx/sites-available/目录

vim /etc/nginx/sites-available/lychee 然后我们将下面的内容复制粘贴,然后把root,server_name修改成我们自己的地址

server {
    listen 80;

    root /var/www/Lychee;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name lychee.mydomain;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_param PHP_VALUE "max_execution_time=1800
                                post_max_size=1500M
                                upload_max_filesize=32M
                                max_input_time=1800
                                max_file_uploads=300";
    }

    location ~ /\.ht {
        deny all;
    }
}

sudo ln -s /etc/nginx/sites-available/lychee /etc/nginx/sites-enabled/

由于我设置了Https,所以需要certbot来生成证书,这样我们的这个站点就是https协议了

sudo certbot --nginx -d lychee.xxx.com

做完这些之后,重启Nginx

sudo systemctl reload nginx

配置MySQL:

类似Wordpress我们需要新建一个lychee数据库

CREATE DATABASE lychee;

新增用户和密码

GRANT ALL PRIVILEGES ON lychee.* TO 'userName'@'localhost' IDENTIFIED BY 'user_passwd';

配置PHP:

再接着我们进入/etc/php/7.2/fpm/php.ini,将下面的属性修改为下面的值(Lychee的推荐)

max_execution_time = 200
post_max_size = 100M
upload_max_filesize = 20M
memory_limit = 256M

重启PHP服务

sudo systemctl restart php7.2-fpm.service

测试:

到现在,我们就完成了所有需要的设置,用浏览器打开你设置的lychee的地址

如果成功了的话会提示你输入密码,输入你刚刚设置的MySQL用户名和密码

image-20181220193514165

然后我们可以尝试上传一个照片,我们可以在Direct Link这里获得图片的链接

image-20181220193724431

到这里我们就可以将图片上传到我们自己的图床,不再需要担心blog中的图片挂掉了。