Skip to content

wordpress

WordPress 是一个免费的开源博客工具,也是一个基于PHP和MySQL的内容管理系统(CMS),它运行在一个 web 托管服务上。功能包括插件架构和模板系统。截至2013年8月,前1000万个网站中有超过22.0%使用 WordPress。WordPress 是网络上最流行的博客系统,在超过6000万个网站上使用。最常用的语言是英语、西班牙语和印尼语。

wiki: https://en.wikipedia.org/wiki/WordPress

安装前,完成数据库配置

start by host

参考:https://developer.wordpress.org/advanced-administration/before-install/howto-install

start by container

sh
$ sudo docker pull docker.m.daoclou.io/wordpress:6.5
# change tag
$ sudo docker tag docker.m.daoclou.io/wordpress:6.5 wordpress:6.5
# create configuration file
$ mkdir -p ~/var/lib/wordpress

$ sudo docker container create --name wordpress wordpress:6.5
$ sudo docker cp wordpress:/var/www/html:~/var/lib/html
$ sudo docker rm wordpress -f

# modify database connection
vim ~/var/lib/wordpress/wp-config.php

# image to container
$ sudo docker run -d --restart=always --name wordpress -v ~/var/lib/html:/var/www/html -p 9001:80 wordpress:6.5

wp_config.php

sh
# modify database connection
# define( 'DB_NAME', 'wp' );
# define( 'DB_USER', 'wp' );
# define( 'DB_PASSWORD', '123456' );
# define( 'DB_HOST', '192.168.0.5:3306' );

https://developer.wordpress.org/advanced-administration/wordpress/wp-config/

Dockerfile

www.tar.gz

sh
$ mkdir ~/var/lib/wordpress
$ cd ~/var/lib/wordpress
# get wordpress package
# https://wordpress.org/download/releases/
$ wget https://wordpress.org/wordpress-6.6.1.tar.gz
$ tar -zxvf wordpress-6.6.1.tar.gz
$ mv wordpress www
# create wordpress config
$ cp www/wp-config-sample.php www/wp-config.php

$ mkdir www/http.d
# nginx http.d *.conf
$ vim www/http.d/wordpress.conf
# get php81.d.tar
$ tar -xvf php81.d.tar -C www

$ tar -zcvf www.tar.gz

wordpress.conf

nginx
upstream php-fpm {
        server unix:/run/php-fpm81/www.sock;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /www;
        index index.php;
        try_files $uri $uri/ $uri.php$is_args$args;

        location ~ \.php$ {
                fastcgi_pass php-fpm;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
        }
}

php81.d

![][file/php81.d.tar]

Dockerfile
FROM alpine:3.17

LABEL authors="ue" mail=sinuto@163.com

WORKDIR /www

ADD www.tar.gz /

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories\
&& apk update

RUN apk add php81 php81-cli php81-fpm php81-json php81-mysqli php81-mysqlnd php81-pdo\
&& rm -rf /etc/php81\
&& ln -s /www/php81.d /etc/php81\
&& mkdir /run/php-fpm81

RUN apk add nginx\
&& rm -rf /etc/nginx/http.d\
&& ln -s /www/http.d /etc/nginx/http.d

EXPOSE 80
#CMD php-fpm81 && nginx && while true; do echo hello world; sleep 1; done
CMD chown -R nginx:nginx /www && php-fpm81 && nginx && tail -f /var/log/nginx/access.log /var/log/nginx/error.log

database

sql
mysql> CREATE DATABASE wp;
mysql> CREATE USER wp;
mysql> ALTER USER 'wp'@'%' IDENTIFIED WITH 'mysql_native_password' BY '123456';
mysql> GRANT INSERT,DELETE,UPDATE,SELECT,CREATE ON wp.* TO 'wp'@'%';
mysql> FLUSH PRIVILEGES;
mysql> SHOW GRANT FOR 'wp'@'%';