摘要:但是如果是在下使用的話,問題不是很大,體驗(yàn)還是很完美的,也就搞定文件掛載,搞定公網(wǎng)私網(wǎng),忍受漫長的啟動過程。總之,不用那就是和自己過不去。創(chuàng)建項(xiàng)目為什么把創(chuàng)建項(xiàng)目放到第一個來說,是因?yàn)榭梢员苊庋芯繒r,無項(xiàng)目可用。
前言
我同事告訴我他的windows電腦裝不上homestead,我已經(jīng)有了在windwos下面折騰vagrant+virtual box+homestead的慘痛經(jīng)驗(yàn),然后偶然打開百度搜索了一下Laravel docker,嗯,不錯,找到了Laradock。搞起來,怕啥!
我的慘痛經(jīng)驗(yàn)Vagrant+Virtual box+Homestead是Laravel項(xiàng)目開發(fā)中大多數(shù)人的標(biāo)配,或者說是Web開發(fā)本地環(huán)境的標(biāo)配(還在使用XAMPP, Phpstudy等等,諸如此類的開發(fā)環(huán)境的人,請認(rèn)真看:-D)。
但是如果是在Linux下使用的話,問題不是很大,體驗(yàn)還是很完美的,也就搞定文件掛載,搞定公網(wǎng)私網(wǎng)IP,忍受漫長的啟動過程。
但是在Windows下面,簡直不要太難受,具體怎么難受,我大概是忘記了,但是依稀還記得,怎么裝也裝不上,怎么啟動也報(bào)錯,肯定是有的。再或者需要安裝個其他的軟件,比如,ElasticSearch 還需要手動安裝。
被這些事情搞到放棄的人,我也相信是有的。廢話少說,下面我們來看看如何使用Laradock。
這個問題問得好,首先,你不覺得這年頭不懂Docker就像鄉(xiāng)下來的?其次,自己百度一下什么是Docker,Docker都有哪些優(yōu)點(diǎn)??傊挥肔aradock那就是和自己過不去。
Laradock 基本情況Github地址:laradock/laradock
文檔地址:Laradock
安裝自行解決Docker安裝,此處給個文檔:Install
Linux:
git clone https://github.com/Laradock/laradock.git
cd laradock
cp env-example .env
docker-compose up -d nginx mysql phpmyadmin redis workspace
到這先停一停
Windows:
和Linux差不多
注:Windows用戶可能會遇到一個執(zhí)行startup.sh這個文件失敗的問題,導(dǎo)致nginx容器啟動不了,不要怕,我已經(jīng)遇到過了。Github Issue
解決辦法如下:
vim nginx/Dockerfile # 把下面這兩行注釋掉 ADD ./startup.sh /opt/startup.sh CMD ["/bin/bash", "/opt/startup.sh"] # 改成 CMD ["nginx"] # 暫時關(guān)閉 `Nginx SSl` 功能使用
官網(wǎng)介紹了三種使用方式,我們呢只考慮最后一種,多個項(xiàng)目共用一個Laradock,但是,我會把整個安裝遇到的問題都給你說明白。
假設(shè):我們有一臺剛剛裝好系統(tǒng),Docker,Git的電腦。
為什么把創(chuàng)建項(xiàng)目放到第一個來說,是因?yàn)榭梢员苊庋芯繒r,無項(xiàng)目可用。
cd laradock
docker-compose exec --user=laradock workspace bash (為什么要加--user = laradock,是因?yàn)闄?quán)限問題)
composer create-project --prefer-dist laravel/laravel blog 文檔:安裝Laravel,推薦使用 composer安裝
注:composer config -g repo.packagist composer https://packagist.phpcomposer.com Composer 中國鏡像
內(nèi)容比較多,看下面的shell
# 此時在workspace bash中 cd blog vim .env # 修改Mysql && Redis鏈接 DB_HOST=mysql REDIS_HOST=redis # 修改數(shù)據(jù)庫和用戶名:因?yàn)槲覀內(nèi)绻匆幌?laradock/.env 文件,我們就會知道默認(rèn)如下所示: MYSQL_VERSION=latest MYSQL_DATABASE=default MYSQL_USER=default MYSQL_PASSWORD=secret MYSQL_PORT=3306 # 至于如何修改成Homestead:Homestead,或者說,改了沒效果(我不會告訴你,我改了N多次也沒用)等等這些問題,我們多帶帶討論運(yùn)行項(xiàng)目
Nginx 配置
# 重新開一個終端,也可以先退出workspace bash cd nginx/sites/ cp laravel.conf.example xxx.conf vim blog.conf # 修改Server name && root && Log Path :這個你自己應(yīng)該能搞定 server_name blog.com; root /var/www/blog/public; ... error_log /var/log/nginx/blog_error.log; access_log /var/log/nginx/blog_access.log; # 注意root只修改/var/www/blog/public
讓你的Nginx容器加載你的配置
# 在Laradock目錄下 docker-compose exec nginx nginx -t docker-compose exec nginx nginx -s reload
綁定Host
sudo vim etc/hosts # ADD 127.0.0.1 blog.com
打開瀏覽器,訪問 blog.com
測試數(shù)據(jù)庫鏈接,
進(jìn)入 docker-compose exec --user=laradock workspace bash
cd blog
php artisan make:auth
php artisan migrate
報(bào)錯了,GitHub Issue,解決辦法如下:GitHub Issue
cd laradock # 打開mysql/my.cnf vim mysql/my.cnf # 增加如下內(nèi)容: # default_authentication_plugin=mysql_native_password # 執(zhí)行如下命令 docker-compose down # 刪除 laradock/.env 文件中 `DATA_PATH_HOST` 變量指定的目錄下的文件(不刪除,如何build都不起作用) sudo rm -rf ~/.laradock/data docker-compose up -d nginx mysql phpmyadmin redis workspace docker-compose exec --user=laradock workspace bash cd xxxx php artisan migrate
測試 Redis 鏈接 Laravel Redis
composer require predis/predis
在Home控制器添加Redis set方法
# use IlluminateSupportFacadesRedis; public function index() { Redis::set("test", "test"); return view("home"); }
完成注冊,查看Redis 記錄
OK,至此,我們就已經(jīng)搞定運(yùn)行項(xiàng)目了。
Laradock Mysql的一些事
如何修改默認(rèn)用戶名,默認(rèn)數(shù)據(jù)庫
cd laradock vim .env # 修改 `MYSQL_DATABASE` && `MYSQL_USER` 如 圖 1 # 刪除 laradock/.env 文件中 `DATA_PATH_HOST` 變量指定的目錄下的文件 docker-compose down sudo rm -rf ~/.laradock/data docker-compose up -d nginx mysql phpmyadmin redis workspace
如何創(chuàng)建數(shù)據(jù)庫
# 手動 (一般是這種方式) cd laradock/mysql/docker-entrypoint-initdb.d cp createdb.sql.example createdb.sql vim createdb.sql # 刪除注釋 CREATE DATABASE IF NOT EXISTS `blog` COLLATE "utf8_general_ci" ; GRANT ALL ON `blog`.* TO "homestead"@"%" ; FLUSH PRIVILEGES ; cd laradock docker-compose exec mysql bash mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql # 自動是有條件的,條件如下: # this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found. (試過了,不刪除`DATA_PATH_HOST`是不會執(zhí)行滴)可能會遇到的問題
Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
# 切換到root用戶修改配置sysctl.conf vi /etc/sysctl.conf # 添加下面配置: vm.max_map_count=655360 # 執(zhí)行命令 sysctl -p 重新啟動elasticsearch
至此,就差不多了,遇到問題,歡迎留言!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29735.html
摘要:但是如果是在下使用的話,問題不是很大,體驗(yàn)還是很完美的,也就搞定文件掛載,搞定公網(wǎng)私網(wǎng),忍受漫長的啟動過程??傊?,不用那就是和自己過不去。創(chuàng)建項(xiàng)目為什么把創(chuàng)建項(xiàng)目放到第一個來說,是因?yàn)榭梢员苊庋芯繒r,無項(xiàng)目可用。 前言 我同事告訴我他的windows電腦裝不上homestead,我已經(jīng)有了在windwos下面折騰vagrant+virtual box+homestead的慘痛經(jīng)驗(yàn),然后...
摘要:中文文檔和官方文檔不一致的地方為了方便,本中文文檔使用構(gòu)建,并移除了一些自己認(rèn)為可能很少用得到的內(nèi)容極少,其余基本上是和官方文檔保持一致。 為啥翻譯它因?yàn)樽约涸趯W(xué)習(xí)并使用Laradock,就想著做一件一勞永逸的事把官方的英文文檔拿下了翻譯一下,也方便已經(jīng)或者準(zhǔn)備使用Laradock作為開發(fā)環(huán)境的同學(xué)查看。 準(zhǔn)確性和完整度目前文檔基本完成了75%的翻譯工作,源文檔取自Laradock官...
摘要:中文文檔和官方文檔不一致的地方為了方便,本中文文檔使用構(gòu)建,并移除了一些自己認(rèn)為可能很少用得到的內(nèi)容極少,其余基本上是和官方文檔保持一致。 為啥翻譯它因?yàn)樽约涸趯W(xué)習(xí)并使用Laradock,就想著做一件一勞永逸的事把官方的英文文檔拿下了翻譯一下,也方便已經(jīng)或者準(zhǔn)備使用Laradock作為開發(fā)環(huán)境的同學(xué)查看。 準(zhǔn)確性和完整度目前文檔基本完成了75%的翻譯工作,源文檔取自Laradock官...
閱讀 2149·2023-04-25 18:49
閱讀 1854·2019-08-30 14:02
閱讀 2657·2019-08-29 17:24
閱讀 3334·2019-08-28 18:10
閱讀 2938·2019-08-28 18:03
閱讀 502·2019-08-26 12:01
閱讀 3322·2019-08-26 11:31
閱讀 1442·2019-08-26 10:29