Code前端首页关于Code前端联系我们

DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)全功能LNMP一键安装程序

terry 2年前 (2023-09-28) 阅读数 72 #未命名

DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)全功能LNMP一键安装程序LNMP一键安装程序安装程序。 * 共存,可选开关(~~、~~、)

  • 支持绑定任意多个域名
  • 支持HTTPS和源配置HTTP、HTTP/2我的数据SQL文件、日志文件可直接在主机中编辑查看
  • 内置完整的PHP扩展安装命令
  • 默认支持、redisx调试O、wSwoole等常用流行扩展,根据环境灵活配置。
  • 具备在线数据库管理程序 PHPMYADMIN 和 PHPREDISADMIN
  • 在实际项目中应用,确保 100%可用 、Linux、一次性配置、O Mac 可用 1 。目录结构
    /
    ├── conf                        配置文件目录
    │   ├── conf.d                  Nginx用户站点配置目录
    │   ├── nginx.conf              Nginx默认配置文件
    │   ├── mysql.cnf               MySQL用户配置文件
    │   ├──             PHP-FPM配置文件(部分会覆盖配置)
    │   └──                  PHP默认配置文件
    ├── Dockerfile                  PHP镜像构建文件
    ├── extensions                  PHP扩展源码包
    ├── log                         日志目录
    ├── mysql                       MySQL数据目录
    ├── docker-compose-sample.yml   Docker 服务配置示例文件
    ├──                   环境配置示例文件
    └── www                         PHP代码目录
    

    结构图:

    DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)全功能LNMP一键安装程序

    2.快速使用

    1. 本地安装 gitdockerdocker-compose$ git clone
    2. 项目:on If不是用户root,您还需要将当前用户添加到Docker‸用户组:‸文件(Windows请使用复制命令)来运行:
      $ cd dnmp
      $ cp env.sample .env
      $ cp docker-compose-sample.yml 
      $ docker-compose up
      

      注意:如果您在Windows上安装360Security Guard,请先退出,否则安装过程中可能会停止Docker账户创建过程,导致启动时文件共享失败;

    3. 浏览器访问:

    两个站点使用相同的 PHP 代码:./www/localhost/

    要编辑端口、日志文件位置等,请编辑 **.env** 文件,然后重建:

    $ docker-compose build php54    # 重建单个服务
    $ docker-compose build          # 重建全部服务

    3。切换 PHP 版本

    默认情况下,我们同时创建 三个 PHP 版本的容器,

    切换 PHP 只需要在相应网站编辑 gin_gi‼fa 选项即可,

    示例 http: //localhost 使用 Nginx 配置:

        fastcgi_pass   php54:9000;
    

    要使用它,请将其编辑为:

        fastcgi_pass   php72:9000;
    

    然后 重新启动 Nginx⸸。

    $ docker exec -it dnmp_nginx_1 nginx -s reload

    4。添加快捷命令

    在开发过程中,我们经常可以使用 docker exec -it 来切换到容器。这是创建常用命令别名的轻松方法。

    打开 ~/.bashrc 并添加:

    alias dnginx='docker exec -it dnmp_nginx_1 /bin/sh'alias dphp72='docker exec -it dnmp_php72_1 /bin/bash'alias dphp56='docker exec -it dnmp_php56_1 /bin/bash'alias dphp54='docker exec -it dnmp_php54_1 /bin/bash'alias dmysql='docker exec -it dnmp_mysql_1 /bin/bash'alias dredis='docker exec -it dnmp_redis_1 /bin/sh'

    5。使用Log

    生成的Log文件的位置取决于conf下各个日志配置的值。

    5.1 Nginx协议

    Nginx协议是我们最常使用的协议,所以我们将其单独存放在根目录log

    log将目录/var/log/nginx映射到Nginx容器目录中,所以在需要打印日志的Nginx配置文件中,我们需要配置 /var/log/nginx 目录如:

    error_log  /var/log/nginx/nginx.localhost.error.log  warn;
    

    5.2 PHP-FPM 协议

    大多数情况下,PHP-FPM 日志会发送到 Nginx 日志,因此无需额外配置。

    另外,建议直接在PHP中打开错误日志:

    error_reporting(E_ALL);ini_set('error_reporting', 'on');ini_set('display_errors', 'on');

    如果确实需要,可以按照说明打开(在容器中)。

    1. 进入容器,创建日志文件并编辑权限:
      $ docker exec -it dnmp_php_1 /bin/bash
      $ mkdir /var/log/php
      $ cd /var/log/php
      $ touch 
      $ chmod a+w
    2. 打开并编辑主机上的 PHP-FPM 配置文件conf/,找到以下行,取消注释并更改值为:
      php_admin_value[error_log] = /var/log/php/
      
    3. 重新启动 PHP-FPM 容器。 ?因此,我们将MySQL协议放在和数据同一个目录下,即项目的mysql目录下,对应/var/lib/mysql/目录在容器目录中。 。
      slow-query-log-file     = /var/lib/mysql/mysql.slow.log
      log-error               = /var/lib/mysql/mysql.error.log

      以上是日志文件配置。

      6。使用Composer

      我们建议在主机HOST中使用Composer,这样PHP容器就不会长大。 ? :

      composer () {
          tty=
          tty -s && tty=--tty
          docker run \
              $tty \
              --interactive \
              --rm \
              --user $(id -u):$(id -g) \
              --volume ~/dnmp/composer:/tmp \
              --volume /etc/passwd:/etc/passwd:ro \
              --volume /etc/group:/etc/group:ro \
              --volume $(pwd):/app \
              composer "$@"
      }
      
      
    4. 使文件生效:
      source ~/.bashrc
      
    5. 可以在主机上任意目录下使用composer:
      cd ~/dnmp/www/
      composer create-project yeszao/fastphp project --no-dev
      
    6. (可选)如果提示依赖依赖,请使用 --ignore-platform-req -no -脚本关闭依赖性检测。
    7. (可选)第一次使用composer时会在~/dnmp/composer目录下生成一个文件。在此文件中,您可以输入国内仓库,例如:
      {
          "config": {},
          "repositories": {
              "packagist": {
                  "type": "composer",
                  "url": ""
              }
          }
      }
      
      

    7。数据库管理

    本项目默认设置phpMyAdmin用于MySQL在线管理和phpRedis在线管理和phpRedis根据需要在线删除。

    7.1 phpMyAdmin 3306

  • 用户名:(在 phpmyadmin 界面手动输入)
  • 密码:(在 phpmyadmin 界面手动输入)

    管理地址 repedphp❙7.2 主机的端口映射容器 phpRedisAdmin 为: 8081,所以主机上访问phpMyAdmin的地址为:

    http://localhost:8081
    

    Redis连接信息如下:

    • 主机:(本项目的Redis容器网络)❙❀端口:6379

    8。在正式环境中安全使用

    在正式环境中使用请:

    1. 关闭 XDebug
  • 版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    热门