• 首页>
  • 五分钟入门docker:配置lnmp环境

五分钟入门docker:配置lnmp环境

杨耀东 2018-12-10 03:59 docker,云计算

本文将介绍如何利用docker搭建php网站的基础环境,包括nginx,php,mysql,你也可以在此基础上安装phpMyAdmin来管理mysql。所有操作均在deepin 15.5 64位桌面版测试通过。

1.基础环境

Linux主机一台

2.Docker安装及配置

2.1.安装Docker

Docker的安装比较简单,参考官方文档的安装方式即可。

PHP configuration:

  • PHP Version:7.2.x(根据自己的需要选择php版本)

  • Extensions:MySQL(php扩展,按需勾选)

MySQL:

  • Enable MySQL:on(启用MySQL)

  • Version:5.6.x(选择MySQL版本)

  • Password for root user:admin123(MySQL root用户密码)

  • Your app’s database name:test(网站数据库名称)

  • Your app’s database username:test(网站数据库用户名)

  • Your app’s database password:test123(网站数据库密码)

其余选项保持默认,如下图:

然后点页面下方的“Generate project archive”下载配置文件并解压,新建一个public文件夹(这个public就是网站的根目录):

public路径下新建一个index.php文件,并将以下内容写入:

<?php
    echo phpinfo();?>

在此路径打开终端,输入docker-compose up -d,等容器全部运行后,打开localhost:8000测试一下:

4.安装phpMyAdmin

为了更方便的管理数据库,我们还可以在上文的基础上添加phpMyAdmin。这里我们同样采用docker的方式来安装phpMyAdmin。

用编辑器打开docker-compose.yml

###############################################################################
#                          Generated on phpdocker.io                          #
###############################################################################
version: "3.1"
services:

    mysql:
      image: mysql:5.6
      container_name: test-mysql
      working_dir: /application
      volumes:
        - .:/application
      environment:
        - MYSQL_ROOT_PASSWORD=admin123
        - MYSQL_DATABASE=test
        - MYSQL_USER=test
        - MYSQL_PASSWORD=test123
      ports:
        - "127.0.0.2:3306:3306"

    webserver:
      image: nginx:alpine
      container_name: test-webserver
      working_dir: /application
      volumes:
          - .:/application
          - ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
      ports:
       - "127.0.0.2:80:80"

    php-fpm:
      build: phpdocker/php-fpm
      container_name: test-php-fpm
      working_dir: /application
      volumes:
        - .:/application
        - ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

    phpmyadmin:
      image: phpmyadmin/phpmyadmin
      container_name: test-phpmyadmin
      environment:
        - PMA_HOST=mysql
        - PMA_USER=root
        - PMA_PASSWORD=admin123
      restart: always
      ports:
        - 127.0.0.2:8000:80
      volumes:
        - /sessions
      depends_on:
      - mysql

这里我把nginx的端口映射修改为了127.0.0.2:80,MySQL的端口映射修改为了127.0.0.2:3306,phpMyAdmin的端口映射为127.0.0.2:8000,然后保存,在此路径再次打开终端,先执行docker-compose down停止并删除此网站的所有docker容器(这并不会删除public以及phpdocker目录下的文件),然后再次执行docker-compose up -d,现在打开127.0.0.2:8000127.0.0.2,就可以分别访问phpmyadmin和我们的网站了:

结语:容器化技术可以帮助我们轻松便捷的配置软件开发和生产环境,解决开发机和生产机环境依赖及基础环境等问题,可以将软件和环境一起打包,并且相比传统虚拟机而言十分节省系统资源,详细的介绍请参考:What is docker?