首页 > 编程知识 正文

使用docker安装chevereto图床

时间:2023-05-04 12:19:18 阅读:188144 作者:283

先介绍一下我的方案,使用官方的镜像,其中包含图床容器,以及数据库,两个容器,宿主机开启Nginx,反向代理,并申请证书开启HTTPS。群晖中的安装直接参考:http://www.nasyun.com/thread-64644-1-5.html

1. 拉取相关容器

首先使用Docker compose,Docker Hub地址:https://hub.docker.com/r/nmtan/chevereto

version: '3'services: db: image: mariadb volumes: - database:/var/lib/mysql:rw restart: always networks: - private environment: MYSQL_ROOT_PASSWORD: chevereto_root MYSQL_DATABASE: chevereto MYSQL_USER: chevereto MYSQL_PASSWORD: chevereto chevereto: depends_on: - db image: nmtan/chevereto restart: always networks: - private environment: CHEVERETO_DB_HOST: db CHEVERETO_DB_USERNAME: chevereto CHEVERETO_DB_PASSWORD: chevereto CHEVERETO_DB_NAME: chevereto CHEVERETO_DB_PREFIX: chv_ volumes: - chevereto_images:/var/www/html/images:rw ports: - 8080:80networks: private:volumes: database: chevereto_images:

volumes是映射地址,“:”前为宿主机地址,environment为环境变量,下面的数据库参数自行修改,尤其是密码,数据库如果需要映射端口,可以使用 ports: 映射一个,方便之后的管理。

chevereto下面的端口开启的是8080,自行修改即可,反正后面需要反向代理到443上。

2. 申请证书,

我参考的是:https://www.cnblogs.com/xiaoyige/p/12667640.html

具体方法在我之前的一篇文章中。

这里要提醒的是,证书文件生成好之后要考出来,我存放的路径与文章中相似。在

/usr/local/nginx/ssl 3.配置宿主机Nginx

建议先关闭与Nginx有关,或使用到的容器,影响配置,本机安装后也先关闭,修改好文件后统一开放。

我使用的是yum或者apt-get,也就是包管理安装,没有编译安装。

相关配置参考:https://segmentfault.com/a/1190000019622293

https://www.cnblogs.com/tuyile006/p/12819302.html

我本机运行着几个服务,因此有几个对外端口,域名是A.com,并且这个域名到期可能就不会再用了,因此图床网站要放在一个一直续费的域名上的子域中,pic.B.com

那么直接使用反向代理80,443端口即可。

Nginx的配置文件在

/etc/nginx/nginx.conf

打开上面文档后发现具体配置是”sites-available“文件夹中的“default”

server { listen 80; server_name XXX.com; return 301 https://XXX.com$request_uri;}server { listen 443 ssl; gzip on; server_name XXX.com; ssl_certificate /usr/local/nginx/ssl/XXX.com.cer; ssl_certificate_key /usr/local/nginx/ssl/XXX.com.key; access_log /var/log/nginx/pic.log combined; error_log /var/log/nginx/pic.log; location / { proxy_redirect off; proxy_pass http://127.0.0.1:8080; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; client_max_body_size 100m; client_body_buffer_size 128k; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; }}

首先第一块server中把80端口进行跳转,都转到https上,然后配置443端口,把证书存放的位置指一下,log日志文件位置指一下,然后在proxy_pass中指出服务容器的端口,这样访问就会直接跳转了。

最后要解除上传2M的限制。

docker ps -a

查看下容器的ID,复制容器的配置文件到本地(3dec77ff864f)为容器id

docker cp 3dec77ff864f:/var/www/html/.htaccess /root/

然后编辑文件,添加

php_value post_max_size 24Mphp_value upload_max_filesize 10M

在""之前。

然后把改好的配置文件重新传回容器中。

docker cp /root.htaccess 3dec77ff864f:/var/www/html/

然后在网站仪表盘设置中修改上传图片大小即可。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。