1.效果展示


2.准备工作

  1. 已安装mysql5.7(Docker部署mysql5.7)
  2. 创建图片存放目录
  3. 已完成内网穿透(用NPS搭建内网穿透 比frp更好用)有公网Ip的可以忽略
  4. (可选)域名已解析到公网地址,其实我觉得这项是必须的

3.镜像安装

nmtan/chevereto:1.4.1 注意不要啦最新1.6.x的 不支持中文了,用的很难受,大体功能都大差不差
然后安装图中去配置




环境变量这边注意下
CHEVERETO_DB_HOST,数据库地址,nas的局域网地址就行(我尝试过127.0.0.1和localhost都不行 有知道为什么的可以解答下,应该也可以设置为docker的内部地址一般为172.17.0.1)
CHEVERETO_DB_USERNAME,数据库用户名称,默认root
CHEVERETO_DB_PASSWORD,数据库密码,使用实际配置的密码在mysql篇中的那个环境变量
CHEVERETO_DB_NAME,数据库名称,在mysql篇中用navicat连接库后可以新建一个数据库给图床用我创建的就是chevereto

最下面的CHEVERETO_DB_PORT记得修改为你实际映射出来的mysql的端口,我在mysql篇中映射的是13306

 

如果上述操作顺利,完成配置并启动容器后,在浏览器中输入 http://ip:10000 (如果做了穿透和解析ip换域名)应该可以看到chevereto的安装界面,输入管理员用户名,密码等之后,开始安装chevereto,chevereto安装完成后,即可像正常的图床网站一样使用。

安装完成后,网站还需要进行一些配置,配置菜单在管理员仪表盘菜单下,需要注意,chevereto的设置项目在设置按钮右边,通过下拉菜单来选择不同的配置项。一般来说,需要在图片上传部分禁用游客上传图片的功能,在电子邮件部分可以配置一个可以通过smtp方式发邮件的地址,以收取网站消息,以及供新注册用户来收取确认邮件。其他配置参考相关说明即可。

4.修改上传限制

到这里为止,如果你只是上传一些截图之类的已经完全够用了,但是如果你想当相册那一些图片肯定是大于2M的,所以我们还得折腾下,接触这个2M限制。

由于PHP系统默认的设置,chevereto中上传图片的默认限制大小为2M,内存使用限制为256M,这是远远不能满足现代图床使用要求的。因此需要进行修改。方法如下:

  1. 通过ssh方式登录nas,输入sudo -i并输入密码切换为root用户,绿联的调试你登进来应该就是root
  2. 输入docker ps -a 查看运行中的容器,找到 nmtan/chevereto 容器并记录其container id(此处假设为 c3a6b433c045)。
  3. cd /tmp目录 touch .htaccess 创建文件 vi .htaccess 把下面这段贴进去
# Disable server signature
ServerSignature Off

# Enable CORS across all your subdomains (replace dev\.local with your domain\.com)
# SetEnvIf Origin ^(https?://.+\.dev\.local(?::\d{1,5})?)$   CORS_ALLOW_ORIGIN=$1
# Header append Access-Control-Allow-Origin  %{CORS_ALLOW_ORIGIN}e   env=CORS_ALLOW_ORIGIN
# Header merge  Vary "Origin"

# Disable directory listing (-indexes), Multiviews (-MultiViews)
Options -Indexes
Options -MultiViews

<IfModule mod_rewrite.c>

    RewriteEngine On

    # If you have problems with the rewrite rules remove the "#" from the following RewriteBase line
    # You will also have to change the path to reflect the path to your Chevereto installation
    # If you are using alias is most likely that you will need this.
    #RewriteBase /

    # 404 images
    # If you want to have your own fancy "image not found" image remove the "#" from RewriteCond and RewriteRule lines
    # Make sure to apply the correct paths to reflect your current installation
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule images/.+\.(gif|jpe?g|png|bmp|webp) - [NC,L,R=404]
    #RewriteRule images/.+\.(gif|jpe?g|a?png|bmp|webp) content/images/system/default/404.gif [NC,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !\.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpe?g|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|webp|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [NC]
    RewriteRule . index.php [L]
    php_value post_max_size 24M
    php_value upload_max_filesize 10M

</IfModule>

然后再英文输入法下按Esc退出编辑,输入:wq 回车保存编辑
其中最下面的

php_value post_max_size 24M
php_value upload_max_filesize 10M

就是设置图片的限制为10M,总处理大小为24M,最大支持 32M 根据自己情况配置

  1. 将文件复制到容器内部会覆盖原有的文件:
docker cp /tmp/.htaccess c3a6b433c045:/var/www/html/.htaccess
  1. 然后docker restart c3a6b433c045 (你也可以去客户端的可视化里重启图床容器)

重启成功后就可以上传10M的图片啦

5.总结

总体来说搭建过程并不复杂,前提装好mysql,后面的解除2M限制会有点麻烦,按照步骤应该是没有问题的,有问题可以留言,看到都会回复的。

如果想给朋友一起用,通过域名访问还是很有必要的,端口最好隐藏,可以通过ngnix反向代理去实现(Nginx Proxy Manager安装搭建 反向代理神器),能通过docker部署的图床也很多不错的还有简单图床和兰空图床,但是论颜值肯定是比不上Chevereto,如果只是自己写博客贴图用用,那么也是有很多的公益图床可以选择或者oss对象存储搭配picgo实现(这个后面会出教程), Chevereto这种就偏向分享和主题相册的图床,颜值才是王道!

现在最新版已经是4.0系列了多了很多功能,但是需要购买授权,我自己在用的另一个就是4.0的,通过宝塔源码部署在阿里云上,存储也是用的外部存储存在了阿里云的对象存储oss上,图床程序挂了图都不会裂,源码的服务器部署后面也会出相应的教程。

最后希望大家都能顺利部署成功,有问题欢迎交流分享