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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352