为什么自己建图床
这主要是因为我个人博客的流量实在是不高,再加上国外的免费图床可能说被ban就被ban,国内图床又各种不稳定,这就导致我看到很多人的文章中的图片经常处于无法打开的情况。
所以嘛,我就想自己搞一个,这样折腾一下,还能多学点知识
我的环境
由于本文是基于我自己的VPS环境配置的,在其他环境下步骤会有些许不同,不确保完全一样,所以我先写出我自己的环境,其他的情况应该大同小异吧
- Ubuntu 18.04
- PHP 7.2.10
- MySQL 5.7
- Nginx 1.14.0
我们图床使用的是开源的Lychee,大家可以看到lychee还是非常好看的
[图片上传失败...(image-4c381-1545309149669)]
安装
环境
首先要保证环境满足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-aa256c-1545309149669)]
然后我们可以尝试上传一个照片,我们可以在Direct Link这里获得图片的链接
到这里我们就可以将图片上传到我们自己的图床,不再需要担心blog中的图片挂掉了。