PHP远程开发环境及调试环境配置

PHP远程开发环境及调试环境配置流程

开发:docker+phpbrew+nginx+phpstorm

调试:docker+phpbrew+xdebug+nginx+phpstorm

环境说明:

  • 本地:windows10
  • 远程:Ubuntu18.04_sever虚拟机
  • 虚拟网关:192.168.2.0
  • window10_ip:192.168.2.1
  • ubuntu_ip:192.168.2.134
  • phpstorm:在windows10上
  • docker:在ubuntu_server上
  • phpbrew:docker容器
  • nginx:docker容器

这样搭环境的好处

  • 环境中的各个模块分离,不会出现环境混乱的情况
  • 可以避免windows端和服务端环境不一致的情况
  • 各个服务的版本可以随意切换,不会影响到其他服务

ubuntu_server

  • docker安装(以ubuntu系统为例):apt install docker.io
  • 新建www用户(将整个web环境用户统一为www用户防止出现权限问题):adduser www
  • 进入/home/www建立html文件夹设置文件夹权限为644

docker

  • 方法1:docker拉镜像:

    • docker pull phpbrew/phpbrew
    • docker pull nginx
    • docker pull mysql:5.7
  • 方法2:用ubuntu镜像制作phpbrew镜像和nginx镜像

    • 1. 拉取ubuntu镜像:docker pull ubuntu
    • 2. phpbrew镜像制作:
      • 启动容器:docker run -it --name phpbrew -d ubuntu /bin/bash
      • 进入容器:docker exec -it phpbrew /bin/bash
      • 安装php7.2及扩展
        • apt install php7.2

        • apt-get install build-essential

        • apt-get install libxml2-dev

        • apt-get install libcurl4-openssl-dev pkg-config

        • apt-get install libbz2-dev

        • apt-get install libicu-dev

        • apt-get install libmcrypt-dev

        • apt-get install libreadline-dev

        • apt-get install libxslt-dev

        • 组件依赖

          • apt-get install libjpeg-dev libpng-dev
          • apt-get install libfreetype6-dev
          • apt-get install libt1-dev
      • 安装phpbrew:
        • curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
        • chmod +x phpbrew (给phpbrew添加可执行权限)
        • mv phpbrew /usr/local/bin/phpbrew
        • phpbrew init(初始化phpbrew)
        • 1704_0.png
        • Add these lines to your .bashrc or .zshrc file:[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
      • 用phpbrew安装php7.2和php-fpm(nginx会远程调用php-fpm)
        • phpbrew install 7.2 +default +fpm
      • 退出容器提交镜像:docker commit phpbrew phpbrew-self
    • 3. nginx镜像制作
      • 启动容器:docker run -it --name nginx -d ubuntu /bin/bash
      • 进入容器:docker exec -it nginx /bin/bash
      • 安装nginx:apt install nginx
      • 退出容器提交镜像:docker commit nginx nginx-self
  • 启动容器

    • nginx容器:docker run -it --name nginx_1 -p 8002:80 -v /home/www/html:/home/www/html -d nginx /bin/bash
      • --name:容器名:nginx_1(根据需要随意修改)
      • -p:端口映射:将服务器的8002端口映射到容器的80端口(保证服务器的8002端口是开放的,没有被防火墙关闭)(根据需要随意修改)
      • -d:后台启动
      • -v:文件目录挂载:将服务器的/home/www/html挂载到容器中的/home/www/html(根据需要随意修改,要保证phpbrew容器中有目录是挂载到修改后的目录的,否则php会找不到文件)
    • phpbrew容器:docker run -it --name phpbrew_1 -v /home/www/html:/home/www/html -d phpbrew /bin/bash
      • 一定要设置文件目录挂载将容器中的某个目录挂载到本机存有web服务源码的目录中,否则后面会出现php找不到文件的情况(file not found)
  • 临时启动服务器docker远程访问(在docker服务关闭的情况下使用):dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

    • 配置成功后:可在本地用 docker -H [服务器ip:监听端口] [docker命令]控制远程服务器的docker
    • 1692_0.png

phpbrew容器配置

  • 进入容器:docker exec -it phpbrew_1 /bin/bash
  • 建立www用户:adduser www
  • 进入www用户根目录建立html文件夹
  • 修改php-fpm配置文件www.conf(文件位置:/root/.phpbrew/php/php-7.2.20/etc/php-fpm.d)
    • 1706_0.png
  • 启动php-fpm:phpbrew fpm start

nginx容器配置

  • 进入容器:docker exec -it nginx_1 /bin/bash
  • 建立www用户:adduser www
  • 进入www用户根目录建立html文件夹
  • 修改nginx配置文件nginx.conf(文件位置:/etc/nginx)
    • 1708_0.png
  • 修改default.conf(文件位置:/etc/nginx/conf.d)
    • 1710_0.png
  • 重启nginx服务:service nginx restart

phpstorm配置

  • 远程sftp

    • 配置:file -> setting -> Build, Execution, Deployment -> Deployment
    • 1712_0.png
  • 远程连接docker服务

    • phpstorm可以连接开启了远程访问的docker服务
    • 配置:file -> setting -> Build, Execution, Deployment -> docker
    • 1694_0.png
    • 1696_0.png
    • 1698_0.png
    • 1700_0.png
    • 1702_0.png
  • 远程服务器xdebug

    • xdebug可以实现php文件断点调试
    • 进入phpbrew容器安装xdebug扩展修改配置文件
      • phpbrew ext install xdebug
      • 修改php.ini文件,添加内容(文件位置:/root/.phpbrew/php/php-7.2.20/etc)
        • 1714_0.png
        • [xdebug]
          zend_extension = /root/.phpbrew/php/php-7.2.20/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
          xdebug.remote_enable=1
          xdebug.remote_handler=dbgp
          xdebug.remote_mode=req
          xdebug.remote_host=192.168.2.1
          xdebug.remote_port=9009
          xdebug.idekey=PHPSTORM```
          
        • 重启php-fpm
    • phpstorm配置
      • 新建服务
        • 1716_0.png
      • 配置服务
        • 1720_0.png
        • 1718_0.png
        • 配置目录映射:
          • 1726_0.png
        • 安装浏览器端插件:xdebug helper
          • 修改配置:
            1732_0.png
        • 1722_0.png
        • 1728_0.png
        • 成功停住
          • 1730_0.png
  • phpstorm上传修改后代码

    • 1734_0.png

你可能感兴趣的:(PHP远程开发环境及调试环境配置)