国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 再Docker中架設完整的WordPress站點全攻略

再Docker中架設完整的WordPress站點全攻略

2020-11-10 17:00Arun Pyasi PHP教程

這篇文章主要介紹了再Docker中架設完整的WordPress站點全攻略,Docker是當下最火爆的虛擬機類技術,需要的朋友可以參考下

1. 安裝 docker

在我們真正開始之前,我們需要確保在我們的 linux 機器上已經安裝了 docker。我們使用的主機是 centos 7,因此我們用下面的命令使用 yum 管理器安裝 docker。

?
1
# yum install docker

  

再Docker中架設完整的WordPress站點全攻略

?
1
# systemctl restart docker.service

2. 創建 wordpress 的 dockerfile

我們需要創建用于自動安裝 wordpress 以及其前置需求的 dockerfile。這個 dockerfile 將用于構建 wordpress 的安裝鏡像。這個 wordpress dockerfile 會從 docker registry hub 獲取 centos 7 鏡像并用最新的可用更新升級系統。然后它會安裝必要的軟件,例如 nginx web 服務器、php、mariadb、open ssh 服務器,以及其它保證 docker 容器正常運行不可缺少的組件。最后它會執行一個初始化 wordpress 安裝的腳本。

?
1
# nano dockerfile

然后,我們需要將下面的配置行添加到 dockerfile中。

   

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from centos:centos7
 maintainer the centos project <cloud-ops@centos.org>
 run yum -y update; yum clean all
 run yum -y install epel-release; yum clean all
 run yum -y install mariadb mariadb-server mariadb-client nginx php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy php-apc pwgen python-setuptools curl git tar; yum clean all
 add ./start.sh /start.sh
 add ./nginx-site.conf /nginx.conf
 run mv /nginx.conf /etc/nginx/nginx.conf
 run rm -rf /usr/share/nginx/html/*
 run /usr/bin/easy_install supervisor
 run /usr/bin/easy_install supervisor-stdout
 add ./supervisord.conf /etc/supervisord.conf
 run echo %sudo all=nopasswd: all >> /etc/sudoers
 add http://wordpress.org/latest.tar.gz /wordpress.tar.gz
 run tar xvzf /wordpress.tar.gz
 run mv /wordpress/* /usr/share/nginx/html/.
 run chown -r apache:apache /usr/share/nginx/
 run chmod 755 /start.sh
 run mkdir /var/run/sshd
 expose 80
 expose 22
 cmd ["/bin/bash", "/start.sh"]

再Docker中架設完整的WordPress站點全攻略

    3. 創建啟動腳本

我們創建了 dockerfile 之后,我們需要創建用于運行和配置 wordpress 安裝的腳本,名稱為 start.sh。它會為 wordpress 創建并配置數據庫和密碼。用我們喜歡的文本編輯器打開 start.sh。

?
1
# nano start.sh

打開 start.sh 之后,我們要添加下面的配置行到文件中。

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
__check() {
if [ -f /usr/share/nginx/html/wp-config.php ]; then
exit
fi
}
__create_user() {
# 創建用于 ssh 登錄的用戶
ssh_userpass=`pwgen -c -n -1 8`
useradd -g wheel user
echo user:$ssh_userpass | chpasswd
echo ssh user password: $ssh_userpass
}
__mysql_config() {
# 啟用并運行 mysql
yum -y erase mariadb mariadb-server
rm -rf /var/lib/mysql/ /etc/my.cnf
yum -y install mariadb mariadb-server
mysql_install_db
chown -r mysql:mysql /var/lib/mysql
/usr/bin/mysqld_safe &
sleep 10
}
__handle_passwords() {
# 在這里我們生成隨機密碼(多虧了 pwgen)。前面兩個用于 mysql 用戶,最后一個用于 wp-config.php 的隨機密鑰。
wordpress_db="wordpress"
mysql_password=`pwgen -c -n -1 12`
wordpress_password=`pwgen -c -n -1 12`
# 這是在日志中顯示的密碼。
echo mysql root password: $mysql_password
echo wordpress password: $wordpress_password
echo $mysql_password > /mysql-root-pw.txt
echo $wordpress_password > /wordpress-db-pw.txt
# 這里原來是一個包括 sed、cat、pipe 和 stuff 的很長的行,但多虧了
# @djfiander 的 https://gist.github.com/djfiander/6141138
# 現在沒有了
sed -e "s/database_name_here/$wordpress_db/
s/username_here/$wordpress_db/
s/password_here/$wordpress_password/
/'auth_key'/s/put your unique phrase here/`pwgen -c -n -1 65`/
/'secure_auth_key'/s/put your unique phrase here/`pwgen -c -n -1 65`/
/'logged_in_key'/s/put your unique phrase here/`pwgen -c -n -1 65`/
/'nonce_key'/s/put your unique phrase here/`pwgen -c -n -1 65`/
/'auth_salt'/s/put your unique phrase here/`pwgen -c -n -1 65`/
/'secure_auth_salt'/s/put your unique phrase here/`pwgen -c -n -1 65`/
/'logged_in_salt'/s/put your unique phrase here/`pwgen -c -n -1 65`/
/'nonce_salt'/s/put your unique phrase here/`pwgen -c -n -1 65`/" /usr/share/nginx/html/wp-config-sample.php > /usr/share/nginx/html/wp-config.php
}
__httpd_perms() {
chown apache:apache /usr/share/nginx/html/wp-config.php
}
__start_mysql() {
# systemctl 啟動 mysqld 服務
mysqladmin -u root password $mysql_password
mysql -uroot -p$mysql_password -e "create database wordpress; grant all privileges on wordpress.* to 'wordpress'@'localhost' identified by '$wordpress_password'; flush privileges;"
killall mysqld
sleep 10
}
__run_supervisor() {
supervisord -n
}
# 調用所有函數
__check
__create_user
__mysql_config
__handle_passwords
__httpd_perms
__start_mysql
__run_supervisor

再Docker中架設完整的WordPress站點全攻略

    增加完上面的配置之后,保存并關閉文件。
4. 創建配置文件

現在,我們需要創建 nginx web 服務器的配置文件,命名為 nginx-site.conf。

?
1
# nano nginx-site.conf

然后,增加下面的配置信息到配置文件。

   

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
user nginx;
  worker_processes 1;
  error_log /var/log/nginx/error.log;
  #error_log /var/log/nginx/error.log notice;
  #error_log /var/log/nginx/error.log info;
  pid /run/nginx.pid;
  events {
  worker_connections 1024;
  }
  http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log main;
  sendfile on;
  #tcp_nopush on;
  #keepalive_timeout 0;
  keepalive_timeout 65;
  #gzip on;
  index index.html index.htm index.php;
  # load modular configuration files from the /etc/nginx/conf.d directory.
  # see http://nginx.org/en/docs/ngx_core_module.html#include
  # for more information.
  include /etc/nginx/conf.d/*.conf;
  server {
  listen 80;
  server_name localhost;
  #charset koi8-r;
  #access_log logs/host.access.log main;
  root /usr/share/nginx/html;
  #error_page 404 /404.html;
  # redirect server error pages to the static page /50x.html
  #
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
  root html;
  }
  # proxy the php scripts to apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  # proxy_pass http://127.0.0.1;
  #}
  # pass the php scripts to fastcgi server listening on 127.0.0.1:9000
  #
  location ~ \.php$ {
  root /usr/share/nginx/html;
  try_files $uri =404;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param script_filename $document_root$fastcgi_script_name;
  include fastcgi_params;
  }
  # deny access to .htaccess files, if apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  # deny all;
  #}
  }
  }

再Docker中架設完整的WordPress站點全攻略

    現在,創建 supervisor.conf 文件并添加下面的行。

?
1
# nano supervisord.conf

然后,添加以下行。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)
[supervisord]
logfile=/tmp/supervisord.log ; (main log file;default $cwd/supervisord.log)
logfile_maxbytes=50mb ; (max main logfile bytes b4 rotation;default 50mb)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false ; (start in foreground if true;default false)
minfds=1024 ; (min. avail startup file descriptors;default 1024)
minprocs=200 ; (min. avail process descriptors;default 200)
; the below section must remain in the config file for rpc
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// url for a unix socket
[program:php-fpm]
command=/usr/sbin/php-fpm -c /etc/php/fpm
stdout_events_enabled=true
stderr_events_enabled=true
[program:php-fpm-log]
command=tail -f /var/log/php-fpm/php-fpm.log
stdout_events_enabled=true
stderr_events_enabled=true
[program:mysql]
command=/usr/bin/mysql --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
stdout_events_enabled=true
stderr_events_enabled=true
[program:nginx]
command=/usr/sbin/nginx
stdout_events_enabled=true
stderr_events_enabled=true
[eventlistener:stdout]
command = supervisor_stdout
buffer_size = 100
events = process_log
result_handler = supervisor_stdout:event_handler

   

再Docker中架設完整的WordPress站點全攻略

    添加完后,保存并關閉文件。
5. 構建 wordpress 容器

現在,完成了創建配置文件和腳本之后,我們終于要使用 dockerfile 來創建安裝最新的 wordpress cms(譯者注:content management system,內容管理系統)所需要的容器,并根據配置文件進行配置。做到這點,我們需要在對應的目錄中運行以下命令。

?
1
# docker build --rm -t wordpress:centos7 .

 

再Docker中架設完整的WordPress站點全攻略

    6. 運行 wordpress 容器

現在,執行以下命令運行新構建的容器,并為 nginx web 服務器和 ssh 訪問打開88 和 22號相應端口 。

?
1
# cid=$(docker run -d -p 80:80 wordpress:centos7)

 

再Docker中架設完整的WordPress站點全攻略

    運行以下命令檢查進程以及容器內部執行的命令。

  

?
1
# echo "$(docker logs $cid )"

運行以下命令檢查端口映射是否正確。

?
1
# docker ps

再Docker中架設完整的WordPress站點全攻略

    7. web 界面

最后如果一切正常的話,當我們用瀏覽器打開 http://ip-address/ 或者 http://mywebsite.com/ 的時候會看到 wordpress 的歡迎界面。

再Docker中架設完整的WordPress站點全攻略

現在,我們將通過 web 界面為 wordpress 面板設置 wordpress 的配置、用戶名和密碼。

再Docker中架設完整的WordPress站點全攻略

然后,用上面用戶名和密碼輸入到 wordpress 登錄界面。

再Docker中架設完整的WordPress站點全攻略

總結

我們已經成功地在以 centos 7 作為 docker os 的 lemp 棧上構建并運行了 wordpress cms。從安全層面來說,在容器中運行 wordpress 對于宿主系統更加安全可靠。這篇文章介紹了在 docker 容器中運行的 nginx web 服務器上使用 wordpress 的完整配置。如果你有任何問題、建議、反饋,請在下面的評論框中寫下來,讓我們可以改進和更新我們的內容。非常感謝!enjoy :-)

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国内精品一区二区 | 亚洲黄色片免费看 | 性爽视频| 欧美激情一区二区三级高清视频 | 一级毛片av| 偷拍一区二区 | 蜜桃成人在线视频 | 国内成人免费视频 | 欧美成人一区二区 | 久久一区 | 色在线观看视频 | 精品中出| 精品免费av | 成人看片在线 | 精品欧美一区二区三区久久久 | 精品网站在线 | 日韩福利视频 | 亚洲a在线播放 | 亚洲综合大片69999 | 亚洲欧美制服诱惑 | 国产成人精品一区二区三区四区 | 国产精品美女久久久久久久久久久 | 亚洲精品女人久久 | 日本不卡免费新一二三区 | 羞羞网站 | 精品一区二区三区中文字幕 | 国内成人免费视频 | 亚洲视频欧美视频 | 欧美三级电影在线播放 | 国产成人免费视频 | 99精品一区二区三区 | 麻豆精品国产91久久久久久 | 午夜婷婷丁香 | 色综合久久一区二区三区 | 日韩成人在线一区二区 | 日韩免费在线观看视频 | 日韩精品一区二区三区在线播放 | 成人在线一级片 | 羞涩网站| 亚洲欧美精选 | 91久久精品国产91久久性色tv |