為什麼自己建圖床
這主要是因為我個人部落格的流量實在是不高,再加上國外的免費圖床可能說被ban就被ban,國內圖床又各種不穩定,這就導致我看到很多人的文章中的圖片經常處於無法開啟的情況。
所以嘛,我就想自己搞一個,這樣折騰一下,還能多學點知識
我的環境
由於本文是基於我自己的VPS環境配置的,在其他環境下步驟會有些許不同,不確保完全一樣,所以我先寫出我自己的環境,其他的情況應該大同小異吧
- Ubuntu 18.04
- PHP 7.2.10
- MySQL 5.7
- Nginx 1.14.0
我們圖床使用的是開源的Lychee,大家可以看到lychee還是非常好看的
安裝
環境
首先要保證環境滿足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使用者名稱和密碼
然後我們可以嘗試上傳一個照片,我們可以在Direct Link這裡獲得圖片的連結
到這裡我們就可以將圖片上傳到我們自己的圖床,不再需要擔心blog中的圖片掛掉了。