docker搭建laravel开发环境lnmp

之前学习laravel的时候跟着官方文档搭建了homestead 环境,无奈换了乞丐版本的mac之后,再想跑个虚拟机简直是妄想,放弃了phpstorm和homestead,现在用 vscode + docker,竟然异常丝滑!记录一下docker搭建的laravel开发环境,以及如何配置 vscode 调试php代码

LNMP搭建

  • Mysql

    www.runoob.com/docker/docker-insta...

    docker pull mysql:5.7
    docker run -itd --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password mysql:5.7
  • php

    www.runoob.com/docker/docker-insta...

    docker pull php:7.3-fpm
    docker run --name php73-fpm -v ~/Code/php:/www -d php:7.3-fpm
  • nginx

    www.runoob.com/docker/docker-insta...

    docker pull nginx:1.19
    docker run --name nginx19 -p 8080:80 -d \
      -v ~/Code/php:/usr/share/nginx/html:ro \
      -v ~/Code/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
      --link php73-fpm:php \
      nginx:1.19
  • nginx 配置文件

    server {
      listen       80;
      server_name  usercenter.dev.com;
    
      location / {
          #/usr/share/nginx/html/123u-usercenter/public 是nginx对应的docker里面的项目地址
          root   /usr/share/nginx/html/123u-usercenter/public;
          try_files $uri $uri/ /index.php?$query_string;
          index  index.html index.htm index.php;
      }
    
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   /usr/share/nginx/html;
      }
    
      location ~ \.php$ {
          fastcgi_pass   php:9000;
          fastcgi_index  index.php;
          # /www/123u-usercenter/public 是php对应的docker里面的项目地址
          fastcgi_param  SCRIPT_FILENAME /www/123u-usercenter/public/$fastcgi_script_name;
          fastcgi_param  APP_ENV dev;
          include        fastcgi_params;
          fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
          fastcgi_param  PATH_INFO  $fastcgi_path_info;
          fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
      }
    }

docker ubuntu 切换软件源

sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
apt clean
apt update

安装扩展

  • 安装 composer

    curl -sS https://getcomposer.org/installer | php --install-dir=/usr/bin --filename=composer
  • 安装 gd 扩展

    apt install -y sendmail libpng-dev
    docker-php-ext-install gd
  • 安装 zip 扩展

    apt install zlib1g-dev
    apt install libzip-dev
    docker-php-ext-install zip
  • 安装 ldap 扩展

    apt-get install libldap2-dev -y
    rm -rf /var/lib/apt/lists/*
    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/
    docker-php-ext-install ldap
  • 安装 pdo 扩展

    docker-php-ext-install pdo pdo_mysql

配置 xdebug

docker 安装 xdebug

pecl install xdebug
echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini
echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini
echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini

vscode 配置文件

/www/123u-usercenter 是php对应的docker里面的项目地址
/Users/tt/Code/php/123u-usercenter 是本机对应的项目的地址
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "/www/123u-usercenter": "/Users/tt/Code/php/123u-usercenter"
            },
            "xdebugSettings": {
                "max_data": 65535,
                "show_hidden": 1,
                "max_children": 100,
                "max_depth": 5
            }
        }
    ]
}

xdebug.ini

xdebug.remote_enable=1
xdebug.remote_host=docker.for.mac.localhost
xdebug.remote_connect_back=0
xdebug.remote_autostart=1
xdebug.remote_connect_back=0
xdebug.remote_handler=dbgp
xdebug.max_nesting_level=1500
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 1

最好写成一个dockerfile,一键启动很方便。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!