在玩客云上安装简单图床(EasyImage)
前言
前几天在玩客云上用docker方式部署了兰空图床(lsky pro),挺好用的,虽然也折腾了很久。
这没隔几天又折腾easyimage,并不是我闲的蛋疼,有几个原因:
- 玩客云硬件孱弱,能跑lsky pro,但跑起来以后web端响应有点慢吞吞的
- lsky pro太重了,我只需要最基础的图床服务
- 安全,图床服务会暴露域名,虽然已经做了简单的安防,但服务分离还是更保险一些
正好前两天看到有人分享一个简单的图床服务,easyimage,看了下项目页面和demo,我觉得🉑,研究了2天,这里做个简单记录。
准备
部署easyimage有两种方式,【官方github仓库】提供了php源码,第三方提供了【docker镜像】。
想方便简单可以用docker部署,一条命令/一个配置文件就搞定,快速上手。
原本我也是用docker把easyimage部署在玩客云上,但后来想把图床服务分离出来,部署到赚钱宝二代(ws1508)上,用tf卡当存储。但实际部署过程中碰到了bug,赚钱宝二代这个设备,安装docker以后docker一直会报错,所以不得不更换策略,研究怎么跑php项目。
部署成功以后,回头看过程,其实非常非常简单。但我php零经验,过程中踩坑无数,心累。
这次需要提前准备的内容如下:
- 一个debian/armbian设备
- 一些基础的debian的操作知识
部署
这次教程内容从简,不再事无巨细的什么都写了,只写核心内容。
第一步:安装软件
跑php项目的环境准备
apt install nginx php php-fpm php-gd
第二步:下载代码
创建网站目录、下载代码、解压,都是基本操作,此处略过不表。
两点有关权限的要注意,官方也指明了:
- 网站根目录
755
权限 - 网站根目录分配用户,官方要求
www:www
,完全胡扯!debian下nginx的用户是www-data:www-data
第三步:配置nginx
话不多说,直接编辑nginx配置文件
nano /etc/nginx/sites-available/default
录入以下内容
server {
listen 80;
listen [::]:80;
server_name easyimage;
root /mnt/data/easyimage;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
include fastcgi.conf;
}
location / {
index index.php;
}
}
有几个注意事项:
server_name
,随便填,有域名填域名,没域名填ip,随便填都行root
,指定网站根目录,很明显我的网站目录是/mnt/data/easyimage
,请根据自己实际情况调整fastcgi_pass
,这里要注意,网上很多乱七八糟的教程都填的127.0.0.1:9000
也不讲清楚为什么,都他妈傻x。fastcgi_pass
有四种配置,详细配置项可以查看配置文件/etc/php/8.2/fpm/pool.d/www.conf
中的listen
一项。要注意nginx配置文件中和这里保持同步,不同步的话fastcgi无法监听到nginx转发的请求。
fastcgi的/etc/php/8.2/fpm/pool.d/www.conf
的说明如下:
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = /run/php/php8.2-fpm.sock
配置完了,重启nginx,就可以在web端访问easyimage了。
后记
简单吧~
我踩坑踩了一下午才搞明白。
过两天有空了我再写下加强easyimage的安全防护。
🎉