安装 EasyImage

下载源码

GitHub仓库在:https://github.com/icret/EasyImages2.0

我的服务器在国内,GitHub 访问速度很慢,所以可以本地先下载解压好,然后用 wsl rsync到服务器

我的文件放在 /var/www/EasyImages2.0-master

配置nginx

创建 /etc/nginx/sites-available/img.diraw.top.conf 内容为:

server {
listen 80;
server_name img.diraw.top;
root /var/www/EasyImages2.0-master; # 指向 EasyImage 的根目录

index index.php index.html index.htm; # 确保包含 index.php

client_max_body_size 20m; # 允许上传最大 20MB 的文件,根据需要调整

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
# 确保这里的 PHP-FPM socket 路径与服务器 PHP 版本一致
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# 禁用访问敏感文件
location ~ /\.env|composer\.json|composer\.lock|package\.json|package\.lock|yarn\.lock|webpack\.mix\.js|artisan|phpunit\.xml|README\.md|LICENSE|SECURITY\.md|CODE_OF_CONDUCT\.md|\.whitesource {
deny all;
}
}

非常重要的参数client_max_body_size 20m;

然后软连接:

sudo ln -s /etc/nginx/sites-available/img.diraw.top.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

配置php

确认 PHP 版本并检查 PHP-FPM 状态:

php -v
sudo systemctl status php8.2-fpm
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm

设置文件权限:

sudo chown -R www-data:www-data /var/www/EasyImages2.0-master
sudo chmod -R 755 /var/www/EasyImages2.0-master

找到 EasyImage 的配置文件,我的是 /var/www/EasyImages2.0-master/config/config.php

在配置文件中,找到 domainimgurl 字段,将其值从 http://127.0.0.1 修改为域名:

'domain'=>'http://img.diraw.top',
'imgurl'=>'http://img.diraw.top',

找到 php.ini,我的在 /etc/php/8.2/fpm/php.ini

php --ini

重要的参数

upload_max_filesize = 20M; 允许上传的最大文件大小
post_max_size = 20M; POST 请求的最大数据量(需大于等于 upload_max_filesize)
max_execution_time = 300; 脚本最大执行时间,单位秒(防止上传大文件超时)
memory_limit = 256M; 脚本最大内存限制(防止处理大文件内存溢出)

重启 PHP-FPM 服务:

sudo systemctl restart php8.2-fpm

访问网站

打开浏览器,访问 http://img.diraw.top/install

按照向导提示完成安装,安装向导会检测环境,然后引导设置管理员账号和密码

之后配置ssl:

sudo certbot --nginx -d img.diraw.top

然后更新 EasyImage 应用程序配置为 HTTPS,依然是 /var/www/EasyImages2.0-master/config/config.php 文件,将 domainimgurl 的值修改为 https:

'domain'=>'https://img.diraw.top',
'imgurl'=>'https://img.diraw.top',
sudo nginx -t
sudo systemctl restart nginx

配置twikoo

除了记得在 easyimage 后台申请 token,记得后台调整上传文件大小,还有一个非常重要的是,在 EasyImage 的 config.php 找到 'apiStatus'=>0把0改成1

我在这里卡了很久,我以为 easyimage 后台申请了 token 就可以用了(应用也没提示还要改参数),如果不改的话,twikoo 会报错 _图片上传失败: EasyImage2.0 上传失败: API 返回错误 (CODE: 201)_

这里的201响应是有问题的,因为图片根本没上传到服务器,这里如果去问AI的话它会觉得连接成功了(HTTP 状态码 201 Created 表示请求已成功,并且由于请求的实现而创建了一个新资源)

后记

折腾了一下午终于弄好了,一开始看网上帖子说直接用宝塔的应用安装,结果一键安装依然和以前一样的问题

之前我也尝试用宝塔一键部署网站,我用宝塔配置的域名总是访问不了(尝试过纯ip访问也不行),而且域名还会被网站上我手动配置的其他网站“截获”

我尝试过这么多次,就没有用宝塔部署成功过,令人不爽