使用 Docker 环境来开发 PHP,Laradock 系列 1
当你准备开发一个 php 应用的时候,你可能会考虑安装这些本地 web 服务器:xampp
,wamp
, laragon
xampp: 如果你是一个 php web 应用程序的初级开发者,这可能是你首选要使用的环境。 xampp 只提供了最基本的 php web 应用服务,其中 apache2 作为服务器,mysql 作为数据库,还有 phpmyadmin 这样的网页端的数据库管理工具。
wamp:它类似于 xampp,区别在于它有 virtualhost 管理器,可用于使您的本地网站 url 可自定义,看起来更漂亮。
laragon:它类似于 wamp,但它使用了一些主流服务来支持您的开发,如 redis
、memcached
、邮件捕捉器等等。这是我要告诉你的第二个最完整的本地 web 服务器解决方案。
这些本地 web 服务器解决方案是好的,但如果我想。。。更多?
基于 docker 的即用型解决方案
认识 laradock, 这是一个基于 docker
的完整的 php 开发环境,它预先配置好了,可以开箱即用, 在你的机器上使用 elasticsearch
, selenium
, sonarqube
等,一些主流的服务不再是梦想。
- 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:\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
原文地址:https://dev.to/dendihandian/laradock-a-p...
译文地址:https://learnku.com/php/t/42973
更多学习内容请访问:
腾讯t3-t4标准精品php架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)
推荐阅读
-
使用 Docker 来开发 PHP,Laradock 系列 3:Mailhog
-
使用 Docker 秒速搭建多版本 PHP 开发环境
-
在AIX Version 5.3中使用Java和PHP技术进行开发,第1部分:设置Java环境_PHP教程
-
网站开发系列1——服务器环境搭建,网站开发搭建_PHP教程
-
使用 Docker 环境来开发 PHP,Laradock 系列 1
-
如何使用Docker部署PHP开发环境
-
使用 Docker 来开发 PHP,Laradock 系列 2:Redis
-
如何使用ESXi,vagrant,docker,virtualbox搭建php,mysql开发测试环境
-
在AIX Version 5.3中使用Java和PHP技术进行开发,第1部分:设置Java环境
-
PHP 开发环境的选择、建立及使用(1)