十分鐘快速搭建wordpress服務
wordpress服務需要對應的mysql數據庫服務,安裝wordpress之前需要先搭建好數據庫服務。現在都流行基於拉取鏡像啟動docker容器方式提供服務,因此需要一臺能上外網的1核1G的機器,在機器上安裝好docker。
1.安裝mysql數據庫
a. 拉取mysql鏡像
docker pull mysql:5.7
b.啟動mysql容器服務
docker run --name mysql-db -v /data/mysql:/var/lib/mysql -d -e MYSQL_ROOT_PASSWORD=root mysql:5.7
數據庫的數據文件則會保存在系統/data/mysql目錄下,即使下次重新啟動或者重新創建一個mysql容器,數據也不會丟失。通過docker ps -a 查看容器狀態,若執行失敗,docker logs containerID 查看錯誤日誌。還可以通過docker的參數-p 將容器端口映射到宿主機端口,方便在本地機器訪問數據庫服務。
docker run --name mysql-db -p 3306:3306 -v /data/mysql:/var/lib/mysql -d -e MYSQL_ROOT_PASSWORD=root mysql:5.7
若啟動的時候未映射端口,後期可以手動通過iptables進行配置
iptables -t nat -A DOCKER -p tcp --dport 3306 -j DNAT --to-destination 172.17.0.2:3306 iptables --list iptables -t nat --list docker
容器的ip可以通過docker inspect containerID查看
c.創建數據庫
默認的用戶名是root,密碼是通過MYSQL_ROOT_PASSWORD指定的值。
docker exec -it containerID sh mysql -uroot -p create database wordpress default charset utf8
d.本地連接mysql
本地用圖形化工具連接mysql,方便操作,比如Navicat。mysql容器的端口已經映射到宿主機上3306,輸入機器的ip,port進行連接,若報錯:
Client does not support authentication protocol,
則按照c步驟進入數據庫,執行
ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘root‘; FLUSH PRIVILEGES;
2.安裝wordpress
a.拉取wordpress鏡像
docker pull wordpress
b.啟動wordpress容器
docker run -v /data/wordpress/wp-content:/var/www/html/wp-content --name my-wordpress --link mysql-db:db -p 80:80 -d wordpress
–link的意思就是wordpress關聯了剛才安裝好的mysql容器,後面的db只是一個別名。wp-content目錄映射到容器,這樣就可以備份網站的內容了(模板或者插件),再次啟動wordpress服務所有的配置不會丟失。如果網站之前是ip,現在改由域名訪問,請修改wp_options表中對應的siteurl以及home地址,重啟容器即可。因為這個wp-content目錄是mount到容器內部的,即使在宿主機上chmod 777 content/*,可能還是無法上傳圖片或者文件,執行以下操作即可。
docker exec -it containerId sh chown -R www-data:www-data wp-content/*
3.創建wordpress服務
執行docker ps ,確定兩個容器都正常啟動之後,用瀏覽器訪問http://ip:80/,按照引導操作就行。
十分鐘快速搭建wordpress服務