宝塔面板配合docker部署nextcloud并使用php-fpm方式

宝塔面板配置

  1. 新建网站和数据库(字符集选utf8mb4),php随便选个就行随后会替换配置。
  2. 修改新建的数据库访问权限为所有人或指定IP并开放防火墙端口,否则一会从容器内无法访问。
  3. /www/server/nginx/conf新建php-fpm.conf文件内容为:
    location ~ [^/]\.php(/|$)
    	{
    		try_files $uri =404;
    		fastcgi_pass  127.0.0.1:9001;
    		fastcgi_index index.php;
    		include fastcgi.conf;
    		include pathinfo.conf;
    		fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
    	}
    
  4. 在网站管理,站点设置
    替换:
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-74.conf;
    #PHP-INFO-END
    
    为:
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include php-fpm.conf;
    #PHP-INFO-END
    
    并添加:
    rewrite /.well-known/carddav /remote.php/dav permanent;
    rewrite /.well-known/caldav /remote.php/dav permanent;
    

部署容器

  1. 执行
    docker run -itd -p 9001:9000 \
      -v nextcloud_fpm:/var/www/html \
      --restart=always \
      --name nc19fpm nextcloud:19-fpm
    
    nextcloud_fpm与nc19fpm可以自定义
  2. 挂载容器卷到网站根目录
    mount -B 容器卷目录/nextcloud_fpm/_data /www/wwwroot/网站目录

完成部署

  1. 访问网站
  2. 填写管理员账户名称与密码
  3. 数据库选择mysql,用户名,密码,数据库名称按添加网站时的设置填写,数据库地址可以填主机IP或172.17.0.1。
  4. 进入nextcloud后查看设置->概览->安全与设置警告,根据提示修复数据库错误。
  5. 如果提示无法访问外网是因为宿主机没有打开网络转发,通过以下操作打开:
    firewall-cmd --zone=public --add-masquerade --permanent
    firewall-cmd --reload
    systemctl restart docker
    

配置ssl使用https访问

宝塔很容易可以配置证书实现https访问,只是如果非80,443端口访问需要配置:

  1. 宝塔网站管理->设置->配置文件修改:listen 443 ssl http2;listen 你ssl使用的端口 ssl http2;
  2. 修改容器卷目录下/config/config.php文件添加可信url或删除原url指定端口。
    可信url配置项为:
    'trusted_domains' => 
      array (
        0 => 'your_url:your_port',
      ),
    

配置使用宿主机redis

宿主机配置:
  1. 使用宝塔安装redis。
  2. redis设置->性能调整,修改绑定IP为127.0.0.1 172.17.0.1可以同时被本机和容器使用。(这里注意绑定IP不是使用者IP是redis本机IP,没有被绑定的本机IP不能被连接。)
  3. 开放防火墙6379端口。
nextcloud配置:
  1. 找到容器卷下的config目录,这里不要修改config.php因为redis配置项会被apcu.config.php文件内容覆盖,所以直接修改apcu.config.php文件内容为:
    <?php
    $CONFIG = array (
      'memcache.local' => '\OC\Memcache\Redis',
      'memcache.distributed' => '\OC\Memcache\Redis',
      'memcache.locking' => '\OC\Memcache\Redis',
      'redis' => 
      array (
        'host' => '172.17.0.1',
        'port' => 6379,
      ),
    );
    
    保存不需要重启刷新测试一下是不是快了很多:)

修改最大上传文件大小

如果上传文件出错就尝试上传1M以内文件,如果1M以内文件可以正常上传说明出错原因大概率是限制了最大上传文件大小。

  1. 修改nginx配置文件在server {块添加client_max_body_size 1024m;
  2. 新建upload.ini文件内容如下:
    upload_max_filesize=1024M
    post_max_size=1024M
    
    然后执行(内容自行替换):
    docker cp 文件路径/upload.ini 容器名称或ID:/usr/local/etc/php/conf.d/
  3. 重启容器和nginx。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用宝塔面板通过Docker部署MySQL服务,你可以按照以下步骤进行操作: 1. 确保你的宿主机已经安装了宝塔面板,并且面板版本为7.9.26或更高版本。 2. 在宝塔面板中,进入Docker项目管理器,点击"创建容器"按钮。 3. 在容器创建页面中,选择MySQL镜像,并选择所需的MySQL版本。例如,可以选择MySQL5.7.37或MySQL8.0.28。 4. 配置容器的基本信息,比如设置容器名字、端口映射等。 5. 在"环境变量"选项卡中,配置MySQL的相关环境变量,比如设置root密码、创建数据库等。你可以使用以下命令来查看数据库、创建数据库和用户以及授权的命令:show databases; create database dapaodocker; create user 'dapaodocker'@'%' identified by 'dapao666!'; grant all on dapaodocker.* to dapaodocker@'%'; select host,user from user;。 6. 点击"创建"按钮,等待容器创建完成。 7. 容器创建完成后,你可以在面板中管理该MySQL容器,包括启动、停止、重启等操作。 通过以上步骤,你就可以在宝塔面板使用Docker项目管理器快速创建多个版本的MySQL服务了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [堡塔面板使用Docker部署MySQL多实例](https://blog.csdn.net/u011630259/article/details/124497343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值