docker php-fpm nginx配置wordpress站点

一般我们使用wordpress的镜像大部分都是apache的,在docker hub官网是没有nginx的wordpress镜像,除非是别人自己打的,相信大家也不想用apache搭建wordpress站点,我就是其中之一,主要是我的nginx不光要代理wordpress还要代理其他服务,所以就经过研究终于找到了一个完美的解决方案,在这里分享出来。

一、用docker部署好wordpress-php-fpm容器

  • 因为有nginx,wordpress要互相通信,所以我们创建一个桥接网卡
   docker network create apg-net
  • 编写wordpress-php-fpm的部署文件,关于wordpress的版本和php版本可以自己选择,
    文件中的映射目录在配置nginx的时候会创建
version: '3'
networks:
  apg-net:
    external: true
services:
  wordpress-php-fpm:
    image: wordpress:5.2.3-php7.1-fpm-alpine
    hostname: wordpress-php-fpm
    container_name: wordpress-php-fpm
    restart: always
    volumes:
      - /home/docker/nginx/www/wordpress:/var/www/html
    environment:
      LANG: C.UTF-8
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: 你的数据库密码
      WORDPRESS_DB_NAME: wordpress
    networks:
      - apg-net
  • 完成以上配置后,执行以下命令启动此容器,此命令要在当前文件所在目录执行
  docker-compose up -d

二、继续用docker部署好nginx容器

  • 我一般在home目录下会创建一个docker的目录,在此目录下创建一个nginx目录和其他目录
  cd /home
  mkdir nginx
  cd nginx
  mkdir conf logs www
  • 在conf目录中编写nginx的配置文件,当他们都在同一个网络下的时候,就可以用hostname互相访问了
  vi default.conf
  //写入以下内容
  server {
    listen 80;
    server_name 你的域名;
    root /www/wordpress;
    index index.php;
    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
    location ~ \.php$ {
        root /var/www/html;
        fastcgi_pass wordpress-php-fpm:9000;
        fastcgi_index index.php;
        fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        include  fastcgi_params;
    }
  }
  • 进入www目录,创建wordpress目录,将下载的wordpress代码放入其中,如果已经是pache的站像换nginx,直接把var/www/html里面的所有文件拷贝到此目录即可
  cd www
  mkdir wordpress
  wget https://wordpress.org/wordpress-5.3.2.tar.gz
  tar -zxvf *
  • 再到nginx根目录,创建nginx服务编排文件
    version: '3'
    networks:
      apg-net:
        external: true
    services:
      nginx:
        image: nginx:1.19.0
        restart: always
        container_name: nginx
        hostname: nginx
        volumes:
          - "./www:/www"
          - "./conf:/etc/nginx/conf.d"
          - "./logs:/var/log/nginx"
        ports:
          - "80:80"
          - "443:443"
        networks:
          - apg-net
  • 执行以下命令,启动nginx
   docker-compose up -d

三、输入你的域名访问站点即可

wordpress站点


以上就是将apache换成nginx的全部过程,对于不是wordpress的也同样适用,只要把fpm换成官方的php-fpm镜像就可以了

发表评论