docker安装nginx,php,mysql开发环境

要在Docker中安装包含Nginx、MySQL和PHP的开发环境,可以使用docker-compose来定义多个容器服务。以下是一个基本的docker-compose.yml文件,它定义了三个服务:web(使用Nginx),php和db(使用MySQL)。

首先,确保你的系统中已经安装了Docker和Docker Compose。

/myapp
  /www
    index.php
  /nginx
    default.conf
  docker-compose.yml

其中 /myapp 你的项目开发目录
在/myapp/www/index.php中,你可以添加PHP代码,比如:

<?php
echo json_encode(["message" => "Hello, World!"]);

在/myapp/nginx/default.conf中,配置你的Nginx服务器,例如:

server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

在/myapp/docker-compose.yml中定义你的服务:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./www:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
      - db

  php:
    image: php:fpm
    volumes:
      - ./www:/var/www/html
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: user
      MYSQL_PASSWORD: user
      MYSQL_ROOT_PASSWORD: rootpassword
    ports:
      - "3306:3306"
    volumes:
      - dbdata:/var/lib/mysql

volumes:
  dbdata:

文件创建好后,启动你的服务。

docker-compose up -d

这个命令会根据docker-compose.yml文件启动三个服务:Nginx、PHP-FPM和MySQL。它会自动下载所需的Docker镜像,并在后台启动容器。

现在,你可以访问http://localhost:8080/index.php 来查看你的PHP应用程序。它应该显示一个JSON格式的”Hello, World!”消息。

如果你需要与MySQL数据库交互,可以在你的PHP脚本中使用PDO或mysqli来连接数据库,使用环境变量中定义的相同数据库凭证。

记得将数据库初始化脚本放在项目文件夹中,并通过Docker Compose进行加载,或者手动进入MySQL容器来导入数据库。

可能上面的docker-compose看不明白。这不重要,你的目标是搞定开发环境。只要跑起来能让你的开发顺畅的执行起来就ok了。至于docker的命令,可以稍后自己研究。

end
  • 作者:kali(作者介绍)
  • 更新时间:2022-07-20 18:09
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:转载站点文章,请附上原文链接
  • 翻译声明:翻译文章会不严谨,请务必附上原文链接
  • 扫描阅读:扫描二维码,手机阅读该文章