zoukankan      html  css  js  c++  java
  • 使用 Docker 环境来开发 PHP,Laradock 系列 1

    当你准备开发一个 PHP 应用的时候,你可能会考虑安装这些本地 Web 服务器:XAMPPWAMP , Laragon

    XAMPP: 如果你是一个 PHP Web 应用程序的初级开发者,这可能是你首选要使用的环境。 XAMPP 只提供了最基本的 PHP Web 应用服务,其中 Apache2 作为服务器,MySQL 作为数据库,还有 phpMyAdmin 这样的网页端的数据库管理工具。

     

    WAMP:它类似于 XAMPP,区别在于它有 virtualhost 管理器,可用于使您的本地网站 URL 可自定义,看起来更漂亮。

    Laragon:它类似于 WAMP,但它使用了一些主流服务来支持您的开发,如 RedisMemcached、邮件捕捉器等等。这是我要告诉你的第二个最完整的本地 Web 服务器解决方案。

    这些本地 web 服务器解决方案是好的,但如果我想。。。更多?

    基于 Docker 的即用型解决方案

    认识 Laradock, 这是一个基于 Docker 的完整的 PHP 开发环境,它预先配置好了,可以开箱即用, 在你的机器上使用 ElasticsearchSeleniumSonarqube 等,一些主流的服务不再是梦想。

    - projects
      |_ my-awesome-laravel-app 

    现在我们从 Laradock 的官方 GitHub 地址下载或者使用 git 克隆它,并把它放置在 projects 目录下。

    - projects
      |_ my-awesome-laravel-app 
      |_ laradock
    

      

    在 laradock 目录中,你可以找到一个 env-example 文件。克隆它到新的文件中,并重命名为.env

    - projects
      |_ my-awesome-laravel-app 
      |_ laradock
         |_ ...
         |_ env-example
         |_ .env
    

      

    我们将为我们出色的 Laravel 应用使用必要的容器,分别是 nginx,mysql 或许还有 phpMyAdmin。

     

    设置 Nginx

    前往 laradock > nginx > sites 目录。你可以发现一个 laravel.conf.example 文件,克隆到新文件

    并将其重命名为 my-awesome-laravel-app.local.conf 的新文件中(可以给该文件起任何名字,但要确保它以.conf 结尾)。

    - projects
      |_ my-awesome-laravel-app 
      |_ laradock
         |_ ...
         |_ nginx
            |_ sites
               |_ ...
               |_ my-awesome-laravel-app.local.conf
               |_ laravel.conf.example
         |_ env-example
         |_ .env
    

      

    在 my-awesome-laravel-app.local.conf 文件中,将 server_name 更改为所需的 URL,将 root 更改为 laravel 应用程序的公共文件夹路径。

    server {
    
        ...
    
        server_name my-awesome-laravel-app.local;
        root /var/www/my-awesome-laravel-app/public;
        index index.php index.html index.htm;
    
        ...
    }
    

      

    就是 nginx 啊!

     

    设置 MySQL 和 PhpMyAdmin

    不需要特别的设置,但我建议对 MySQL 使用 5.7 版本,因为上次我使用最新版本尝试时遇到了问题。

    版本,请将 Laradock /.env 文件中的 MYSQL_VERSION 值从最新更改为 5.7。

    可以在此处使用的预配置的用户,代码如下:

    Root User:

    • username: root | password: root

    Non-Root User:

    • username: default | password: secret

    设置您的 Laravel 应用程序的.env 文件

    除非您正确配置 Laravel 应用程序的 .env 文件,否则您的应用程序将无法运行。需要注意的是 DB_HOST,其值必须是 mysql 而不是 localhost。下面是您必须检查的 env 参数:

    APP_NAME=Laravel
    APP_ENV=local
    APP_KEY=base64:WqvIsN6XYA9NMHjTWIthKC1Mdi+WWi7/iRtz/GnibLQ=
    APP_DEBUG=true
    APP_URL=http://my-awesome-laravel-app.local
    
    LOG_CHANNEL=stack
    
    DB_CONNECTION=mysql
    DB_HOST=mysql
    DB_PORT=3306
    DB_DATABASE=your_awesome_database
    DB_USERNAME=default
    DB_PASSWORD=secret
    
    ...
    

      

    运行容器

    如果你在你的机器上使用 apache2 或 mysql 这样的服务(使用 8080,80,3306 端口),请在运行 laradock 的容器之前先停止它们。

    通过使用你喜欢的命令行界面(顺便说一下,我正在使用 Hyper。这是一个很酷的 CLI),进入 laradock 目录,并执行这个 docker-compose 命令:

    docker-compose up -d nginx mysql phpmyadmin
    

      

    上面的命令将只拉取(pull)和构建(build)使用过的容器(nginx、mysql、phpmyadmin)和名为 workspace 的基本 laradock 容器。第一次拉取和构建过程将需要很长时间(并且需要连接你的互联网)。

    完成后,通过执行以下命令,你可以检查容器状态是否运行了:

    docker-compose ps
    

      

    现在,你要做的事就是添加 my-awesome-laravel-app.local 域名到你的 hosts 文件。对于 Windows,它应该在 C:WindowsSystem32driversetchosts,而对于基于 linux 的,它应该在 /etc/hosts

    ...
    
    127.0.0.1   my-awesome-laravel-app.local
    
    ...
    

      

    现在,你可以通过在浏览器上打开 http://my-awesome-laravel-app.local 来访问你的 laravel 应用程序。

    使用 phpMyAdmin 创建数据库

    不要忘记使用 phpMyAdmin 创建 your_awesome_database。它应该是可以在 http://localhost:8080 中访问的。你可以使用上面的任意给定用户凭证进行登录,并确保使用 mysql 而不是 localhost 来填写 server 表单。

    进入 Workspace 容器的 bash

    你可能会忘记在 laravel app 中运行 composer install。不要担心,你可以使用 workspace bash,它包含 laravel app 所需的所有命令行工具。要进入 bash,请确保你是在你的 CLI 进入 laradock 目录,并执行这个 docker-compose 命令:

    docker-compose exec --user=laradock workspace bash

    目录的起始点应该在 /var/www/,你的 laravel app 也应该在这里。你可以去那里执行 composer install 命令和一些 artisan 命令,比如 php artisan migrateor 或者 可以使用 composer 的 composer create-project laravel/laravel my-another-laravel-app 命令创建另一个项目。

    有很多 laradock 服务,我稍后会讲到,但你可以自己去探索。玩得开心!

    laravel version used: 5.5 LTS

     

    原文地址:https://dev.to/dendihandian/laradock-a-p...
    译文地址:

    更多学习内容请访问:

    腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)

  • 相关阅读:
    后端框架:SpringBoot+Mybatis+Dubbox(zookeeper+dubbo-admin)
    java代码执行mysql存储过程
    SpringBoot整合Junit
    摘要算法之MD5
    java如何控制下载的文件类型是txt还是doc?如何将文件名返回给前端?Content-disposition
    Android Atuido 连接模拟器
    verilog CRC 校验
    Altium Designer(AD软件)如何导出gerber文件
    SpringBoot集成mybatisplus
    C++ | 通过智能指针实现资源管理
  • 原文地址:https://www.cnblogs.com/a609251438/p/12673396.html
Copyright © 2011-2022 走看看