新增 docker 容器挂载目录
在开发机上编辑 docker-compose.yml 配置文件,新增需要挂载的目录。然后提交保存。
将配置文件更新到服务器上。重启 docker fpm 容器,使挂载目录生效。
docker compose stop phpfpm82
docker compose up -d phpfpm82
确认目录已存在
docker 比较贴心的一点是,设置的挂载目录,如果不存在,会自动创建这些目录。而不需要手动去逐一创建。如果不放心,可以手动验证一下:
docker compose exec phpfpm82 /bin/bash
ls xxx
修改目录权限
因为 Ubuntu 下,nginx 默认是以 www-data 用户运行的,所以需要将挂载的目录 chown:
chown www-data:www-data -R xxx/
新建数据库及对应账号
> docker compose exec mysql /bin/bash
> mysql -uroot -p
CREATE DATABASE xxx CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
create user xxx@'%' identified by 'password';
grant all privileges on xxx.* to xxx@'%' with grant option;
这里一定要注意,新建的数据库账号一定是允许远程登录的,因为之前的习惯都是新建 localhost 本地登录的 mysql 账号,所以很容易习惯性得还是新建 localhost。但是 docker mysql 容器是需要被其他容器,例如 php 容器访问的,那么就需要允许远程访问。
最后,使用新创建的新账号,登录测试一下。
新建 Nginx 配置文件
复制之前的配置文件,将域名和目录替换掉。
申请 Nginx HTTPS 证书
在设置了域名 DNS 解析之后,就可以申请 HTTPS 证书了。
certbot --nginx -d www.xxx.com
修改 joomla 配置
# grep redis configuration.php
public $cache_handler = 'redis';
public $redis_persist = true;
public $redis_server_auth = '';
public $redis_server_db = 0; // 如果一个主机上多个 joomla 网站,注意区分开 redis 数据库下标,例如 0,1,2,3...
public $redis_server_host = 'redis';
public $redis_server_port = 6379;
public $session_handler = 'redis'; // 容易漏掉
public $session_memcache_server_host = 'redis';
public $session_memcached_server_host = 'redis';
public $session_redis_persist = 1;
public $session_redis_server_auth = '';
public $session_redis_server_db = 0;
public $session_redis_server_host = 'redis';
public $session_redis_server_port = 6379;
挂载 Linode Object Storage
参考:
s3fs-fuse 将 Linode Object Storage 挂载到 Ubuntu Server 本地文件系统
参考
- https://docs.docker.com/storage/volumes/
- https://docs.docker.com/compose/compose-file/07-volumes/
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式