
Docker部署过程之中遇见的问题和备忘录
备忘录
RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
chown -R www-data:www-data /var/www/html/owncloud/ chmod 777 /var/www/html/owncloud/config/
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
docker run -itd -p 5299:5299 --name baidu -v /opt/BDdownload:/root/Downloads baiyuetribe/baiduyunpan
#elatic search
docker run -d --name elaticksearch -p 9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
Owncloud
关闭维护模式
docker exec -u www-data owncloud01 php occ maintenance:mode --off
docker tag 629533dcbf78 registry.cn-hangzhou.aliyuncs.com/jgx/docker_jgx:1.0 docker push registry.cn-hangzhou.aliyuncs.com/jgx/docker_jgx:1.0
1、事务文件完善:
只有一个问题,官方提供的Docker镜像所使用的apt源并不完整,redis-server、php-redis一个也没有。经过一番研究,发现php扩展已经安装,只需要考虑Redis服务就行了。
一个可行的方法是更换apt源,不过还有一个更好的方法:与单独运行Redis的容器互联,这样也符合了Docker构建服务的习惯做法。
运行官方Redis镜像:
docker run --name redis-server -d redis
在运行ownCloud镜像时与Redis建立互联
docker run --name redis-server --link reids-server:redis -d owncloud:latest
如果此时ownCloud已存在,则要将Redis与ownCloud主动建立互联:
docker run --name redis-server --link owncloud:owncloud -d redis
如果ownCloud容器使用的不是默认网桥(例如使用docker-composer建立),就需要将Redis添加到相应网桥中:
docker run --name redis-server --network [网桥名] -d redis
修改ownCloud的配置文件,添加以下内容,注意“host"后面要填容器名或容器ID:
'memcache.local' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'redis', 'port' => 6379, ], 'memcache.locking' => '\OC\Memcache\Redis',
完成后,刷新ownCloud页面,可以看到有关内存缓存和事务文件锁定的错误已经消失:
2、URL完善:
config.php+OCC命令
编辑config/config.php
在config.php中设置规则,只需加入以下2行:
'overwrite.cli.url' => 'ownCloud/Nextcloud访问地址',
'htaccess.RewriteBase' => '/',
第一行一般已经存在,可以不再添加,如果和你当前的Nextcloud/ownCloud的访问地址不同,则要修改为当前地址。
以下是一个config.php示例的部分内容,需要添加或修改的两行已用黄色标出
'overwrite.cli.url' => 'http://192.168.3.3',
'dbtype' => 'mysql',
'version' => '12.0.0.16',
'dbname' => 'nc',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'oc_',
'dbuser' => 'user',
'dbpassword' => 'password',
'installed' => true,
'htaccess.RewriteBase' => '/',
现在可以将它保存了。
使用OCC命令生成.htaccess文件
别急着访问Nextcloud,我们只是添加了生成.htaccess的规则而已。现在要使用OCC命令重新生成.htaccess
使用以下命令生成.htaccess文件:
Ubuntu/Debian类系统
sudo -u www-data php occ maintenance:update:htaccess
CentOS/RedHat:
sudo -u apache php occ maintenance:update:htaccess
如图:
访问你的Nextcloud,index.php已经消失了。
去除文件:
'skeletondirectory' => '',