帮朋友搭站,服务器是一台阿里云2核4G的ECS,CentOS 8。以前我习惯LNMP一键安装,这次试了Docker部署,发现确实快——从空机器到能访问的WordPress,25分钟搞定。
前提:服务器已装Docker和Docker Compose。没装的话两行命令:
curl -fsSL https://get.docker.com | bash && systemctl enable docker
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
然后创建一个docker-compose.yml:
version: '3.8'
services:
db:
image: mysql:8.0
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: yourpassword
MYSQL_DATABASE: wordpress
restart: always
wordpress:
image: wordpress:php8.3-apache
ports:
- "8080:80"
depends_on:
- db
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: yourpassword
WORDPRESS_DB_NAME: wordpress
restart: always
docker-compose up -d,等一分钟,访问http://你的IP:8080,进WordPress安装向导,填站点信息,完成。
但有几个坑:
第一,wp-content挂载到宿主机是必须的,不然容器删了你的主题和插件全没了。但不要挂载整个/var/www/html,因为WordPress核心文件升级时容器内会变,宿主机挂载会冲突。
第二,php.ini上传限制默认2MB。在docker-compose里加一个uploads.ini挂载:在宿主机创建uploads.ini,写upload_max_filesize=64M和post_max_size=64M,然后挂载到容器的/usr/local/etc/php/conf.d/。
第三,如果需要SSL,不要在容器里配。前面放一个Nginx反向代理,SSL在宿主机层面用Certbot搞定。容器内部走HTTP就行。
性能方面,这个配置跑日UV 3000以内的站没问题。如果流量上去了,把数据库单独迁出来、用Redis做对象缓存、加CDN。但那是另一个话题了。
Docker部署最大的好处是迁移方便。docker-compose down,打包整个目录,scp到新服务器,docker-compose up -d,站点原地复活。
标签: wordpress Docker 建站教程 Docker Compose 服务器配置
还木有评论哦,快来抢沙发吧~