當你准備開發一個 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架構師教程目錄大全,只要你看完保證薪資上升一個台階(持續更新)
