⑴ php怎麼獲取系統信息和伺服器詳細信息
獲取系統類型及版本號: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)
只獲取系統類型: php_uname('s') (或:PHP_OS,例:Windows NT)
只獲取系統版本號: php_uname('r') (例:5.1)
獲取PHP運行方式: php_sapi_name() (PHP run mode:apache2handler)
獲取前進程用戶名: Get_Current_User()
獲取PHP版本: PHP_VERSION
獲取Zend版本: Zend_Version()
獲取PHP安裝路徑: DEFAULT_INCLUDE_PATH
獲取當前文件絕對路徑: __FILE__
獲取Http請求中Host值: $_SERVER["HTTP_HOST"] (返回值為域名或IP)
獲取伺服器IP: GetHostByName($_SERVER['SERVER_NAME'])
接受請求的伺服器IP: $_SERVER["SERVER_ADDR"] (有時候獲取不到,推薦用:GetHostByName($_SERVER['SERVER_NAME']))
獲取客戶端IP: $_SERVER['REMOTE_ADDR']
獲取伺服器解譯引擎: $_SERVER['SERVER_SOFTWARE']
獲取伺服器CPU數量: $_SERVER['PROCESSOR_IDENTIFIER']
獲取伺服器系統目錄: $_SERVER['SystemRoot']
獲取伺服器域名: $_SERVER['SERVER_NAME'] (建議使用:$_SERVER["HTTP_HOST"])
獲取用戶域名: $_SERVER['USERDOMAIN']
獲取伺服器語言: $_SERVER['HTTP_ACCEPT_LANGUAGE']
獲取伺服器Web埠: $_SERVER['SERVER_PORT']
訪問用戶的瀏覽器信息: $_SERVER['HTTP_USER_AGENT'];
<script language="JavaScript">
document.write("瀏覽器名稱: "+navigator.appName+"<br>");
document.write("瀏覽器版本號: "+navigator.appVersion+"<br>");
document.write("系統語言: "+navigator.systemLanguage+"<br>");
document.write("系統平台: "+navigator.platform+"<br>");
document.write("瀏覽器是否支持cookie: "+navigator.cookieEnabled+"<br>");
</script>
⑵ php中如何取得伺服器操作系統的默認編碼方式
有幾個地方可以設置網站編碼 apache里可以設置編碼 php配置文件里可以設置 另一個就是用head函數發送編碼,,head發送的編碼,主要是供瀏覽器解析用的 可以把你做這個上傳文件名編碼轉換的意義說一下么追問: 回:如果是中文文件名不轉換會失敗回答: 正常的做法是,,文件上傳後,用md5或其它方式重命名,,然後中文名和擴展名存資料庫,, 在下載的時候,,從資料庫取出中文名,,再還原追問: 呵呵,我就是問不正常的情況呀,我就是想上傳並保存中文文件名的文件,wordpress就不能上傳中文名文件。就到這里,結了。
⑶ php中如何取得伺服器操作系統的默認編碼方式
windows默認就是此編碼格式;所以對系統進行判定即可;
⑷ 怎樣獲取伺服器跟地路徑php
PHP編程中經常需要用到一些伺服器的一些資料,特把$_SERVER的詳細參數整理下,方便以後使用。
$_SERVER['PHP_SELF'] #當前正在執行腳本的文件名,與 document root相關。
$_SERVER['argv'] #傳遞給該腳本的參數。
$_SERVER['argc'] #包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #伺服器使用的 CGI 規范的版本。例如,「CGI/1.1」。
$_SERVER['SERVER_NAME'] #當前運行腳本所在伺服器主機的名稱。
$_SERVER['SERVER_SOFTWARE'] #伺服器標識的字串,在響應請求時的頭部中給出。
$_SERVER['SERVER_PROTOCOL'] #請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
$_SERVER['REQUEST_METHOD'] #訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
$_SERVER['QUERY_STRING'] #查詢(query)的字元串。
$_SERVER['DOCUMENT_ROOT'] #當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。
$_SERVER['HTTP_ACCEPT'] #當前請求的 Accept: 頭部的內容。
$_SERVER['HTTP_ACCEPT_CHARSET'] #當前請求的 Accept-Charset: 頭部的內容。例如:「iso-8859-1,*,utf-8」。
$_SERVER['HTTP_ACCEPT_ENCODING'] #當前請求的 Accept-Encoding: 頭部的內容。例如:「gzip」。
$_SERVER['HTTP_ACCEPT_LANGUAGE']#當前請求的 Accept-Language: 頭部的內容。例如:「en」。
$_SERVER['HTTP_CONNECTION'] #當前請求的 Connection: 頭部的內容。例如:「Keep-Alive」。
$_SERVER['HTTP_HOST'] #當前請求的 Host: 頭部的內容。
$_SERVER['HTTP_REFERER'] #鏈接到當前頁面的前一頁面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] #當前請求的 User_Agent: 頭部的內容。
$_SERVER['HTTPS'] — 如果通過https訪問,則被設為一個非空的值(on),否則返回off
$_SERVER['REMOTE_ADDR'] #正在瀏覽當前頁面用戶的 IP 地址。
$_SERVER['REMOTE_HOST'] #正在瀏覽當前頁面用戶的主機名。
$_SERVER['REMOTE_PORT'] #用戶連接到伺服器時所使用的埠。
$_SERVER['SCRIPT_FILENAME'] #當前執行腳本的絕對路徑名。
$_SERVER['SERVER_ADMIN'] #管理員信息
$_SERVER['SERVER_PORT'] #伺服器所使用的埠
$_SERVER['SERVER_SIGNATURE'] #包含伺服器版本和虛擬主機名的字元串。
$_SERVER['PATH_TRANSLATED'] #當前腳本所在文件系統(不是文檔根目錄)的基本路徑。
$_SERVER['SCRIPT_NAME'] #包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
$_SERVER['REQUEST_URI'] #訪問此頁面所需的 URI。例如,「/index.html」。
$_SERVER['PHP_AUTH_USER'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。
$_SERVER['PHP_AUTH_PW'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。
⑸ php中如何取得伺服器操作系統的默認編碼方式
有幾個地方可以設置網站編碼
apache里可以設置編碼
php配置文件里可以設置
另一個就是用head函數發送編碼,,head發送的編碼,主要是供瀏覽器解析用的
可以把你做這個上傳文件名編碼轉換的意義說一下么追問:
回:如果是中文文件名不轉換會失敗回答:
正常的做法是,,文件上傳後,用md5或其它方式重命名,,然後中文名和擴展名存資料庫,,
在下載的時候,,從資料庫取出中文名,,再還原追問:
呵呵,我就是問不正常的情況呀,我就是想上傳並保存中文文件名的文件,wordpress就不能上傳中文名文件。就到這里,結了。
⑹ 如何配置php伺服器
配置php伺服器對於程序員很重要,但很多人都不會.,那麼如何配置php伺服器呢?下面是我收集整理的如何配置php伺服器,希望對大家有幫助~~
工具/原料
windows server 2008 和 windows server 2003 伺服器操作系統
fastcgi、php、mysql安裝包
IIS6安裝配置PHP環境
11. 安裝IIS
IIS是windows平台下比較成熟的web服務,安裝方法也非常簡單。
打開“開始”菜單,點擊“管理您的伺服器”(如圖所示),點擊“添加或刪除角色”(如圖所示)。
3Windows server 2008伺服器防火牆配置
1) 在控制面板中打開網路和共享中心
2) 點擊“windows防火牆”彈出防火牆配置窗口,在此窗口中要確認防火牆服務已經開啟
3) 單擊“允許程序或功能通過Windows防火牆”彈出網路服務埠配置窗口,在此窗口中可以選擇允許打開埠並通信的網路服務,單擊“允許運行另一程序”來自定義開啟某一網路服務或埠
4用戶管理
系統中用戶的數量能越少越好,並且每個用戶都被用於特定的功能,如可以新建一個專門用於對網站進行匿名授權的賬戶(如條件允許,可以為每個網站新建一個獨立的賬戶進行分別授權,這些能夠隔離開各網站的授權,提高各網站的安全性,不至於一個網站被入侵後能夠有許可權訪問到其它網站的文件目錄)。另外最重要的一點是要為每個賬戶設置一個獨立且復雜的密碼,防止賬戶密碼被猜解和窮舉。
5文件系統許可權管理
l C盤只給administrators 和system許可權,其他的許可權不給,其他的盤也可以這樣設置,這里給的system許可權也不一定需要給,只是由於某些第三方應用程序是以服務形式啟動的,需要加上這個用戶,否則造成啟動不了。
l Windows目錄要加上給users的默認許可權,否則ASP和ASPX等應用程序就無法運行。其實沒有必要單獨設置Instsrv和temp等目錄許可權。
l 另外在c:/Documents and Settings/這里相當重要,後面的目錄里的許可權根本不會繼承從前的設置,如果僅僅只是設置了C盤給administrators許可權,而在All Users/Application Data目錄下會 出現everyone用戶有完全控制許可權,這樣入侵這可以跳轉到這個目錄,寫入腳本或只文件,再結合其他漏洞來提升許可權;
譬如利用serv-u的本地溢出提升許可權,或系統遺漏有補丁,資料庫的弱點,甚至社會工程學等等N多方法,在用做web/ftp伺服器的系統里,建議是將這些目錄都設置的鎖死。其他每個盤的目錄都按照這樣設置,每個盤都只給adinistrators許可權。
另外,還將:
net.exe
cmd.exe
tftp.exe
netstat.exe
regedit.exe
at.exe
attrib.exe
cacls.exe
format.exe
這些文件都設置只允許administrators訪問。
l 網站的目錄最好獨立到一個磁碟中,新建一個為網站匿名訪問而獨立授權的賬戶,讓此賬戶可以訪問和編輯此目錄,移除其它不必要的賬戶對此目錄的訪問許可權,能有效防止網站被入侵後從而涉及到整個系統被控制
END
日常維護建議
1定期運行安全軟體進行快速掃描
定期運行一下安全軟體,可以看到安全軟體的引擎或病毒庫是否已經更新到了最新版本,如果沒有可以即時查找原因,看是否是安全軟體未運行、升級埠被禁用或其它原因,雖然安全軟體可以在後台即時掃描各種文件操作,以防止病毒入侵,但有些惡意軟體、流氓軟體或插件則不是實時防護的,雖然這些軟體不會造成伺服器宕機,但也會影響伺服器性能。
2定期檢查防火牆埠配置
隨著伺服器上的網路服務越來越多,需要打開的網路埠也越來越多,但有些埠是不需要開放的,例如你安裝了一個資料庫軟體(mysql、oracle等),這些資料庫服務很可能只需要在你伺服器的內部訪問,就完全沒有必要讓其通過防火牆,這樣能夠提高伺服器的安全,伺服器對外提供的埠越少越好;
雖然在安裝網路服務的過程中,防火牆會提示你有網路埠正在打開,是否允許通過防火牆,但有些管理員沒有細心看提示,直接就同意了,造成了大量沒有必要打開的網路埠被打開了,特別是一些木馬或惡意軟體會混水摸魚,偽裝提示信息來誘騙管理員打開網路埠,造成大量的安全隱患。進入防火牆配置界面,選擇相應的埠或網路服務,點擊“詳細信息”則可以看到此項應用的詳細信息,根據這些信息來判斷其是否應該開啟這個埠。
3任務管理器中觀察有無可疑進程,了解系統資源使用情況
任務管理器可以簡單並快速的了解服務系統資源的使用情況,並即時查看系統運行的進程和他們佔用的系統資源,根據伺服器上已開啟的各種應用的服務來判斷哪些進程是非法的,哪些進程佔用的系統資源過多。了解到這些信息後就可以即時的對伺服器進行調整,特別是佔用資源過多的進程進行分析,看是否有什麼異常並即時進行調整。
l 觀察系統進程,並自定義進程屬性
查看網路使用情況
查看系統資源使用情況
檢查IIS,了解網站安裝情況
隨時了解伺服器上網站的安裝狀況,並做以下檢查:
1、看各個網站定義的主機頭是否異常
2、 綁定的域名是否完整
3、 主目錄設置是正確
4、用戶許可權設置是否合理
5、 查看IIS的應用程序池設置是否合理,每個池下面託管的網站是否過多,是否需要設置新的應用池,是否有多餘的應用池可以刪除。
查看系統日誌,仔細檢查錯誤、警告日誌發生的原因,並急時修復相應的問題。
檢查系統用戶,查看有無多餘,可疑用戶賬戶,查看每個賬戶所屬的用戶組,特別是administrators組下面的用戶。伺服器被入侵時會出現一些欺騙性的賬戶並被加入到administrators組中,特別留心新建的多餘賬戶,弄清這些賬戶的用途,如果發現是入侵者建立的賬戶,要即時查找賬戶是被創建的原因,並修復相應的漏洞。
檢查文件系統,確保磁碟被合理分區,各個分區應該有各自的功能,如系統、資料庫、網站、備份等。各個分區的用戶授權是不相同的,如系統、備份等不需要網站的專門授權賬戶訪問,資料庫分區需要對資料庫賬戶進行單獨的授權等。既然規劃好了文件分區和功能,並進行了相應的授權,就要防止文件被亂放,以免造成安全隱患。
還要經常檢查各種新建的文件夾和文件(特別是來歷不明,名稱畸形的隱藏文件夾和文件)這些都有可能是入侵者留下的入侵痕跡。
清除垃圾文件,隨時系統運行時間的增加,會產生很多的臨時文件和日誌文件,佔用寶貴的磁碟資源,如果磁碟的可用空間過小(特別是系統盤)還會影響伺服器性能。
1、臨時文件(安裝程序、系統升級、應用程序等產生的)產生的,主要在系統盤,可以看哪些文件夾的體積異常大,可分析其內部文件,確認是臨時文件後將其刪除
2、 日誌文件,主要是IIS產生的,這些日誌文件對於查看網站運行狀態、訪問歷史很有用,但日誌有時效性,如果超過其三個月就沒有什麼用處了,但它會佔用大量的磁碟空間,所以需要定期將其刪除。
定期檢查磁碟狀態並進行碎片整理,隨著系統運行時間的增長,特別是大量的IO操作後,磁碟上會產生大量的文件碎片,這些碎片過多則會嚴重影響伺服器性能,所以定期(建議一個月)進行磁碟碎片檢查,如果系統提醒需要進行碎片整理,則進行整理。
及時升級操作系統補丁,操作系統有各種大量的補丁,特別是一些重要的安全補丁需要即時升級,這樣會有效防止黑客和病毒入侵。
及時備份重要的文件、應用、資料庫。備份分為本地備份和異地備份,有條件的可以進行異地備份,備份是為了以防萬一,當數據丟失或應用損壞時,備份就是救命稻草,因此合理的備份計劃是非常有必要的。
⑺ php 獲取伺服器計算機名和伺服器域名
1、做成web伺服器需要滿足:域名或者公網ip,電腦安裝配置web服務,開啟80埠允許訪問,網站程序。
2、域名或者公網ip,這一點一般家用寬頻沒有固定的公網ip,常用的動態域名解析花生殼,科邁動態解析,建議申請使用花生殼動態域名解析,並設置到路由器上,這樣網站的訪問域名是花生殼的子域名。
3、如果有公網固定ip,建議購買一個域名解析到這個ip上,這個公網ip可以在電腦直接設定。web綁定,防火牆允許80埠就可以了。
4、電腦安裝配置web服務,這個條件比較好實現 ,找個伺服器操作系統,如win2003系統,安裝上iis組件就可以了,默認80就打開了,然後再配置一下程序需要的環境。
5、如果.net程序就安裝net framwork相應版本,如果php就配置php+mysql環境。
6、家用寬頻默認80埠在路由器不開放的,需要在路由器上做埠映射,將個人電腦ip 80埠通過寬頻路由映射出去。
7、網站程序,自己會開發了可以自己做,不會了到網上下載一些開源程序就可以了。
⑻ php 如何獲取伺服器的信息
伺服器變數 $_SERVER 詳解:
1、$_SESSION['PHP_SELF'] — 獲取當前正在執行腳本的文件名
2、$_SERVER['SERVER_PROTOCOL'] — 請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
3、$_SERVER['REQUEST_TIME'] — 請求開始時的時間戳。從 PHP 5.1.0 起有效。和time函數效果一樣。
4、$_SERVER['argv'] — 傳遞給該腳本的參數。我試了下,get方法可以得到$_SERVER['argv'][0];post方法無法給他賦值。
5、$_SERVER['SERVER_NAME'] — 返回當前主機名。
6、$_SERVER['SERVER_SOFTWARE'] — 伺服器標識的字串,在響應請求時的頭信息中給出。 如Microsoft-IIS/6.0
7、$_SERVER['REQUEST_METHOD'] — 訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
8、$_SERVER['QUERY_STRING'] — 查詢(query)的字元串(URL 中第一個問號 ? 之後的內容)。
9、$_SERVER['DOCUMENT_ROOT'] — 當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。 如E:\server
10、$_SERVER['HTTP_ACCEPT'] — 當前請求的 Accept: 頭信息的內容。
11、$_SERVER['HTTP_ACCEPT_CHARSET'] — 當前請求的 Accept-Charset: 頭信息的內容。例如:「iso-8859-1,*,utf-8」。
12、$_SERVER['HTTP_ACCEPT_ENCODING'] — 當前請求的 Accept-Encoding: 頭信息的內容。例如:「gzip」。
13、$_SERVER['HTTP_ACCEPT_LANGUAGE'] — 當前請求的 Accept-Language: 頭信息的內容。例如:「en」。
14、$_SERVER['HTTP_CONNECTION'] — 當前請求的 Connection: 頭信息的內容。例如:「Keep-Alive」。
15、$_SERVER['HTTP_HOST'] — 當前請求的 Host: 頭信息的內容。
16、$_SERVER['HTTP_REFERER'] — 鏈接到當前頁面的前一頁面的 URL 地址。
17、$_SERVER['HTTP_USER_AGENT'] — 返回用戶使用的瀏覽器信息。也可以使用 get_browser() 得到此信息。
18、$_SERVER['HTTPS'] — 如果通過https訪問,則被設為一個非空的值,否則返回off.
19、$_SERVER['REMOTE_ADDR'] — 正在瀏覽當前頁面用戶的 IP 地址。
20、$_SERVER['REMOTE_HOST'] — 正在瀏覽當前頁面用戶的主機名。反向域名解析基於該用戶的 REMOTE_ADDR。如本地測試返回127.0.0.1
21、$_SERVER['REMOTE_PORT'] — 用戶連接到伺服器時所使用的埠。我在本機測試沒通過,不知道什麼原因。
22、$_SERVER['SCRIPT_FILENAME'] — 當前執行腳本的絕對路徑名。如返回E:\server\index.php
23、$_SERVER['SERVER_ADMIN'] — 該值指明了 Apache 伺服器配置文件中的 SERVER_ADMIN 參數。如果腳本運行在一個虛擬主機上,則該值是那個虛擬主機的值
24、$_SERVER['SERVER_PORT'] — 伺服器所使用的埠。默認為「80」。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 埠。
25、$_SERVER['SERVER_SIGNATURE'] — 包含伺服器版本和虛擬主機名的字元串。
26、$_SERVER['PATH_TRANSLATED'] — 當前腳本所在文件系統(不是文檔根目錄)的基本路徑。這是在伺服器進行虛擬到真實路徑的映像後的結果。 Apache 2 用 戶可以使用 httpd.conf 中的 AcceptPathInfo On 來定義 PATH_INFO。
27、$_SERVER['SCRIPT_NAME'] — 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。
28、$_SERVER['REQUEST_URI'] — 訪問此頁面所需的 URI。例如,「/index.html」。
29、$_SERVER['PHP_AUTH_DIGEST'] — 當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變數被設置成客戶端發送的「Authorization」HTTP 頭內容(以便作進一步的認證操作)。
30、$_SERVER['PHP_AUTH_USER']– 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。
31、$_SERVER['PHP_AUTH_PW'] — 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。
32、$_SERVER['AUTH_TYPE']–當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是認證的類型。