1. 程式人生 > >XAMPP和VScode 實現對PHP的編寫和除錯

XAMPP和VScode 實現對PHP的編寫和除錯

  在工作中遇到了需要開發PHP的情況,因為習慣用VS開發.net系列,所以決定用VScode繼續開發PHP。對搭建VSCode的開發環境的過程做了一些總結。

Xmapp的安裝

xDebug的安裝

首先執行XMAPP以後,發現已經監聽了80埠
這裡寫圖片描述
開啟瀏覽器訪問 Http://localhost/,然後檢視PHPInfo,找到正確的PHP版本,特別是是否執行緒安全。因為這個版本決定了Xdebug的版本,如果版本尋找不對,XDEBUG是無法安裝成功的。
這裡寫圖片描述
這裡寫圖片描述
下載PHP對應的XDebug版本。下載地址:https://xdebug.org/download.php ,解壓以後修改dll名稱為php_xdebug.dll, 複製到php的ext資料夾下面。
修改php.ini,在下面增加

[XDebug]
zend_extension = "php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:/xampp/tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9010
xdebug.remote_connect_back=0
xdebug.remote_enable = 1 xdebug.remote_autostart=1 xdebug.idekey=netbeans

特別需要注意的是remoting_port的設定,跟後面vscode需要一致。我再配置xdebug的時候,因為版本問題,走了很多彎路。

配置Apache的虛擬目錄

首先在Apache的httpd.conf中把 #Include conf/extra/httpd-vhosts.conf修改為Include conf/extra/httpd-vhosts.conf。
然後找到httpd-vhosts.conf,在後面增加下面程式碼

<VirtualHost *:9000>
ServerAdmin [email protected] DocumentRoot "D:/Learn/Spider/" ServerName localhost ErrorLog "logs/spider" CustomLog "logs/dspider" common </VirtualHost>

重啟apache服務,訪問localhost:9000,會發現提示沒有許可權訪問。然後再httpd-vhosts.conf檔案中增加下面片段,並且重啟Apache服務。

<Directory "D:/Learn/Spider/">  
    Options Indexes FollowSymLinks Includes ExecCGI  
    AllowOverride All  
    Require all granted  
</Directory>  

訪問localhost:9000訪問正常。

下載並且安裝VScode

配置VSCode的PHP開發環境

這裡寫圖片描述
1. 在VSCode的擴充套件中輸入ext:php,安裝PHP debug。
2. 在檔案=》首選項=》設定

{
    "php.validate.executablePath":"C:/xampp/php/PHP.exe"
}

3.可以建立和瀏覽剛剛設定的專案。設定Lauch.json如下

{
    // 使用 IntelliSense 瞭解相關屬性。 
    // 懸停以檢視現有屬性的描述。
    // 欲瞭解更多資訊,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9010   //剛剛xdebug設定的埠
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

相關推薦

XAMPPVScode 實現PHP編寫除錯

  在工作中遇到了需要開發PHP的情況,因為習慣用VS開發.net系列,所以決定用VScode繼續開發PHP。對搭建VSCode的開發環境的過程做了一些總結。 Xmapp的安裝 xDebug的安裝 首先執行XMAPP以後,發現已經監聽了80埠

從數據庫、代碼服務器PHP網站Mysql做性能優化

now() image 最好 提高 mysql 避免 允許 大數 rdate 數據庫優化是PHP面試幾乎都會被問到的事情,也是我們工作中應該註意的事情,當然,如果是小網站無所謂優化不優化,網站訪問量大了自然會暴漏數據庫的瓶頸,這個瓶頸是各方面問題綜合導致的,下面我們來做下數

使用Xgboostlightgbm實現貸款使用者逾期預測

一、背景及目標 根據提供的金融資料,分別使用xgboost和lightgbm兩種演算法預測貸款使用者是否會逾期。 二、任務分析 匯入資料後,首先,由於資料中存在缺失值,因此需要對缺失值資料進行預處理。 其次,對明顯與模型無關的特徵進行刪除。 最後,分別採用xg

java用poi實現word讀取修改操作(轉)

java程式設計要實現對word的操作沒有vb那種程式語言來得容易,得藉助一些開源元件,其中就包括jacob、poi等, 而poi應用得最為廣泛,對word2003和2007的讀和寫word操作都十分方便。它是Apache組織的一個專案,早在2001年就已經發布了第 一個版本,可以說是apache組織的一

使用Mocha、IstanbulChai實現TypeScript單元測試覆蓋率

本文主要描述使用Mocha、Istanbul和Chai實現TypeScript單元測試和覆蓋率的方法和過程,並簡單記錄SonarQube的相關配置。 Github: https://github.com/prufeng/tsexpress 關於JavaScript的單元測試和覆蓋

利用FileReaderFormData實現圖片預覽上傳(base64轉二進位制檔案)

業務有個需求,要做圖片預覽上傳,過去都是客戶端上傳給後端,後端返回 url 前端進行預覽,現在其實可以不依賴後端做預覽,最後在上傳,這主要依賴 FileReader 和 FormData 這兩個物件和 JavaScript 處理二進位制的能力。 OK,Show cod

使用IF({1,0}VLOOKUP實現Excel雙條件多條件查詢

在Excel中,通過VLOOKUP函式可以查詢到資料並返回資料。不僅能跨表查詢,同時,更能跨工作薄查詢。   但是,VLOOKUP函式一般情況下,只能實現單條件查詢。   如果想通過VLOOKUP函式來實現雙條件或多條件的查詢並返回值,那麼,只需要加上IF({1,0}就可以

使用ViewPagerPhotoview實現圖片左右滑動放大縮小

為了實現圖片的左右滑動以及放大縮小的功能,用到了兩個元件ViewPager和PhotoView。 PhotoView是開源專案,它也是通過繼承ImageView然後擴充功能,實現圖片放大縮小等功能;而載入網路圖片用到了ImageLoader這個開源元件。 工欲善其事必先

採用ffmpegffserver實現音視訊直播點播

一、嵌入式開發板採集音視訊(遠端)         音訊採集程式:./audioc -i 222.222.222.222 -p 8888;         視訊採集程式:./videoc -i 222.222.222.222 -p 9999;         音訊採集程式利

awksed實現匹配行內容行號列印

  sed列印所有匹配行行號  sed -n  '/liu/=' aa   sed列印匹配內容  sed -n  '/liu/p' aa   sed列印匹配內容和匹配行號  sed -n  -e '/liu/='  -e '/liu/p' aa   sed列印最後一

packmakerhaproxy實現的負載均衡高可用叢集

pacemaker實現高可用叢集: 兩個節點的部署完全相同 server3—–>節點1—->haproxy—->pacemaker/corosync(心跳) server4—–>節點2—->haproxy—->pacem

SA:T1編寫主函數法T2Matlab自帶的SA工具箱GUI法,兩種方法實現二元函數優化求解——Jason niu

lin plot itl 最優解 IT 主函數 alt 圖片 gui %SA:T1法利用Matlab編寫主函數實現對定義域[-5,5]上的二元函數求最優解—Jason niu [x,y] = meshgrid(-5:0.1:5,-5:0.1:5); z = x.^2 +

PHP反射實現類的方法依賴注入建構函式依賴注入

前段時間一直在看tp5 發現他內部實現了控制器的依賴注入。。下面 我通過程式碼來說明一下是怎麼實現的。 首先我們準備好幾個類檔案  我們先看目錄安排 其中 start.php是啟動檔案 <?php /** * Created by PhpStorm. * User: A

柵格重分類條件函數均可以實現流量統計數據進行定義劃分

target 結構 .html ctu 定義 net hue thread 影響 ArcGIS水分分析工具的流向分析是基於D8單流向算法,如果分析使用的DEM存在凹陷點,就會產生匯,導致徑流斷流從而影響了分析結果。在前面章節《ArcGIS水文分析實戰教程(2)ArcGIS水

C語言的結構聯合,以及PHP是怎麽實現弱類型的

main 中一 字符 變量類型 type 以及 logs void 例子   C語言的結構(struct):包含多個成員,可能有多種數據類型,並且需要分配幾種類型占用空間之和的空間。   聯合(union):支持多種類型,供使用者使用其中一種數據類型,當然是需要分配其中占用

PHP面向象 ——封裝繼承

com 過程 nds 使用 高度 例子 都是 png -- 面向對象的特征   1 封裝   2 繼承   3 多態 封裝   封裝就是把對象的屬性和行為結合成一個獨立的相同單位,並盡可能隱蔽對象的內部細節   優點:信息隱蔽,封裝即隱藏。   封裝的原則在軟件上的反映是:

簡單理解javascript中的原型象,實現之間共享屬性行為

type屬性 定義 say 能夠 方法 () post spa popu javascript中提供了構造函數。可以方便的創建對象。典型的構造函數例如以下: function Person(name, age) {   this.name = name;

PHP象之定義類的方法

name 操作 私有 function 通過 turn 程序設計 需要 冒號 方法就是在類中的function,很多時候我們分不清方法與函數有什麽差別,在面向過程的程序設計中function叫做函數,在面向對象中function則被稱之為方法。 同屬性一樣,類的方法也具有p

使用vscode編寫調試netcore項目

eno rss com wcc 5% bwt rar hsf odk %E4%B8%AD%E5%85%B1%E4%BA%AB%E5%85%A8%E5%B1%80%E6%95%B0%E6%8D%AE%E6%96%B9%E6%B3%95 ??????????? http:/

PHP中的會話控制—sessioncookie(實現數據傳值功能)

代碼 會有 數據 xmlns code 特點 會話控制 pre color 1.session 登錄上一個頁面以後,長時間沒有操作,刷新頁面以後需要重新登錄。 特點:(1)session是存儲在服務器;    (2)session每個人(登陸者)存一份;    (3)