1、LNMP解释:
Linux:Linux 操作系统
Nginx:Web 服务器
MariaDB:数据库
PHP:脚本语言
2、 操作步骤
说明:以下环境搭建在linux系统内需要切换至root用户,已是root的不用管
(1)搭建Docker环境1.查看版本内核,需要在3.8以上
uname -r
2.下载docker安装包,版本看自己需要,几乎都是可以的,本次选择18.09.8版本
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.8.tgz
4 解压到docker目录下
tar -zxvf ./docker-18.09.8.tgz -C /usr/local/
5 创建docker映射在宿主机上的文件夹
mkdir -p /usr/local/docker/data
6 进入配置文件,按i进入编辑模式;
vim /etc/profile ##
在文件的最末尾加上docker路径:
PATH=$PATH:/usr/local/docker
然后按:wq保退出;
7 刷新配置文件生效
source /etc/profile
8 进入docker目录下
cd /usr/local/docker
9 后台运行docker程序
./dockerd -g /usr/local/docker/data &
10 查看是否安装成功,显示docker版本信息
docker --version
(2)部署Mysql(与MariaDB选择一个就行)
1.docker search mysql##寻找docker镜像
docker search mysql
2.docker pull mysql:5.7 ##不加版本号,默认拉取最新的,也可以 docker pull mysql:[tag] 拉取指定版本
docker pull mysql:5.7
3.docker images ##查看镜像,找到mysql镜像名
docker images
4.mkdir -p /usr/local/mysql/data ##创建mysql挂载目录
mkdir -p /usr/local/mysql/data
5.docker run -d --name my-mysql -p 3306:3306 -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678
mysql:5.7 r ##–name 后面是自定的容器名,后续查看或者进入容器都能用到,-p 端口映射,容器内部端口映射到宿主机的端口 ;-v mysql数据和配置文件挂载目录 -e mysql 的启动参数,设置root密码;
docker run -d --name my-mysql -p 3303:3306 -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678 mysql:5.7
-p后边的5000:80代表把容器里的80端口映射给宿主机的5000端口。这样做了映射之后,可以通过5000端口访问该项目的主页。
-p后边的3303:3306代表把容器里的3306端口映射给宿主机的3303端口。这样做了映射之后,可以通过3303端口访问mysql。
5.使用navicat等工具或者docker exec -it 容器id bash 进入容器内部,都可以连接上数据库;
查看容器id
docker ps
docker exec -it efd460899249 bash
进入bash后
输入:
mysql -uroot -p12345678
(3)部署Php环境
1.docker search php ##寻找docker镜像
docker search php
2.docker pull php:7.3.7-fpm ##拉取指定版本镜像
docker pull php:7.3.7-fpm
3.docker images ##查看镜像,找到php镜像名后面启动参数里会用镜像名
docker images
4.mkdir -p /usr/local/nginx/html ##创建挂载目录
mkdir -p /usr/local/nginx/html
5.docker run -d --name my-php -p 9000:9000 -v /usr/local/nginx/html:/www php:7.3.7-fpm ##–name 后面是自定的容器名,后续查看或者进入容器都能用到,-p 端口映射,容器内部端口映射到宿主机的端口 ;-v 挂载数据卷;
docker run -d --name my-php -p 9000:9000 -v /usr/local/nginx/html:/www php:7.3.7-fpm
5.docker ps 可以查看创建成功的php容器
docker ps
(4)部署Nginx
1.docker search nginx ##寻找docker镜像
docker search nginx
2.docker pull nginx ##不加版本号,默认拉取最新的,也可以 docker pull nginx:[tag] 拉取指定版本
docker pull nginx
3.docker images ##查看镜像,找到nginx镜像名后面启动参数里会用镜像名
docker images
4.mkdir -p /usr/local/nginx/conf.d ##创建nginx宿主机配置文件目录
mkdir -p /usr/local/nginx/conf.d
5.vim /usr/local/nginx/conf.d/nginx.conf ##把下面配置文件内容写进去
vim /usr/local/nginx/conf.d/nginx.conf
6.
docker run -d --name my-nginx -p 80:80 -v /usr/local/nginx/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/html:/usr/share/nginx/html --privileged=true --link my-php:php nginx
7.docker ps ##可以看到运行的容器
docker ps
8.访问服务器地址可以看到nginx页面,说明部署成功
###配置文件内容###
server { listen 80; server_name localhost; location / { root /usr/local/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } }
至此LNMP环境搭建完成,接下来就是相应的php服务,php服务放在/usr/local/nginx/html目录下,通过服务器地址+php文件名,就可以访问具体的php应用了