一、準(zhǔn)備工作
在開(kāi)始之前,請(qǐng)確保您的系統(tǒng)已經(jīng)安裝了Docker和Docker-Compose。您可以通過(guò)以下命令檢查是否已安裝:
docker --version
docker-compose --version
如果尚未安裝,請(qǐng)參考官方文檔進(jìn)行安裝。
二、創(chuàng)建項(xiàng)目目錄結(jié)構(gòu)
首先創(chuàng)建一個(gè)項(xiàng)目目錄并進(jìn)入:
mkdir wordpress-nginx && cd wordpress-nginx
三、編寫(xiě)docker-compose.yml文件
在項(xiàng)目目錄中創(chuàng)建docker-compose.yml
文件,內(nèi)容如下:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- wordpress_data:/var/www/html
depends_on:
- wordpress
volumes:
db_data:
wordpress_data:
四、配置Nginx
在項(xiàng)目目錄中創(chuàng)建nginx.conf
文件,內(nèi)容如下:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
五、啟動(dòng)服務(wù)
運(yùn)行以下命令啟動(dòng)所有服務(wù):
docker-compose up -d
六、訪問(wèn)WordPress
等待所有容器啟動(dòng)完成后,您可以通過(guò)以下方式訪問(wèn)WordPress:
- 直接訪問(wèn)Nginx:
http://your_server_ip
- 直接訪問(wèn)WordPress容器:
http://your_server_ip:8000
七、常見(jiàn)問(wèn)題解決
端口沖突:如果80端口已被占用,可以修改docker-compose.yml中nginx的端口映射,例如改為
"8080:80"
數(shù)據(jù)庫(kù)連接問(wèn)題:確保WordPress容器中的數(shù)據(jù)庫(kù)配置與db服務(wù)中的環(huán)境變量一致
文件權(quán)限問(wèn)題:如果出現(xiàn)文件寫(xiě)入權(quán)限問(wèn)題,可以嘗試修改WordPress目錄權(quán)限:
docker-compose exec wordpress chown -R www-data:www-data /var/www/html
八、停止和清理
要停止服務(wù):
docker-compose down
要完全刪除數(shù)據(jù)卷:
docker-compose down -v
通過(guò)以上步驟,您已經(jīng)成功使用Docker-Compose部署了WordPress和Nginx環(huán)境。這種部署方式不僅簡(jiǎn)單高效,而且便于遷移和維護(hù),是搭建WordPress網(wǎng)站的現(xiàn)代化解決方案。