19暑期學(xué)習(xí)-Day2

內(nèi)容概要

  • 利用lnmp安裝ftp功能
  • 基于vscode開發(fā)調(diào)試php程序

1 驗(yàn)證lnmp安裝結(jié)果

  • 輸入命令
lnmp restart

如下圖,即lnmp運(yùn)行正常。


lnmp運(yùn)行良好
  • 訪問lnmp搭建的web網(wǎng)站蚯妇。打開宿主機(jī)瀏覽器,輸入虛擬機(jī)訪問地址(比如192.168.56.101,這個(gè)地址可以通過虛擬機(jī)中使用“ip address”命令坛增,查看eth1的inet獲知),回車如下圖即說明lnmp運(yùn)行正常薄腻。


    可以訪問lnmp搭建的web服務(wù)器

僅輸入lnmp收捣,可以瀏覽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
pureftp安裝腳本
  • 執(zhí)行安裝腳本
./pureftpd.sh

安裝成功如下圖:


pureftpd安裝成功

3 使用ftp功能

3.1 確定ftp功能處于運(yùn)行狀態(tài)

  • 輸入lnmp pureftpd status,如下圖:
    ftp功能運(yùn)行中

    否則弄贿,輸入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)自查渠旁。

linux的用戶攀例、用戶組與文件操作權(quán)限

  • 輸入lnmp ftp,既可以看到與ftp相關(guān)的操作命令顾腊。
  • 輸入lnmp ftp add粤铭,添加一個(gè)新的ftp用戶,此過程中指定“用戶名”杂靶、“密碼”梆惯、“目錄”即可,類似下圖:
    ftp創(chuàng)建完畢

3.3 使用ftp

  • 在宿主機(jī)打開ftp工具吗垮,比如Filezilla垛吗,輸入虛擬機(jī)ip以及ftp用戶名、密碼烁登,就可以使用ftp向虛擬機(jī)傳送文件了怯屉。如下圖:


    使用filezilla連接虛擬機(jī)ftp

4 安裝XDebug

php Xdebug安裝官網(wǎng)教程

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锨络,成功后如下圖:
    phpize成功執(zhí)行
  • 執(zhí)行./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
  • 執(zhí)行make && make install,成功后如下圖:
    xdebug編譯成功

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ò)展

參考教程vs code配置ftp連接遠(yuǎn)程服務(wù)器實(shí)現(xiàn)代碼文自動(dòng)上傳

  • 安裝擴(kuò)展


    SFTP

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按鈕


    sftp按鈕
  • 如果配置過ftp連接啊研,則點(diǎn)擊sftp按鈕后,列表為空鸥拧。

  • 通過view->command pallete(或使用快捷鍵)開啟命令面板


    命令面板
  • 輸入sftp:config進(jìn)行sftp配置

    開啟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)容如下圖:
    ftp連接成功

    此外,可以在虛擬機(jī)輸入ls /home/wwwroot/default腕柜,檢查是否文件一致济似。
    虛擬機(jī)上對(duì)應(yīng)ftp目錄的文件情況

5.4 將ftp內(nèi)容同步到宿主機(jī)項(xiàng)目目錄

  • 保持vscode打開的是項(xiàng)目目錄,進(jìn)入文件瀏覽窗口盏缤,如下圖:


    項(xiàng)目目錄
  • 右鍵菜單砰蠢,選擇sync remote -> local,將ftp中對(duì)應(yīng)文件同步到當(dāng)前項(xiàng)目目錄中唉铜,如下圖:

    同步文件

    成功后台舱,類似下圖:
    同步成功

5.5 安裝VS Code的PHP相關(guān)插件

  • 安裝PHP IntelliSensePHP Debug插件,如下圖:
    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文件拆宛,如下圖:
    修改保存me.php后,自動(dòng)上傳到虛擬機(jī)
  • 在宿主機(jī)瀏覽器輸入地址192.168.56.101/me.php讼撒,看到如下截圖浑厚,標(biāo)明me.php代碼已經(jīng)被執(zhí)行:
    執(zhí)行me.php代碼

5.7 調(diào)試php代碼

  • 配置PHP Debug股耽,為調(diào)試器添加路徑映射,具體過程如下:
    1 打開調(diào)試界面


    1/3 打開調(diào)試界面

    2 打開調(diào)試配置文件


    2/3 打開調(diào)試配置文件

    3 在配置文件中添加路徑映射钳幅,這樣調(diào)試器就知道如何映射本地和虛擬機(jī)上的文件了豺谈。
    3/3 添加路徑映射
  • 啟動(dòng)調(diào)試。


    啟動(dòng)調(diào)試
  • 添加斷點(diǎn)贡这。


    添加斷點(diǎn)
  • 通過瀏覽器訪問me.php網(wǎng)址茬末,即可激活調(diào)試。


    調(diào)試斷點(diǎn)

附錄

wget https://github.com/derickr/xdebug/archive/xdebug_2_5.zip

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辈双,一起剝皮案震驚了整個(gè)濱河市责掏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湃望,老刑警劉巖换衬,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異证芭,居然都是意外死亡瞳浦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門废士,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叫潦,“玉大人,你說我怎么就攤上這事官硝〈H铮” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵氢架,是天一觀的道長傻咖。 經(jīng)常有香客問我,道長岖研,這世上最難降的妖魔是什么卿操? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮缎玫,結(jié)果婚禮上硬纤,老公的妹妹穿的比我還像新娘解滓。我一直安慰自己赃磨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布洼裤。 她就那樣靜靜地躺著邻辉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上值骇,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天莹菱,我揣著相機(jī)與錄音,去河邊找鬼吱瘩。 笑死道伟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的使碾。 我是一名探鬼主播蜜徽,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼票摇!你這毒婦竟也來了拘鞋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤矢门,失蹤者是張志新(化名)和其女友劉穎盆色,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祟剔,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡隔躲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了物延。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹭越。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖教届,靈堂內(nèi)的尸體忽然破棺而出响鹃,到底是詐尸還是另有隱情,我是刑警寧澤案训,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布买置,位于F島的核電站,受9級(jí)特大地震影響强霎,放射性物質(zhì)發(fā)生泄漏忿项。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一城舞、第九天 我趴在偏房一處隱蔽的房頂上張望轩触。 院中可真熱鬧,春花似錦家夺、人聲如沸脱柱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榨为。三九已至惨好,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間随闺,已是汗流浹背日川。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矩乐,地道東北人龄句。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像散罕,于是被迫代替她去往敵國和親撒璧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容