搭建一个属于自己的图床
最近因为学习了markdown,而markdown插入图片需要图床,因此迫切需要图床支持。在网上找了一圈的公共图床服务都差强人意,于是自建图床的主意由此孕育而生。逛github的时候发现了兰空图传(lsky pro)这个开源图床程序,感觉不错。下面就教大家如何搭建一个属于自己的图床。
Lsky Pro 官网:https://www.lsky.pro/
Lsky Pro on GitHub:https://github.com/lsky-org/lsky-pro
Lsky Pro 官方文档:https://docs.lsky.pro/
一、准备环境
这里我们使用的环境是lnmp,lnmp的搭建已经在我之前的文章 使用lnmp一键安装包快速搭建一个wordpress站点 中讲过了,这里不再重复。
-
准备php环境
请确保安装了以下扩展和开启了以下函数
-
BCMath PHP 扩展
-
Ctype PHP 扩展
-
DOM PHP 扩展
-
Fileinfo PHP 扩展
-
JSON PHP 扩展
-
Mbstring PHP 扩展
-
OpenSSL PHP 扩展
-
PDO PHP 扩展
-
Tokenizer PHP 扩展
-
XML PHP 扩展
-
Imagick 扩展
-
exec、shell_exec 函数
-
readlink、symlink 函数
-
putenv、getenv 函数
接下来需要对php进行配置:
首先打开你的php.ini:
nano /你的php安装路径/php.ini
在php.ini中,进行如下操作:
- 找到disable_functions,若 “=” 右侧存在exec、shell_exec、readlink、symlink、putenv、getenv函数,将其删除(默认状态下,等号右侧为空白);
- 找到memory_limit,根据机器配置适当调大 “=” 右侧最大内存大小;
- 找到post_max_size,适当调大 “=” 右侧POST方法所能传输数据的最大大小;
- 找到upload_max_filesize,适当调大 “=” 右侧最大文件上传大小;
- 找到open_basedir,在其前面加上“;"(默认已添加)
请注意:在文件上传大小限制方面,共有四个控制值。分别为:
- PHP的post_max_size
- PHP的upload_max_filesize
- Nginx的client_max_body_size
- 兰空图床管理界面对每个用户组上传文件大小的限制
这四者所设定的值都必须大于等于您所想要设置的最大文件上传大小。例如,您想要上传最大大小为10M的图片,那么这四项设定值都必须大于等于10M。如设置错误,将出现无法上传大文件的问题!
-
-
准备数据库
如果使用sqlite此步可以略过
首先连接到数据库:
mysql -uroot -p密码
为lsky pro建立一个数据库,执行以下命令:
CREATE USER 'lsky'@'localhost' IDENTIFIED BY 'password'; #“password"字段改为新用户的密码 CREATE DATABASE IF NOT EXISTS lsky CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT ALL PRIVILEGES ON lsky.* TO 'lsky'@'localhost'; FLUSH PRIVILEGES; exit;
-
下载兰空图床
Lsky Pro的每个版本都是通过 github 发布,下载正式版本请访问https://github.com/lsky-org/lsky-pro/releases
请注意:如果你不是开发者,请不要下载名称为Source Code的压缩包,此为核心源代码,需要自己安装拓展!
执行以下命令:
mkdir 你的网站路径 cd 你的网站路径 wget -P 你的路径 https://github.com/lsky-org/lsky-pro/releases/download/2.1/lsky-pro-2.1.zip unzip 你的路径/lsky-pro-2.0.4.zip -d 你的路径 chmod -R 755 你的路径 chown -R www 你的路径
-
配置nginx
打开你的nginx配置文件,在http块下添加以下内容:
实例中开启了ssl,需要ssl证书,具体申请过程请看我的文章使用freessl.cn申请免费证书
server { listen 443 ssl http2; #listen [::]:443 ssl http2; #有ipv6取消注释 server_name 你的域名; ssl_certificate 你的证书; ssl_certificate_key 你的私钥; access_log /apps/nginx/logs/lsky/access.log main; error_log /apps/nginx/logs/lsky/error.log warn; client_max_body_size 100m; client_body_buffer_size 100M; set $lsky /apps/lsky/public; root $lsky; #include /apps/nginx/conf/cloudflare.conf; # . files location ~ /\.(?!well-known) { deny all; } index index.php; location / { try_files $uri $uri/ /index.php$is_args$query_string; } # favicon.ico location = /favicon.ico { log_not_found off; access_log off; } # robots.txt location = /robots.txt { #log_not_found off; #access_log off; } # assets, media # location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ { # expires 7d; # access_log off; # } # # svg, fonts # location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ { # add_header Access-Control-Allow-Origin "*"; # expires 7d; # access_log off; # } # disallow phpinfo location = /phpinfo.php { deny all; } # handle .php location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; #你的php地址 # root /apps/lsky/public; #404 try_files $fastcgi_script_name =404; # default fastcgi_params include fastcgi_params; # fastcgi settings fastcgi_index index.php; # fastcgi_buffers 8 16k; # fastcgi_buffer_size 32k; # fastcgi params fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; #fastcgi_param PHP_ADMIN_VALUE "open_basedir=$lsky/:/tmp/:/proc/"; # fastcgi_cache_bypass $skip_cache; # fastcgi_no_cache $skip_cache; # add_header X-Cache "$upstream_cache_status From $host"; # fastcgi_cache WORDPRESS; etag on; # fastcgi_cache_valid 200 301 302 30m; # fastcgi_cache_valid 404 10m; # fastcgi_cache_lock on; } # security headers add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Content-Security-Policy "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always; add_header Permissions-Policy "interest-cohort=()" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; }
至此,Lsky Pro的系统环境准备已经全部完成,下面我们将打开浏览器进行正式安装。
二、正式安装
-
系统自检
打开浏览器,输入你的域名,如果之前配置无误应该能看到以下界面:
确认全部通过后,点击下一步
-
连接数据库
按照提示输入你的数据库信息,并且输入管理员信息
-
安装完成
出现以下界面即为安装成功
**到此为止,你的兰空图床安装成功并且能正常使用了,enjoy:satisfied:!
版权声明:
作者:anoixa
链接:https://blog.imtop1.moe/archives/299/
来源:anoixa的博客
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论