使用docker-compose 搭建 lnmp

it2024-04-18  48

Docker compose 简介

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

使用docker compose 搭建一个 lnmp

准备工作:

1. 选择一个系统,本文章使用系统为`win10 商店里的 Ubuntu`, 也可以使用虚拟机等其他方案 2. 安装`docker`

创建配置文件夹

创建一个配置文件夹,存放docker lnmp的配置文件,本文放在当前用户下

cd ~ #创建配置文件夹 mkdir config #创建 html 文件夹 mkdir html

创建 nginx 配置文件

cd ~/config vim nginx.conf # 添加内容 # Default server configuration # worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80 default_server; listen [::]:80 default_server; # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf; root /usr/share/nginx/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html index.php; server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } # pass PHP scripts to FastCGI server # location ~ \.php$ { # With php-fpm (or other unix sockets): fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } }

创建 docker-compose 配置文件

cd ~ vim docker-compose.yml # 输入一下内容 version: "3" services: nginx: image: nginx:alpine ports: - 80:80 volumes: - ~/html:/usr/share/nginx/html - ~/conf/nginx.conf:/etc/nginx/nginx.conf php: image: devilbox/php-fpm:5.2-work-0.89 volumes: - ~/html:/var/www/html mysql: image: mysql:5.6 environment: - MYSQL_ROOT_PASSWORD=123456

创建测试 html页面

在 html 文件夹中创建各类文件,用来测试,主要有 index.html,info.php,sql_conn.php

cd ~/html #创建 index.html 用来测试 nginx echo "hello word" > index.html #创建 info.php 用来测试 php -e 代表转义换行符 echo -e "<?php \n\r echo phpinfo();\n?>" > info.php

创建 sql_conn.php ,测试php 连接mysql

vim sql_conn.php # 输入一下测试代码<?php $host = "mysql"; $user = "root"; $password = "123456"; $conn = mysqli_connect($host,$user,$password); if (!$conn) { die("Connection failed: ".mysqli_connect_error()); } echo "Connection success!" ?>

启动 docker

cd ~ # 启动docker docker-compose up -d # 停止docker docker-compose down

参考视频:

最新回复(0)