內(nèi)容概要
- 利用lnmp安裝ftp功能
- 基于vscode開發(fā)調(diào)試php程序
1 驗(yàn)證lnmp安裝結(jié)果
- 輸入命令
lnmp restart
如下圖,即lnmp運(yùn)行正常。
-
訪問lnmp搭建的web網(wǎng)站蚯妇。打開宿主機(jī)瀏覽器,輸入虛擬機(jī)訪問地址(比如192.168.56.101,這個(gè)地址可以通過虛擬機(jī)中使用“ip address”命令坛增,查看eth1的inet獲知),回車如下圖即說明lnmp運(yùn)行正常薄腻。
僅輸入lnmp收捣,可以瀏覽lnmp所有可用功能。
2 基于lnmp安裝pureftpd
- 一個(gè)ftp服務(wù)器庵楷。有了這個(gè)ftp服務(wù)器罢艾,宿主機(jī)就可以向虛擬機(jī)傳送文件了。
- 在lnmp的源代碼路徑下執(zhí)行l(wèi)s尽纽,可以看到pureftp的安裝腳本咐蚯。
cd /home/src/lnmp1.6/
ls
- 執(zhí)行安裝腳本
./pureftpd.sh
安裝成功如下圖:
3 使用ftp功能
3.1 確定ftp功能處于運(yùn)行狀態(tài)
- 輸入
lnmp pureftpd status
,如下圖:
否則弄贿,輸入lnmp pureftpd start
開啟ftp功能春锋。
3.2 創(chuàng)建ftp用戶及對(duì)應(yīng)的目錄
pureftpd的工作原理是:
- 創(chuàng)建一個(gè)ftp用戶
- 為此用戶指定一個(gè)目錄
- 此用戶便可通過ftp軟件訪問這個(gè)目錄(上傳、下載)
- 輸入
mkdir /home/ftp
差凹,創(chuàng)建一個(gè)ftp目錄期奔,稍后使用。 - 輸入
chmod 777 /home/ftp
危尿,將ftp目錄使用權(quán)限全部放開呐萌,否則訪問可能出問題,這樣當(dāng)然很危險(xiǎn)脚线,不過開發(fā)的話搁胆,無所謂。存在更科學(xué)發(fā)方法,請(qǐng)自查渠旁。
- 輸入
lnmp ftp
,既可以看到與ftp相關(guān)的操作命令顾腊。 - 輸入
lnmp ftp add
粤铭,添加一個(gè)新的ftp用戶,此過程中指定“用戶名”杂靶、“密碼”梆惯、“目錄”即可,類似下圖:
3.3 使用ftp
-
在宿主機(jī)打開ftp工具吗垮,比如Filezilla垛吗,輸入虛擬機(jī)ip以及ftp用戶名、密碼烁登,就可以使用ftp向虛擬機(jī)傳送文件了怯屉。如下圖:
4 安裝XDebug
4.1 下載xdebug
- 進(jìn)入預(yù)備目錄
- 下載
wget https://github.com/derickr/xdebug/archive/xdebug_2_5.zip
4.2 編譯xdebug
- 解壓
unzip xdebug_2_5.zip
- 進(jìn)入解壓后的目錄(一定是有文件的目錄,解壓后可能是嵌套一個(gè)目錄饵沧,可用
ls
檢查) - 執(zhí)行
phpize
锨络,成功后如下圖:
- 執(zhí)行
./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
- 執(zhí)行
make && make install
,成功后如下圖:
4.3 配置xdebug
xdebug配置官網(wǎng)教程https://xdebug.org/docs/remote
這里需要先熟悉下vi的使用狼牺,可以參考https://www.runoob.com/linux/linux-vim.html羡儿,或https://www.cnblogs.com/jameslif/p/7751567.html。
至少熟悉vi的以下功能:
- 創(chuàng)建是钥、打開掠归、保存文檔
- 查找
- 快速滾動(dòng)到文檔開頭或結(jié)尾
- 移動(dòng)光標(biāo)
- 進(jìn)入、退出編輯狀態(tài)
- 在php.ini中添加啟動(dòng)代碼咏瑟。任意位置均可拂到,通常在最后痪署。
php.ini可能位于
/usr/local/php/etc/php.ini
[xdebug]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
- 每次編輯完php.ini后需要重啟lnmp的服務(wù)
lnmp restart
码泞。
4.4 檢查xdebug是否運(yùn)行正常
- 在宿主機(jī)瀏覽器輸入
192.168.56.101
,回車狼犯。 - 頁面里點(diǎn)
phpinfo
連接余寥。 - 打開的頁面中搜索
xdebug
,就可以看到關(guān)鍵信息是否正確悯森,特別是4.3中配置那些參數(shù)宋舷。
5 使用VS Code調(diào)試PHP
5.1 添加ftp賬號(hào)
科學(xué)的方法是通過lnmp創(chuàng)建vhost來進(jìn)行一個(gè)新web服務(wù)(或網(wǎng)站)的開發(fā),但需要一些額外配置瓢姻,為了簡單祝蝠,我們將借用lnmp默認(rèn)的網(wǎng)站目錄進(jìn)行實(shí)驗(yàn)、學(xué)習(xí)。
- lnmp默認(rèn)的web服務(wù)器目錄位于
/home/wwwroot/default
- 修改其訪問權(quán)限
chmod 777 -R /home/wwwroot/default
- 若
chmod
出現(xiàn)關(guān)于.user.ini
權(quán)限問題绎狭,則如下調(diào)整一下:
1 先關(guān)閉文件保護(hù)细溅,chattr -i /home/wwwroot/default/.user.ini
2 修改權(quán)限,chmod 777 -R /home/wwwroot/default
3 再開啟文件保護(hù)儡嘶,chattr +i /home/wwwroot/default/.user.ini
4 由phpMyAdmin不允許全開放喇聊,因此要把這個(gè)目錄改755權(quán)限。chmod 755 -R /home/wwwroot/default/phpmyadmin/
- 使用
lnmp ftp add
將這個(gè)目錄設(shè)置為一個(gè)ftp目錄蹦狂,并對(duì)應(yīng)用戶為default
誓篱,密碼就還是簡單的111111
吧。 - 使用宿主機(jī)ftp工具驗(yàn)證這個(gè)ftp已經(jīng)可用凯楔。
5.2 為VS Code安裝SFTP擴(kuò)展
-
安裝擴(kuò)展
5.3 在VS Code中通過SFTP訪問虛擬機(jī)ftp
由于sftp必須基于一個(gè)vscode項(xiàng)目運(yùn)行窜骄,所有我們要?jiǎng)?chuàng)建或使用一個(gè)項(xiàng)目。
在宿主機(jī)創(chuàng)建一個(gè)項(xiàng)目目錄(最好為空)
-
用vscode打開這個(gè)項(xiàng)目目錄摆屯,可以發(fā)現(xiàn)vscode左邊欄出現(xiàn)sftp按鈕
如果配置過ftp連接啊研,則點(diǎn)擊sftp按鈕后,列表為空鸥拧。
-
通過view->command pallete(或使用快捷鍵)開啟命令面板
-
輸入
sftp:config
進(jìn)行sftp配置
將配置內(nèi)容替換為如下內(nèi)容(注意實(shí)際應(yīng)用時(shí)需要?jiǎng)h除所有注釋):
{
"name": "local vm default", // 注釋:此ftp的顯示名稱党远,可隨意。
"host": "192.168.56.104", // 注釋:虛擬機(jī)的ip富弦。
"port": 21,
"username": "default", // 注釋:ftp用戶名
"password": "111111", // 注釋:ftp密碼
"protocol": "ftp",
"passive": false,
"interactiveAuth": true,
"remotePath": "/",
"uploadOnSave": true,
"syncMode": "update",
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/.DS_Store"
],
"watcher": {
"files": "glob",
"autoUpload": true,
"autoDelete": true
}
}
- 成功的話沟娱,即可看到ftp的內(nèi)容如下圖:
此外,可以在虛擬機(jī)輸入ls /home/wwwroot/default
腕柜,檢查是否文件一致济似。
5.4 將ftp內(nèi)容同步到宿主機(jī)項(xiàng)目目錄
-
保持vscode打開的是項(xiàng)目目錄,進(jìn)入文件瀏覽窗口盏缤,如下圖:
-
右鍵菜單砰蠢,選擇
sync remote -> local
,將ftp中對(duì)應(yīng)文件同步到當(dāng)前項(xiàng)目目錄中唉铜,如下圖:
成功后台舱,類似下圖:
5.5 安裝VS Code的PHP相關(guān)插件
- 安裝
PHP IntelliSense
和PHP Debug
插件,如下圖:
5.6 測(cè)試php代碼
- 通過vscodde潭流,在項(xiàng)目根目錄下創(chuàng)建me.php竞惋,并輸入內(nèi)容:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo '當(dāng)前訪問網(wǎng)頁的ip為:' . $ip;
?>
- 保存后,sftp會(huì)自動(dòng)將改文件上傳到虛擬機(jī)對(duì)應(yīng)目錄灰嫉,可以通過sftp窗口的刷新看到新上傳的
me.php
文件拆宛,如下圖:
- 在宿主機(jī)瀏覽器輸入地址
192.168.56.101/me.php
讼撒,看到如下截圖浑厚,標(biāo)明me.php代碼已經(jīng)被執(zhí)行:
5.7 調(diào)試php代碼
-
配置PHP Debug股耽,為調(diào)試器添加路徑映射,具體過程如下:
1 打開調(diào)試界面
2 打開調(diào)試配置文件
3 在配置文件中添加路徑映射钳幅,這樣調(diào)試器就知道如何映射本地和虛擬機(jī)上的文件了豺谈。
-
啟動(dòng)調(diào)試。
-
添加斷點(diǎn)贡这。
-
通過瀏覽器訪問me.php網(wǎng)址茬末,即可激活調(diào)試。
附錄
wget https://github.com/derickr/xdebug/archive/xdebug_2_5.zip