修改laradock端口,讓valet和laradock完美共存

valet是mac下開發php、laravel的極簡環境,docker是一種趨勢。

本地我先搭好了valet的環境,
homebrew安裝了php7.1、mysql5.7。
編譯安裝了redis、swoole、yar。

幾個常用命令

php -m //
php -i |grep php.ini  //查看php.ini位置
php --ri swoole   //讀取swoole信息

redis-cli //用于啟動redis客戶端

brew services start mysql  //brew 開啟mysql
brew services stop mysql  //關閉
brew services restart mysql  // 重啟

mysql -uroot -p  //進入命令行mysql 

學習docker,搭了一個mysql8+adminer的環境,但是開發還是覺得laradock比較省心好用功能齊全。

安裝laradock

git clone https://github.com/Laradock/laradock.git laradock

進入 laradock 目錄將 env-example 重命名為 .env:

cd laradock
cp env-example .env

在.env里添加

DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

運行容器

docker-compose up -d nginx mysql redis beanstalkd

建立目錄鏈接

添加代碼目錄:創建一個與 laradock 同級的 code 目錄,
編輯 .env 中的 APP_CODE_PATH_HOST 配置項,與新建的目錄名保持一致。

# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../Code/

這步是建立鏈接,使該目錄與虛擬容器中的/var/www/目錄關聯,所有該目錄下的文件,都會共享在容器中的/var/www/目錄下。

確認nginx成功啟動

查看laradock/nginx/sites/default.conf為

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    server_name localhost;
    root /var/www/public;     //訪問入口目錄
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

在code目錄下新建public目錄,然后添加index.php文件,里面輸出php信息。

<?php
echo phpinfo();

瀏覽器訪問localhost,會出現phpinfo界面,如果訪問不到,執行下面命令

docker-compose up -d nginx
docker-compose restart nginx

這時候其實可能不那么順利,因為這時候valet和laradock有些端口是沖突的。主要就mysql和nginx的端口。還有redis。這時候先關掉valet就好了

valet stop

修改mysql端口

在docker-compose.yml文件
command+ f 搜索mysql

### MySQL ################################################
    mysql:
      build:
        context: ./mysql
        args:
          - MYSQL_VERSION=${MYSQL_VERSION}
      environment:
        - MYSQL_DATABASE=${MYSQL_DATABASE}
        - MYSQL_USER=${MYSQL_USER}
        - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
        - TZ=${WORKSPACE_TIMEZONE}
      volumes:
        - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
        - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
      ports:
      #  - "${MYSQL_PORT}:3306"  #修改這一行,我將其注釋掉了
        - "3308:3306"   #改成不沖突的端口
      networks:
        - backend

command+ f 搜索nginx

### NGINX Server #########################################
   nginx:
     build:
       context: ./nginx
       args:
         - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
         - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
     volumes:
       - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
       - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
       - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
     ports:
       # - "${NGINX_HOST_HTTP_PORT}:80"  #修改這一行
       - "9999:80"     #改為不沖突的端口
       - "${NGINX_HOST_HTTPS_PORT}:443"
     depends_on:
       - php-fpm
     networks:
       - frontend
       - backend

command+ f 搜索redis

### Redis ################################################
    redis:
      build: ./redis
      volumes:
        - ${DATA_PATH_HOST}/redis:/data
      ports:
        #- "${REDIS_PORT}:6379"    #注釋掉這行
        - "6378:6379"     #改為不沖突的端口
      networks:
        - backend

重啟容器

docker-compose up -d nginx mysql redis 
docker-compose restart nginx
docker-compose restart mysql
docker-compose restart redis

查看容器

?  docker-compose ps
?
           Name                          Command               State                     Ports
-----------------------------------------------------------------------------------------------------------------
laradock_beanstalkd_1         /usr/bin/beanstalkd              Up      0.0.0.0:11300->11300/tcp
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp
laradock_mysql_1              docker-entrypoint.sh mysqld      Up      0.0.0.0:3308->3306/tcp
laradock_nginx_1              nginx                            Up      0.0.0.0:443->443/tcp, 0.0.0.0:9999->80/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp
laradock_redis_1              docker-entrypoint.sh redis ...   Up      0.0.0.0:6378->6379/tcp
laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp
?  

瀏覽器使用valet方式訪問


valet方式訪問

瀏覽器訪問laradock
上一步將laradock的80端口映射到本機的9999端口了


laradock訪問

laradock mysql8.0 navcat連接

這時候使用navicat連接mysql還是不行的,因為mysql8修改了加密方式,依次執行如下命令

docker-compose exec mysql bash
root@e8d56a0bad78:/  mysql -uroot -p
mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
mysql> ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

navicat連接成功


laradock-mysql

本地的mysql5.7依舊正常。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,791評論 6 545
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,795評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,943評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,057評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,773評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,106評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,082評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,282評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,793評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,507評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,741評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,220評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,929評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,325評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,661評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,482評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,702評論 2 380

推薦閱讀更多精彩內容

  • 一、在Docker中安裝環境(PHP、Nginx、MySQL、Redis、memcached、MongoDB) 1...
    SuperGu閱讀 2,262評論 0 1
  • git clone https://github.com/laradock/laradock.git 例子:運行 ...
    啊吖優品閱讀 3,459評論 2 6
  • 轉載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,524評論 0 120
  • 作者:塵晨同學01不要小看那些被稱為“壞同學”的人。記得之前在一篇報道中提到,一位重點大學畢業生畢業后去一家公司應...
    塵晨同學閱讀 250評論 0 0
  • 在所有情緒里,我最不喜歡的就是恐懼。 開心是最舒服的,什么笑話說出來大家哈哈一樂就過了,;憤怒起來摔桌子砸碗,或開...
    謝曼殊閱讀 442評論 2 4