用 docker 搭建 lnmp 环境
一、phpdocker 镜像网站
phpdocker网站
填写项目的名称(项目的名称要和你本地的一致),选择框架,nginx 端口
选择 php 版本,我这里选的是 php7.1.x 比较稳定的版本
接下来选择支持的数据库
选择 mysql 数据库版本
redis 和 memcache 选上可用
都选好了点击那个按钮
这里的端口至少是 1025,改成 1025 再次点击那个按钮
下载一个压缩包,并解压到你的 docker 目录也就是你项目的目录
进入 phpdocker 文件夹,并打开 readme.html
,有关安装的命令都在这里面呢,但是 Nginx 默认访问的是 public/index
,
接着修改 Nginx.conf 使其访问 application/index.php
,修改 ./phpdocker/nginx/nginx.conf
server {
listen 80 default;
client_max_body_size 108M;
access_log /var/log/nginx/application.access.log;
#root /application/public;
root /application;
index index.php;
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
location ~ \.php$ {
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log";
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
include fastcgi_params;
}
二、执行命令安装
执行安装的信息都在 docker-compose.yml
文件中,修改该文件两个地方,并保存
mysql:
image: mysql:5.7
container_name: docker-mysql
working_dir: /application
volumes:
- .:/application
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=docker
- MYSQL_USER=docker
- MYSQL_PASSWORD=123456
ports: #加上端口,不然3306没法访问
- "3306:3306"
webserver:
image: nginx:alpine
container_name: docker-webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80" #1025改成80就能用默认端口访问了
执行 docker-compose up -d
下载
耐心等几分钟,有些下载的地方比较慢
下载完成,相应服务已经开启了
然后再项目目录里新建一个 index.php
,看一下 phpinfo 里面的内容
<?php
phpinfo();
访问地址 192.168.99.100
就是项目的文件,需要的扩展都给装好了
接下来你可以放任意的框架进去了,注意配置 nginx.conf 文件。
用客户端 navicat 也可以访问数据库了
总结
如果熟练了这一篇和上一篇的操作,那配置 lnmp 简直是神速,无论是本地开发还是生产部署是很方便的。相比传统的虚拟机,docker 这种要灵活很多。其实 docker 的功能远不止这些。docker 的工作流和git的工作流很像。下一篇准备写一下 docker 的工作流。先贴一张来自阿里云的图
推荐文章: