使用 Docker 环境来开发 PHP,Laradock 系列 1:PHP 的好朋友

PHP

当你准备开发一个 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 等,一些主流的服务不再是梦想。

设置 Laradock 用于本地开发

在我们使用 Laradock 之前,请确保您的系统已经安装了 docker 和 docker-compose 。任何主流的操作系统 (Linux, Windows, MacOS) 都支持 docker

假设你已经有了自己的 Laravel 应用程序,并且把它放置在 projects 目录下。

- 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版本,因为上次我使用最新版本尝试时遇到了问题。要更改MySQL版本,请将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

...

运行容器

如果你在你的机器上使用apache2mysql这样的服务(使用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:\Windows\System32\drivers\etc\hosts,而对于基于 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
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

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

译文地址:https://learnku.com/php/t/42973

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 4

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!