使用 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:\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...
譯文地址:

更多學習內容請訪問:

騰訊T3-T4標准精品PHP架構師教程目錄大全,只要你看完保證薪資上升一個台階(持續更新)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM