自己課題組的網(wǎng)頁掛了,老板一句話讓我們自己寫一個。結(jié)果被我拖了半年,結(jié)果丟給師弟,師弟決定用WordPress, 于是我就去給他配置服務(wù)器環(huán)境。
首先你得知道什么叫做WordPress, 它是一個基于PHP和MySQL的開源的博客管理工具,用于管理你的寫作內(nèi)容。由于它十分容易部署,而且有很多好看的主題可以供你選擇,因此被許多人使用。
一般的安裝方法是,你得有一個服務(wù)器,然后在服務(wù)器上按照PHP,MySQL, Apache/NGINX, 之后下載WordPress的安裝包,進行編譯安裝。
只從有了docker,環(huán)境配置部分就得到了簡化,并且你不用擔心在準備環(huán)境的時候,要去調(diào)整原來的PHP版本,去修改MySQL的版本,還要專門折騰Apache或者NGINX。
后續(xù)的步驟都要求你對服務(wù)器有絕對的控制權(quán),也就是說后續(xù)沒有特別說明,我們都是以root用戶運行命令
安裝Docker

Docker是目前服務(wù)器部署屆的佼佼者,無論是部署網(wǎng)頁,還是部署你的生信分析平臺,只要你寫好dockfile(一種描述部署規(guī)則的文件), 在任意的服務(wù)器上,安裝好Docker,就可以構(gòu)建出一個完全一樣的運行環(huán)境。
我用的的是CentOS7, 版本信息如下
uname -r
3.10.0-862.el7.x86_64
然后用YUM工具進行安裝,
yum update -y
yum install docker -y
由于國情,我們需要對配置一下docker的下載鏡像,提高一下后續(xù)的加載速度。 使用vim編輯 /etc/docker/daemon.json, 增加如下內(nèi)容。
{
"registry-mirrors": ["https://6xacs6l2.mirror.aliyuncs.com"]
}
啟動我們的docker服務(wù)
systemctl start docker.service
默認情況下,只有root用戶和docker組的用戶才能訪問Docker引擎的Unix socket。當然直接用root權(quán)限使用docker太過危險,建議新建一個docker用戶,然后加入docker用戶組
groupadd docker
useradd -g docker docker
后續(xù)的操作用su docker切換到docker用戶進行。
安裝WordPress
首先讓我們拉取WordPress的鏡像
docker pull wordpress:latest
WordPress的詳細使用方法見https://hub.docker.com/_/wordpress/, 運行命令是
docker run --name some-wordpress --link some-mysql:mysql -d wordpress
先做一波參數(shù)說明:
-
--name容器的的名字 -
--link和其他容器做連接 - ·-d/--detach` 后臺運行
但是直接這樣運行是絕對會報錯的,你需要再拉取一個MySQL容器,
docker pull mysql:5.6
從MySQL鏡像中運行單獨的容器
docker run -d --privileged=true --name myMysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33306:3306 mysql:5.6
再來一波參數(shù)解釋:
- -p: 端口映射,33306表示宿主,3306表示容器中的端口。 這里表示將宿主機的33306映射給鏡像的3306.
- -e: 環(huán)境變量, 環(huán)境變量和具體的Docker容器制作時設(shè)置有關(guān),這里表示設(shè)置鏡像中MySQL的root 密碼時123456
- -v: 指定數(shù)據(jù)卷,也就是將我們MySQL容器的
/var/lib/mysql映射到宿主機的/data/mysql - --privileged=true: CentOS系統(tǒng)下的安全Selinux禁止了一些安全權(quán)限,導(dǎo)致MySQL容器在運行時會因為權(quán)限不足而報錯,所以需要增加該選項
用docker ps -a 查看MySQL是否正常運行,出現(xiàn)錯誤的話,需要用docker stop 容器名停止運行,然后用docker rm 容器名刪除容器,之后去掉-d選項重新運行排查錯誤。
當我們配置好MySQL后,下一步才是運行WordPress
docker run -d --name mwp -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=123456 -p 1080:80 --link myMysql:mysql wordpress
這里我們設(shè)置了兩個環(huán)境變量,"WORDPRESS_DB_HOST"和"WORDPRESS_DB_PASSWORD", 但比較重要的有下面幾個
- "WORDPRESS_DB_HOST": 鏈接的docker的MySQL的IP地址和端口,一般設(shè)置成mysql表示用默認的設(shè)置
- "WORDPRESS_DB_USER": 以什么用戶使用MySQL,默認是root
- "WORDPRESS_DB_PASSWORD" 這設(shè)置MySQL的登陸用戶密碼,由于上一項是默認的root,所以這一項和之前的"MYSQL_ROOT_PASSWORD“要相同。
- "WORDPRESS_DB_NAME": 數(shù)據(jù)庫的表名,不需要修改,用默認的”wordpress"就行
之后在瀏覽器上用你服務(wù)器的IP,和映射出的端口號(我的是1080),就會得到配置界面
注意:盡管將容器的80端口映射給主機的1080,不需要用到root權(quán)限,但CentOS默認的防火墻禁止了大于1000后的所有端口,所以我們要開啟這個端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload #重載


后面就是你自己挑選主題的時刻了。
參考資料: