修改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阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容

  • 一、在Docker中安装环境(PHP、Nginx、MySQL、Redis、memcached、MongoDB) 1...
    SuperGu阅读 2,234评论 0 1
  • git clone https://github.com/laradock/laradock.git 例子:运行 ...
    啊吖优品阅读 3,439评论 2 6
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,477评论 0 120
  • 作者:尘晨同学01不要小看那些被称为“坏同学”的人。记得之前在一篇报道中提到,一位重点大学毕业生毕业后去一家公司应...
    尘晨同学阅读 237评论 0 0
  • 在所有情绪里,我最不喜欢的就是恐惧。 开心是最舒服的,什么笑话说出来大家哈哈一乐就过了,;愤怒起来摔桌子砸碗,或开...
    谢曼殊阅读 426评论 2 4