摘要:但是如果是在下使用的話,問題不是很大,體驗還是很完美的,也就搞定文件掛載,搞定公網私網,忍受漫長的啟動過程。總之,不用那就是和自己過不去。創建項目為什么把創建項目放到第一個來說,是因為可以避免研究時,無項目可用。
前言
我同事告訴我他的windows電腦裝不上homestead,我已經有了在windwos下面折騰vagrant+virtual box+homestead的慘痛經驗,然后偶然打開百度搜索了一下Laravel docker,嗯,不錯,找到了Laradock。搞起來,怕啥!
我的慘痛經驗Vagrant+Virtual box+Homestead是Laravel項目開發中大多數人的標配,或者說是Web開發本地環境的標配(還在使用XAMPP, Phpstudy等等,諸如此類的開發環境的人,請認真看:-D)。
但是如果是在Linux下使用的話,問題不是很大,體驗還是很完美的,也就搞定文件掛載,搞定公網私網IP,忍受漫長的啟動過程。
但是在Windows下面,簡直不要太難受,具體怎么難受,我大概是忘記了,但是依稀還記得,怎么裝也裝不上,怎么啟動也報錯,肯定是有的。再或者需要安裝個其他的軟件,比如,ElasticSearch 還需要手動安裝。
被這些事情搞到放棄的人,我也相信是有的。廢話少說,下面我們來看看如何使用Laradock。
這個問題問得好,首先,你不覺得這年頭不懂Docker就像鄉下來的?其次,自己百度一下什么是Docker,Docker都有哪些優點??傊?,不用Laradock那就是和自己過不去。
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用戶可能會遇到一個執行startup.sh這個文件失敗的問題,導致nginx容器啟動不了,不要怕,我已經遇到過了。Github Issue
解決辦法如下:
vim nginx/Dockerfile # 把下面這兩行注釋掉 ADD ./startup.sh /opt/startup.sh CMD ["/bin/bash", "/opt/startup.sh"] # 改成 CMD ["nginx"] # 暫時關閉 `Nginx SSl` 功能使用
官網介紹了三種使用方式,我們呢只考慮最后一種,多個項目共用一個Laradock,但是,我會把整個安裝遇到的問題都給你說明白。
假設:我們有一臺剛剛裝好系統,Docker,Git的電腦。
為什么把創建項目放到第一個來說,是因為可以避免研究時,無項目可用。
cd laradock
docker-compose exec --user=laradock workspace bash (為什么要加--user = laradock,是因為權限問題)
composer create-project --prefer-dist laravel/laravel blog 文檔:安裝Laravel,推薦使用 composer安裝
注:composer config -g repo.packagist composer https://packagist.phpcomposer.com Composer 中國鏡像
內容比較多,看下面的shell
# 此時在workspace bash中 cd blog vim .env # 修改Mysql && Redis鏈接 DB_HOST=mysql REDIS_HOST=redis # 修改數據庫和用戶名:因為我們如果看一下 laradock/.env 文件,我們就會知道默認如下所示: MYSQL_VERSION=latest MYSQL_DATABASE=default MYSQL_USER=default MYSQL_PASSWORD=secret MYSQL_PORT=3306 # 至于如何修改成Homestead:Homestead,或者說,改了沒效果(我不會告訴你,我改了N多次也沒用)等等這些問題,我們多帶帶討論運行項目
Nginx 配置
# 重新開一個終端,也可以先退出workspace bash cd nginx/sites/ cp laravel.conf.example xxx.conf vim blog.conf # 修改Server name && root && Log Path :這個你自己應該能搞定 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
測試數據庫鏈接,
進入 docker-compose exec --user=laradock workspace bash
cd blog
php artisan make:auth
php artisan migrate
報錯了,GitHub Issue,解決辦法如下:GitHub Issue
cd laradock # 打開mysql/my.cnf vim mysql/my.cnf # 增加如下內容: # default_authentication_plugin=mysql_native_password # 執行如下命令 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,至此,我們就已經搞定運行項目了。
Laradock Mysql的一些事
如何修改默認用戶名,默認數據庫
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
如何創建數據庫
# 手動 (一般是這種方式) 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`是不會執行滴)可能會遇到的問題
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 # 執行命令 sysctl -p 重新啟動elasticsearch
至此,就差不多了,遇到問題,歡迎留言!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29735.html
摘要:但是如果是在下使用的話,問題不是很大,體驗還是很完美的,也就搞定文件掛載,搞定公網私網,忍受漫長的啟動過程??傊挥媚蔷褪呛妥约哼^不去。創建項目為什么把創建項目放到第一個來說,是因為可以避免研究時,無項目可用。 前言 我同事告訴我他的windows電腦裝不上homestead,我已經有了在windwos下面折騰vagrant+virtual box+homestead的慘痛經驗,然后...
摘要:中文文檔和官方文檔不一致的地方為了方便,本中文文檔使用構建,并移除了一些自己認為可能很少用得到的內容極少,其余基本上是和官方文檔保持一致。 為啥翻譯它因為自己在學習并使用Laradock,就想著做一件一勞永逸的事把官方的英文文檔拿下了翻譯一下,也方便已經或者準備使用Laradock作為開發環境的同學查看。 準確性和完整度目前文檔基本完成了75%的翻譯工作,源文檔取自Laradock官...
摘要:中文文檔和官方文檔不一致的地方為了方便,本中文文檔使用構建,并移除了一些自己認為可能很少用得到的內容極少,其余基本上是和官方文檔保持一致。 為啥翻譯它因為自己在學習并使用Laradock,就想著做一件一勞永逸的事把官方的英文文檔拿下了翻譯一下,也方便已經或者準備使用Laradock作為開發環境的同學查看。 準確性和完整度目前文檔基本完成了75%的翻譯工作,源文檔取自Laradock官...
閱讀 2137·2023-04-25 18:49
閱讀 1840·2019-08-30 14:02
閱讀 2643·2019-08-29 17:24
閱讀 3323·2019-08-28 18:10
閱讀 2926·2019-08-28 18:03
閱讀 488·2019-08-26 12:01
閱讀 3309·2019-08-26 11:31
閱讀 1409·2019-08-26 10:29