【2020年7月10日】在win10上搭建php环境(基于docker、nginx、php-fpm、thinkphp6)

概述

最近用ThinkPHP6开发网站,码字电脑用Windows10、WebStorm,局域网Linux服务器一台,云Linux服务器一台。为了提高WebStorm读写文件的速度,决定在win10上搭建web服务器环境。

同时,不想使用Linux服务器上不采用的工具,如:IIS,wamp中的Apache,windows环境的nginx、php-fpm安装&配置。于是选择用docker创建nginx+php-fpm环境,最大程度保持windows和linux上的环境一致性。

在Windows10上安装

  1. Docker Desktop for Windows,需注册&登录后看到下载链接;网站速度较慢,下载过程中可向下进行。安装后控制台分别测试docker -vdocker-compose -v,见输出版本号信息即安装成功。然后配置镜像加速
  2. PHP-7.4.8(当前最新),绿色安装:解压,添加环境变量;控制台测试php -v。完成后再向下进行
  3. Composer-Setup.exe,用于下载和自动配置ThinkPHP6,安装时会检测PHP版本,所以要先安装指定版本的php。安装后,先更改为国内镜像,控制台输入:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

创建工作目录、子目录和文件

标注说明:文件夹 [D],文本文件 [F]

创建一个文件夹作为项目目录,假设命名为myweb。进入myweb,控制台执行composer create-project topthink/think tp6,会自动安装ThinkPHP,并创建了tp6目录。进入tp6,将.example.env重命名为.env

接下来创建其他子目录和文件,结构如下:

  • myweb[D]

    • tp6[D]
    • nginx[D]

      • conf.d[D]

        • site.conf[F]
      • Dockerfile[F]
    • php-fpm[D]

      • Dockerfile[F]
    • docker-compose.yml[F]

接下来,为配置文件添加内容,共4个文件

(1)nginx目录下的Dockerfile
FROM nginx:latest
(2)nginx目录下的site.conf
server {
    listen       80;
    server_name  localhost;
    root   /var/www/public;
    
    location / {
        index index.php index.html;
        if (!-e $request_filename) {
           rewrite  ^(.*)$  /index.php?s=/$1  last;
           break;
        }
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass docker-php-fpm:9000;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
(3)php-fpm目录下的Dockerfile
FROM php:7.4-fpm
(4)docker-compose.yml
# tell docker what version of the docker-compose.yml were using
version: '3.3'

# define the network
networks:
  web-network:

# start the services section
services:
  # define the name of our service
  # corresponds to the "--name" parameter
  docker-nginx:
    build:
      context: ./nginx
    # defines the port mapping
    # corresponds to the "-p" flag
    ports:
      - "80:80"
    tty: true
    volumes:
      - ./tp6:/var/www
      - ./nginx/conf.d:/etc/nginx/conf.d
    networks:
      - web-network

  docker-php-fpm:
    build: 
      context: ./php-fpm
    tty: true
    volumes:
      - ./tp6:/var/www
    networks:
      - web-network

启动环境

在myweb内,用控制台执行docker-compose up -d --build, 最后输出两个done即表示环境创建完成。

Successfully tagged web_docker-php-fpm:latest
Creating web_docker-php-fpm_1 ... done
Creating web_docker-nginx_1   ... done

浏览器访问127.0.0.1看到ThinkPHP广告页,说明环境已搭建成功!

后续使用时,关闭环境用docker-compose down,打开环境用docker-compose up -d

附录1:不用ThinkPHP的配置方法

  1. 不需要安装PHP-7.4.8
  2. 不需要安装Composer-Setup.exe
  3. 不需要tp6目录,创建一个名为app的目录,用于存放.html和.php等网站文件
  4. root /var/www/public;改为root /var/www;,共1处
  5. - ./tp6:/var/www改为- ./app:/var/www,共2处
  6. app目录下创建index.php文件,内容为,浏览器访问127.0.0.1,出现php内容的页面即表示成功!

参考

你可能感兴趣的:(原创文章,后端开发,windows10,docker,thinkphp6)