linux

LNMP与Docker结合使用指南

小樊
49
2025-07-25 07:55:58
栏目: 智能运维

LNMP(Linux + Nginx + MySQL + PHP)是一种常见的Web服务器环境组合,使用Docker可以轻松搭建和管理LNMP环境。以下是使用Docker和Docker Compose部署LNMP环境的详细步骤:

准备工作

  1. 确保你的系统已经更新到最新版本。
  2. 安装Docker和Docker Compose。

使用Docker部署LNMP环境

1. 下载必要的镜像

2. 启动各个容器

使用以下命令启动Nginx、PHP-FPM和MySQL容器:

docker run --rm -d -p 80:80 --name=nginx nginx:alpine
docker run --rm -d -p 9000:9000 --name=php-fpm php:7-fpm-alpine
docker run --rm -d -p 3306:3306 --name=mysql mysql:5.7

3. 使用docker-compose管理容器

创建一个docker-compose.yml文件来简化容器的管理和配置:

version: '3'
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./sites:/etc/nginx/sites-enabled
      - ./www:/var/www/html
    depends_on:
      - php
      - mysql
  php:
    image: php:7.4-fpm
    volumes:
      - ./www:/var/www/html
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: your_database
      MYSQL_USER: your_user
      MYSQL_PASSWORD: your_password
    volumes:
      - ./mysql-data:/var/lib/mysql

4. 启动服务

在包含docker-compose.yml文件的目录下运行以下命令启动服务:

docker-compose up -d

自定义配置

1. Nginx配置

在项目目录下创建nginx.conf和站点配置文件。例如:

user nginx;
worker_processes auto;
events {
    worker_connections 1024;
}
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

2. PHP配置

可以通过创建自定义Dockerfile来扩展PHP镜像:

FROM php:7.4-fpm
RUN docker-php-ext-install pdo pdo_mysql
RUN pecl install redis && docker-php-ext-enable redis

然后在docker-compose.yml中引用:

php:
  build: .
  volumes:
    - ./www:/var/www/html

常用操作命令

项目部署

将你的PHP项目文件放入www目录,Nginx会自动提供服务。确保Nginx配置正确指向你的项目入口文件。

数据库连接

在PHP代码中连接MySQL时,使用以下配置:

$db = new PDO('mysql:host=mysql;dbname=your_database', 'your_user', 'your_password');

注意事项

通过以上步骤,你可以轻松调用和管理Docker LNMP环境,实现快速开发和部署。

0
看了该问题的人还看了