老是搭环境也太烦了,最近有接触到docker,在此记录一下利用docker搭建lnmp环境的步骤
docker的安装很简单,网上教程很多,不赘述
运行环境:centos7
docker版本
docker官网:https://hub.docker.com/
在家目录创建两个目录,一个是 nginx/conf.d(用于nginx的配置文件),一个是nginx/www(用于网站相关文件)
php-fpm安装
1. 拉取php镜像
docker pull php:7.4-fpm
2. 创建php容器
docker run --name php-fpm -v ~/nginx/www:/www -d php:7.4-fpm
注 -v ~/nginx/www:/www 表示建立 ~/nginx/www目录与 容器中/www的存储卷映射
-d表示后台运行
nginx安装
1. 拉取nginx镜像
docker pull nginx
2. 创建nginx容器
docker run --name nginx -p 8083:80 -d \
-v ~/nginx/www:/usr/share/nginx/html:ro \
-v ~/nginx/conf.d:/etc/nginx/conf.d:ro \
--link php-fpm:php \
nginx
注: 建立 ~/nginx/www 与容器 /usr/share/nginx/html的映射 ro表示readonly --link php-fpm 表示建立nginx容器与php-fpm的联系
-p 8083:80 表示建立nginx容器80端口与宿主容器8083容器的映射
进入nginx容器可看到nginx容器与php容器有联系通道
3. 修改nginx的配置文件
在~/nginx/conf.d目录下添加 myweb.conf, 内容如下:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
4.重启nginx容器
docker restart nginx
5.测试nginx与php环境是否搭建成功
在 ~/nginx/www/下新建index.php,内容如下:
<?php
phpinfo();
?>
浏览器访问:www.nginx.com:8083/index.php ,本人已经在host文件中配置www.nginx.com指向虚拟机ip地址
祝贺你,到此nginx+php就算搞定了!!!下面进行mysql的安装
mysql安装
1.拉取mysql镜像
docker pull mysql:latest
2.创建mysql容器
docker run -p 3306:3306 --name mysql -v ~/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d --link php-fpm mysql
3.安装phpmyadmin
docker run --name myadmin -d --link mysql:db -p 8082:80 phpmyadmin/phpmyadmin
成功:
测试php是否能连接数据库
首先进入php容器中,打开pdo_mysql扩展
docker-php-ext-install pdo_mysql
然后建立脚本,连接数据库:
<?php
$pdo = new PDO("mysql:host=你服务器的地址;port=3306;dbname=test", 'root', '123456');
$sql = 'select * from people';
$res = $pdo->query($sql);
while(($row = $res->fetch(PDO::FETCH_ASSOC)) !== false) {
var_dump($row);
}
?>
请求脚本文件:
》》》 以上!!!!