PHP遠(yuǎn)程開(kāi)發(fā)環(huán)境及調(diào)試環(huán)境配置

PHP遠(yuǎn)程開(kāi)發(fā)環(huán)境及調(diào)試環(huán)境配置流程

開(kāi)發(fā):docker+phpbrew+nginx+phpstorm

調(diào)試:docker+phpbrew+xdebug+nginx+phpstorm

環(huán)境說(shuō)明:

  • 本地:windows10
  • 遠(yuǎn)程:Ubuntu18.04_sever虛擬機(jī)
  • 虛擬網(wǎng)關(guān):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容器

這樣搭環(huán)境的好處

  • 環(huán)境中的各個(gè)模塊分離,不會(huì)出現(xiàn)環(huán)境混亂的情況
  • 可以避免windows端和服務(wù)端環(huán)境不一致的情況
  • 各個(gè)服務(wù)的版本可以隨意切換嗽元,不會(huì)影響到其他服務(wù)

ubuntu_server

  • docker安裝(以u(píng)buntu系統(tǒng)為例):apt install docker.io
  • 新建www用戶(將整個(gè)web環(huán)境用戶統(tǒng)一為www用戶防止出現(xiàn)權(quán)限問(wèn)題):adduser www
  • 進(jìn)入/home/www建立html文件夾設(shè)置文件夾權(quán)限為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鏡像制作:
      • 啟動(dòng)容器:docker run -it --name phpbrew -d ubuntu /bin/bash
      • 進(jìn)入容器:docker exec -it phpbrew /bin/bash
      • 安裝php7.2及擴(kuò)展
        • 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添加可執(zhí)行權(quán)限)
        • 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會(huì)遠(yuǎn)程調(diào)用php-fpm)
        • phpbrew install 7.2 +default +fpm
      • 退出容器提交鏡像:docker commit phpbrew phpbrew-self
    • 3. nginx鏡像制作
      • 啟動(dòng)容器:docker run -it --name nginx -d ubuntu /bin/bash
      • 進(jìn)入容器:docker exec -it nginx /bin/bash
      • 安裝nginx:apt install nginx
      • 退出容器提交鏡像:docker commit nginx nginx-self
  • 啟動(dòng)容器

    • nginx容器:docker run -it --name nginx_1 -p 8002:80 -v /home/www/html:/home/www/html -d nginx /bin/bash
      • --name:容器名:nginx_1(根據(jù)需要隨意修改)
      • -p:端口映射:將服務(wù)器的8002端口映射到容器的80端口(保證服務(wù)器的8002端口是開(kāi)放的绘搞,沒(méi)有被防火墻關(guān)閉)(根據(jù)需要隨意修改)
      • -d:后臺(tái)啟動(dòng)
      • -v:文件目錄掛載:將服務(wù)器的/home/www/html掛載到容器中的/home/www/html(根據(jù)需要隨意修改,要保證phpbrew容器中有目錄是掛載到修改后的目錄的茂契,否則php會(huì)找不到文件)
    • phpbrew容器:docker run -it --name phpbrew_1 -v /home/www/html:/home/www/html -d phpbrew /bin/bash
      • 一定要設(shè)置文件目錄掛載將容器中的某個(gè)目錄掛載到本機(jī)存有web服務(wù)源碼的目錄中,否則后面會(huì)出現(xiàn)php找不到文件的情況(file not found)
  • 臨時(shí)啟動(dòng)服務(wù)器docker遠(yuǎn)程訪問(wèn)(在docker服務(wù)關(guān)閉的情況下使用):dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

    • 配置成功后:可在本地用 docker -H [服務(wù)器ip:監(jiān)聽(tīng)端口] [docker命令]控制遠(yuǎn)程服務(wù)器的docker
    • 1692_0.png

phpbrew容器配置

  • 進(jìn)入容器:docker exec -it phpbrew_1 /bin/bash
  • 建立www用戶:adduser www
  • 進(jìn)入www用戶根目錄建立html文件夾
  • 修改php-fpm配置文件www.conf(文件位置:/root/.phpbrew/php/php-7.2.20/etc/php-fpm.d)
    • 1706_0.png
  • 啟動(dòng)php-fpm:phpbrew fpm start

nginx容器配置

  • 進(jìn)入容器:docker exec -it nginx_1 /bin/bash
  • 建立www用戶:adduser www
  • 進(jìn)入www用戶根目錄建立html文件夾
  • 修改nginx配置文件nginx.conf(文件位置:/etc/nginx)
    • 1708_0.png
  • 修改default.conf(文件位置:/etc/nginx/conf.d)
    • 1710_0.png
  • 重啟nginx服務(wù):service nginx restart

phpstorm配置

  • 遠(yuǎn)程sftp

    • 配置:file -> setting -> Build, Execution, Deployment -> Deployment
    • 1712_0.png
  • 遠(yuǎn)程連接docker服務(wù)

    • phpstorm可以連接開(kāi)啟了遠(yuǎn)程訪問(wèn)的docker服務(wù)
    • 配置:file -> setting -> Build, Execution, Deployment -> docker
    • 1694_0.png
    • 1696_0.png
    • 1698_0.png
    • 1700_0.png
    • 1702_0.png
  • 遠(yuǎn)程服務(wù)器xdebug

    • xdebug可以實(shí)現(xiàn)php文件斷點(diǎn)調(diào)試
    • 進(jìn)入phpbrew容器安裝xdebug擴(kuò)展修改配置文件
      • phpbrew ext install xdebug
      • 修改php.ini文件慨绳,添加內(nèi)容(文件位置:/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配置
      • 新建服務(wù)
        • 1716_0.png
      • 配置服務(wù)
        • 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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掉冶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子脐雪,更是在濱河造成了極大的恐慌厌小,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件战秋,死亡現(xiàn)場(chǎng)離奇詭異璧亚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)脂信,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)癣蟋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人狰闪,你說(shuō)我怎么就攤上這事疯搅。” “怎么了埋泵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵幔欧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我丽声,道長(zhǎng)礁蔗,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任雁社,我火速辦了婚禮浴井,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霉撵。我一直安慰自己磺浙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布喊巍。 她就那樣靜靜地躺著屠缭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崭参。 梳的紋絲不亂的頭發(fā)上呵曹,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼奄喂。 笑死铐殃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跨新。 我是一名探鬼主播富腊,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼域帐!你這毒婦竟也來(lái)了赘被?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肖揣,失蹤者是張志新(化名)和其女友劉穎民假,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體龙优,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羊异,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彤断。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片野舶。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宰衙,靈堂內(nèi)的尸體忽然破棺而出平道,到底是詐尸還是另有隱情,我是刑警寧澤菩浙,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布巢掺,位于F島的核電站句伶,受9級(jí)特大地震影響劲蜻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜考余,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一先嬉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧楚堤,春花似錦疫蔓、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至酥筝,卻和暖如春滚躯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工掸掏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茁影,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓丧凤,卻偏偏與公主長(zhǎng)得像募闲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愿待,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345