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) - 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
- 啟動(dòng)容器:
-
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)容器:
-
-
啟動(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)
- nginx容器:
-
臨時(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
- 配置成功后:可在本地用
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)
- 啟動(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)
- 修改default.conf(文件位置:/etc/nginx/conf.d)
- 重啟nginx服務(wù):
service nginx restart
phpstorm配置
-
遠(yuǎn)程sftp
- 配置:file -> setting -> Build, Execution, Deployment -> Deployment
-
遠(yuǎn)程連接docker服務(wù)
- phpstorm可以連接開(kāi)啟了遠(yuǎn)程訪問(wèn)的docker服務(wù)
- 配置:file -> setting -> Build, Execution, Deployment -> docker
-
遠(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)
[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ù)
- 配置服務(wù)
- 配置目錄映射:
- 安裝瀏覽器端插件:xdebug helper
-
修改配置:
-
修改配置:
- 成功停住
- 新建服務(wù)
-
phpstorm上傳修改后代碼