⑴ windows下php命令行執行為什麼總是跑去c:\program files目錄下找ext
這個ext在php.ini中設置,當php開始運行的時候,它會根據你的配置文件,也就是php.ini中的設置來決定載入的東西,具體看php.net官網上的手冊,要熟讀
⑵ 如何運行PHP
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
我們要在電腦上運運ASP文件 只要裝IIS就可以。
哪要運行PHP文件呢。該怎麼辦!~
解析:
如何安裝運行php
1. Unix/Windows: 我的php.ini 文件應該放在哪?
UNIX下默認它應該放在 /usr/local/lib 目錄下。 這是它的 /lib. 很多人冊旦芹會在編譯時改變它,使用--with-config-file-path 標志。 例如, 你可以這樣設它: --with-config-file-path=/etc
然後你可以復制源程序包里的 php.ini-dist 到 /etc/php.ini ,編輯它滿足你的本地化需求。
Windows下 php.ini默認的路徑是 Windows 系統目錄. 如果你在使用 Apache webserver, php.ini 則最先在 Apaches 安裝目錄下被查找, 例如: c:\program files\apache group\apache. 這樣你可以有不同的 php.ini 對應不同版本的 Apache(同一台機器上)。
更多細節請查閱 configuration file.
2. Unix: 我安裝了 PHP, 但我每次載入一個文檔, 會得到下面的消息: Document Contains No Data ! 怎麼回事?
這可能是因為你的 PHP 發生了core-mping錯誤。 查找你的伺服器錯誤日誌文件,看看是否屬於這種情況。 然後報告這個錯誤。如果你知道怎州畢樣使用 gdb ,你可以提供一個 backtrace 在你的錯誤報告里。這將會對開發人員解決 這個問遲帶題有很大幫助。如果你是在將PHP作為Apache模塊使用,那麼請按下面的步驟做:
停止 d 進程
gdb d
停止 d 進程
> run -X -f /path/to/d.conf
瀏覽你剛才出錯的 URL
> run -X -f /path/to/d.conf
如果你還有 core mp, gdb 現在會通知你
打入: bt
在你的 bug report里應該包含backtrace 。 這些會被發往 bugs.php/
如果你的腳本使用了正則表達式函數 (ereg() and friends), 你應該確保你編譯 PHP 和 Apache 用的是同一個正則表達式包。 在 PHP 和 Apache 1.3.x 這個過程是自動進行的。
3. Unix: 我使用 RPMS 安裝 PHP , 但Apache 不支持 PHP頁面! 怎麼辦?
假設你安裝了 Apache 和 PHP(從 RPM ) , 你需要反注釋或者增加一些行在你的 .conf 文件里: # Extra MolesAddMole mod_php.cAddMole mod_php3.cAddMole mod_perl.c# Extra MolesLoadMole php_mole moles/mod_php.soLoadMole php3_mole moles/libphp3.so /* for PHP 3 */LoadMole php4_mole moles/libphp4.so /* for PHP 4 */LoadMole perl_mole moles/libperl.so
And add: AddType application/x-d-php3 .php3 /* for PHP 3 */AddType application/x-d-php .php /* for PHP 4 */
... 到全局域里, 或者到你想要的 支持PHP的虛擬域里。
4. 我使用 RPMS 安裝 PHP 3 , 但是它沒有我需要的資料庫選項支持! 我該怎麼辦?
因為 PHP 3 內建支持的關系, 編譯一個完整的可適於所有應用的 PHP RPM是相當困難的。 在 PHP 4有談到這點。 對 PHP 3, 我們只好建議你使用INSTALL.REDHAT (在 PHP包里)描述的機制。 如果你一定要使用 RPM 版的 PHP 3, 讀...
RPM 包管理器設置 RPMS 簡單的安裝,不帶資料庫支持 and 因為RPMS 使用 /usr/ 而不是標準的 /usr/local/ 目錄存放文件. 你需要告訴 RPM 文件你要支持哪種資料庫以及它們的最上級目錄的位置。
下面的例子將解釋在Apache模式下怎樣支持通行的資料庫Mysql.
當然所有的這些可以稍作修改,以支持其它的PHP支持的資料庫。我們假設你安裝了 MySQL and Apache ,完全是用 RPMS 安裝的。
首先,移去 mod_php3 : rpm -e mod_php3
然後取得rpm包並安裝, 不是 --重編譯 rpm -Uvh mod_php3-3.0.5-2.src.rpm
編輯/usr/src/redhat/SPECS/mod_php3.spec 文件
在 %build 一節里增加你想要的資料庫支持, 以及路徑信息。
對 MySQL 你應該增加: --with-mysql=/usr \
%build 節看起來象: ./configure --prefix=/usr \ --with-apxs=/usr/ *** in/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex
改動完成後,象下面這樣重編rpm : rpm -bb /usr/src/redhat/SPECS/mod_php3.spec
Then install the rpm rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm
重啟 Apache,你已經得到了rpm下的Mysq
l的支持。 注意到這種做法比你重新得到一個 PHP 3 的tarball 代碼,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。
5. Unix: 我用 FrontPage 擴展包對Apache打了補丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage 包不兼容嗎 ?
不是, PHP 和 FrontPage擴展包運行得很好.。問題是FrontPage 包修改了幾個Apache 結構參數,而PHP要用到它們.在FrontPage擴展包被打上後, 重新編譯 PHP (使用 make clean ; make ) ,會解決這個問題。
6. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面時,空白一片。
在瀏覽器里用 查看源文件 看你的腳本,你可能會發現你看到的是源程序。 這表示 web server 並沒有送腳本到PHP去執行。肯定是伺服器配置上哪兒出了錯。 仔細檢查PHP安裝的 server 配置。
7. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的 PHP頁面時,我得到一個 server 500 error。
這是伺服器在運行 PHP 時發生了錯誤。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常,這個錯誤就是由於伺服器配置引發的,應該仔細檢查。
8. 某些操作系統: 我安裝PHP沒出錯,可是我啟動Apache時,得到一個 undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/d Undefined symbols: _press _unpress
這個問題其實與 PHP 無關, 而與 MySQL 客戶端庫有關。 --with-zlib,有些操作系統需要,而有些不需要。MySQL FAQ已經講述了這個問題。
9. Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面, 得到如下錯誤: cgi error: The specified CGI application mi *** ehaved by not returning a plete set of HTTP headers. The headers it did return are:
這是 PHP 根本沒有產生任何輸出。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常。
一旦PHP在命令行模式下工作,再看看你的腳本程序, 它還是失敗,可能是因為以下原因:
你的PHP腳本的許可權許可。 php.exe, php4ts.dll, php.ini 或者任何你可能裝入的PHP文件,它樣都必須能被匿名 inter 用戶 ISUR_ 訪問。
腳本文件根本不存在(或者不是你認為的位置。)請注意在IIS里,你能夠阻塞這個錯誤,做法是在設置腳本映射目錄時, 選上 check file exists 框。這樣如果腳本不存在,伺服器會返回一個404錯誤。 這樣做也有其它的一些好處, 就是IIS僅為你做經過授權的操作。
10. Windows: 我嚴格按照install的要求做,可是還是不能讓我的php在IIS下工作。
確定任何想要運行PHP的用戶有操作php.exe的許可權! IIS 使用匿名的inter用戶,它是在IIS安裝時系統自動增加的。 這個用戶需要操作 php.exe的許可權. 還有,任何需要授權的用戶也必須有訪問 php.exe的許可權。 在 IIS4下,你要告訴它PHP是一個腳本引擎。
⑶ php命令行工具檢測php文件語法格式是否正確的方法是
使用PHP命令行,如果你是Windows下,需要先設置環境變數
1.右鍵我的電腦->屬性->高級設置
2.點高級->環境變數
⑷ 如何在cmd命令行下運行php
把你安裝後的php.exe文件路徑添加到系統PATH下,就行了
⑸ 如何在windows上安裝phpmd,phpcs和php-cs-fixer命令
在windows上安裝phpmd,phpcs和php-cs-fixer命令方法如下:
Atom編輯器里代碼提示插件linter官方出的linter-phpmd 和 linter-phpcs,都需要基於本地執行腳本,在mac上直接brew直接搞定,在windows上折騰了半天才折騰出來
1. 使用安裝包安裝php第三方包管理器Composer
下載並運行Composer-Setup.exe. 該程序將自動安裝最新版本的Composer 並自動設置執行程序目錄到系統環境變數,安裝完成後可在任何目錄里啟動命令行並使用Composer命令.
2. 安裝 PHP_CodeSniffer、 PHP Mess Detector 和 PHP Coding Standards Fixer
在命令行里運行:
composer global require squizlabs/php_codesniffer;
composer global require phpmd/phpmd;
composer global require fabpot/php-cs-fixer;
3、安螞激裝完成後,將phpcs.bat 、phpmd.bat和php-cs-fixer.bat 所在的目錄 ../.composer/vendor/bin/ 加入到環境變數,然後在命令行悶型襪里執行下phpcs、phpmd、php-cs-fixer兩個命令,不出意外租源就成功啦
注意事項:安裝phpmd和phpcs需要訪問到國外網路,條件允許最好用代理下。
⑹ 如何讓命令行支持PHP語法編譯
在windows環境下,進行相關配置可以讓命令行(cmd)支持PHP語法編譯;甚至是java/c等;默認命令行不支持PHP語法,會報像「此命令不是內部命令」的提示;那應該怎麼配置,其實道理很簡單。
無論是Java還是PHP,根本原來就是讓系統知道你的編譯文件的安裝路徑即可,下面講一下基本步驟:
1、首先第一部找到自己PHP安裝文件的路徑,比如「 F:\wamp\bin\php\php5.3.10 」;
2、配置環境變數:
2.1、桌面」計算機「右鍵=》屬性=》高級系統設置(也可以打開控制面板=》系統【小圖標】=》高級系統設置);
2.2、點擊高級系統設置後會出現一個 系統屬性 的面板,點擊面板里的環境變數按鈕,查看Adminstrator的用戶變數 欄有無PATH變數(默認只有TEMP和TMP),如果沒有點擊新建,有的話點擊編輯;
2.3、新建:變數名里填(PATH);變數值里填PHP路徑(;F:\wamp\bin\php\php5.3.10 ),變數值可以為多個,之間以英文的」;「間隔 ,最前面也必須加一個」;「號。
編輯:在已有的變數值後添加PHP路徑(;F:\wamp\bin\php\php5.3.10 ),記住前面要加分好間隔,後面不加。
3、如此環境配置成功!測試一下:
在開始下的輸入框中輸入cmd進入命令行,輸入php -v 測試,不提示不是內部命令為成功!
⑺ windows下如何實現在命令行下運行PHP文件
window下,假設php安裝目錄為c:\program files\php5\,那麼使用命令窗口進入到該路徑下,敲入php hello.php回車,則會執行當前路徑下的hello.php文件,如果要指向其他路徑下php文件,可以在php 路徑/hello.php ,這種形式稱為CLI模式,我們平時通過瀏覽器看到的那種稱為CGI模式,至於傳遞參數,php文件在cli模式下,直接通過在文件名稱後面接參數,多個參數中間用空格隔開,在php文件裡面是通過兩個變數來獲取參數的,一個是$argv,一個是$argc,前者是傳遞參數的數組,默認第一個為php文件的名稱;後者為$argv的數組個數。
linux下,一般程序安裝都會安裝在/usr/bin/php下面,可以通過man php查看一下,如果有信息說明可以使用,使用方法類似於window下。如果前面這步成立,那麼你可以直接 php php文件 來運行php文件,如果man php沒有信息,則說明當前php執行文件沒有在環境路徑裡面,可以修改環境路徑包含php路徑,也可以類似於window進入php路徑,在執行 php php文件。其他類似於window下。
⑻ 反彈shell小結
反彈shell(reverse shell),就是控制端監聽在某TCP/UDP埠,被控端發起請求到該埠,並將其命令行的輸入輸出轉到控制端。reverse shell與telnet,ssh等標准shell對應,本質上是網路概念的客戶端與服務端的角色反轉。
通常用於被控端因防火牆受限、許可權不足、埠被佔用等情形。
舉例:假設我們攻擊了一台機器,打開了該機器的一個埠,攻擊者在自己的機器去連接目標機器(目標ip:目標機器埠),這是比較常規的形式,我們叫做正向連接。遠程桌面、web服務、ssh、telnet等等都是正向連接。那麼什麼情況下正向連接不能用了呢?
有如下情況:
那麼反彈就很好理解了,攻擊者指定服務端,受害者主機主動連接攻擊者的服務端程序,就叫反彈連接。
簡而言之,反彈shell就是要我們的vps伺服器設置監聽,然後讓伺服器反彈一個shell來連接我們自己的主機,從而使我們能遠程式控制制我們的主機
客戶端執行:
服務端成功接收,客戶端執行命令成功。
成功反彈:
當然由於各種環境不同,服務端不一定有nc,所以還要靠其他手段各顯神通。
項目地址: https://eternallybored.org/misc/netcat/
powercat是netcat的powershell版本,功能免殺性都要比netcat好用的多
注意某些特殊情況需要將powershell腳本進行base64編碼,才能成功反彈。比如sqlserver的命令執行、php中system函數的執行
base64編碼處理:
目標機器執行:
適用於python2環境
考慮實戰中可能沒有python環境
可以先在本地上使用pyinstaller將改文件打包為exe文件,直接上傳exe運行即可。(推薦使用)
實際測試bypass av效果也比較好。
其實msf有相應的模塊可以生成dll,沒事也可以用用這個小工具,輕便快捷,一鍵操作,免殺能力一般,但起碼比msf強,msf生成的基本會被通殺。
將生成的dll文件上傳至被攻擊端
運行命令:
攻擊端用nc監聽,即可反彈cmd
github項目地址: https://github.com/Ridter/MyJSRat
攻擊端運行:
被控端運行:
首先在目標上查看相關命令是否存在:
某些目標的 nc 不支持 -e 參數,有兩個解決思路
要麼使用其他版本的 nc:
要麼配合命名管道進行反彈:
首先,在攻擊者vps的web目錄裡面創建一個index文件(index.php或index.html),內容如下:
然後再目標機上執行如下,即可反彈shell:
補充: curl IP|bash 中的IP可以是任意格式的,可以是十進制、十六進制、八進制、二進制等等
保存為Revs.java文件,編譯執行,成功反彈shell。
項目地址: https://github.com/iagox86/dnscat2
具體原理請參考: python正向連接後門
最後,推薦一個一鍵在線生成反彈shell網站:
https://krober.biz/misc/reverse_shell.php
windows命令行反彈shell(一)
Windows/Linux 下nc 反彈shell
反彈shell原理與實現
Reverse shell cheatsheet
反彈shell的各種姿勢