⑴ php 和nodejs 的各自優勢有哪些,如果無基礎開始,要學那個好
作者:MiseryLee
鏈接:http://www.hu.com/question/35117771/answer/61377174
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。
PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
以上這句話摘於網路。PHP的語法是公認的比較獨特的語法了,集百家之長,再加以創新。學習過OO的同學們一定會對此倍感親切。不過對於我並不長的PHP編碼經歷,讓我無法忍受的一點就是PHP的變數名必須在前面加一個$符號了。
至於Nodejs,Node本身就是Javascript語言,對於Web前端腳本開發者來說,學習Node簡直是如魚得水。Javascript作為腳本語言,在代碼的編寫上有極大的自由(畫外音:PHP也是腳本語言好么!),但是Javascript的非同步編碼風格確實是讓以學習同步編碼風格的語言入門的同學Hold不住。
在語法方面,我更傾向於Nodejs(畢竟人家是寫Javascript出身的233333)。PHP對於臣妾來說寫的實在太累啦~
2.效率
這一點其實沒有必要比較了,
Web語言效率問題,PHP還是Nodejs
看一下這里一樓的大大說的。
Nodejs憑借高效的V8引擎和它非阻塞非同步I/O的特性,在其執行效率上遠遠超過了其他的腳本語言。
Node.js比PHP快14倍!
這里這位大大在效率方面分析的更加到位。當然我並不是在追捧Nodejs,就像這位大大說的
這不是簡單語言細節之爭,而是語言框架之爭。將Node.JS這種非同步機制從Javasctipt搬移到其他語言PHP .NET Java其實都會取得比原來堵塞方式有數十倍提高。
3.使用場景
毋庸置疑,這兩種語言都是為Web開發而生。PHP多樣化的內置方法和庫,讓Web開發變得極其的方便和高效,成熟的語言框架也給開發者提供了足夠高的健壯性和穩定性。而Nodejs以其強大的特性吸引了大量的開發者為其貢獻擴展庫,Nodejs項目雖然還很年輕,但是已經聚集了大量的開發資源。
4.小結
畢竟對PHP了解的較少,所以以上言論中難免有點偏向於Nodejs,但是PHP發展多年屹立不倒肯定是有它的道理的,網路還用的PHP呢。
至於Nodejs,作為一門新興(並不新啊,Javascript可比PHP老多了)語言來講,它獨特的設計特性足夠吸引開發者向它看了。
最終回到題主的問題,不知道題主說的沒有基礎是指完全沒有編程基礎還是沒有伺服器開發基礎?
如果完全沒有編程基礎的話,我建議題主還是先去學習C語言,先入了這一行,再選工具吧~
如果有編程基礎的話,如果之前是學習OO的,建議先從PHP入手,畢竟更容易過渡,並且網路上對於PHP的資料要比Nodejs多得多。
如果之前學習過Javascript,我還是建議先從PHP入手,就像上面說的,先入了這一行,再選工具。伺服器開發也算一個小行了,如果對伺服器開發不了解,對網路機制不了解的話,先從PHP著手,把這些相關知識補充起來。
如果實在是被Nodejs的優勢吸引住了的話,我建議先好好學習Javascript高級編程,深入理解一下異原型鏈和回調機制,這會對入手Nodejs有極大的幫助。
如對您有幫助,望採納,謝謝
⑵ 網站後台用什麼語言開發比較好
PHP到目前仍然只是WEB後台語言,Javascript已經是全棧語言(WEB,桌面,移動,嵌入式,資料庫等都有重要應用),如果編程語言是一種投資,Javascript的長期回報更高。
PHP在實際編程環境里主要仍然是一種OO語言,Javascript實際場景里的多範式應用隨處可見(OOP,Functional,Event Driven,Declarative Programming等等),學習Javascript能打開思維。
WEB開發無可避免的是全棧開發,當需要做前端的事的時候,Javascript是唯一的目標語言。
Javascript的工具鏈比PHP的靈活,迭代更快,社區支持更好(PHP的核心社區小很多);再者,PHP能做的,還沒發現Javascript在V8上做不了的。
⑶ 最高哪個php版本支持iis6
PHP5.3x+IIS6完全配置方法,PHP5.3以上版本全新配置IIS方法 FastCGI方式(一...
在IIS6.0下安裝Fastcgi+PHP來運行PHP程序(未裝alpha),終於實現手工配置 IIS 6 下以 FastCGI 跑 PHP
PS:微軟提升PHP在IIS下的性能 FastCGI Extension for IIS6.0% ~& d# L0 v& T1 o& D( U; ^; j
微軟已經和PHP社區共同努力了一年之久,他們終於研發出 能讓IIS更快地解析PHP的方法,用戶們甚至不需要做基準測試就可以明顯感覺到PHP解析速度加快.早在2006年,微軟就和Zend等廠商一起研發 Windows Server下的優化工作,IIS產品組已經公布了IIS6和7的FastCGI擴展,它能讓PHP執行效率更高. PHP一直以來是IIS的尷尬,用PHP擴展的速度跟不上其它服務端(甚至還有一些致命問題例如在某內存地址報錯),而PHP又比ASP.net普及得 多,因此微軟需要在IIS+PHP上突破市場. 微軟去年底發布了ii6的fastcgi模塊,可以免費下載,使用IIS6的您不妨在您的測試環境上試一下,沒准會有驚喜哦! 今天將伺服器上的php支持改成了fastcgi,目前運行穩定.fastcgi的iis模塊可以讓流行的應用框架在iis上支持fastcgi協議以提 供高性能和可用性的訪問服務,fastcgi面向現有的網路伺服器提供高性能的cgi替代標准。具體php安裝方法我記錄下來,其中包括出現的錯誤.
1.下載 FastCGI For IIS6 5 A( c* Z' E" t1 {. t, X
fcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)- B: u, q, t' H" K: S4 t# J
下載:http//www.iis.net/extensions/FastCGI,選擇: x86. ?8 ~& A7 t7 i
# ? i2 s' U& f% K
或者直接下載:http//go.microsoft.com/?linkid=96556962 v$ { j7 X8 O& ~
下載之後,雙擊運行進行安裝。
(FakeCGI調試工具(備用):下載fake.zip http//blogs.iis.net/rickjames/attachment/1563148.ashx )
' @" ^! W# d' F. @# c5 [
安裝後在 C:WINDOWSsystem32inetsrv 目錄下產生了五個文件。如下圖: B; a5 ]* v8 i% Z% b8 j2 q
同時在 IIS 的 「Web 服務擴展」里多了 FastCGI Handler。2 p3 o- h+ q, M/ d7 q
9 A- R; U( Q5 j8 `% W0 K* x- J. {
下載安裝VC9運行庫 即VISUAL C++ 2008
Microsoft Visual C++ 2008 Redistributable Package (x86)下載地址:
點擊這里下載
2.下載 PHP5.3.0 Windows 版
由於PHP5.3的全新特效及改進,原有的isapi方式解析PHP腳本已經不被支持,PHP從5.3.0以後的版本開始使用微軟的fastcgi模式,這是一個更先進的方式,運行速度更快,更穩定!
新版本的PHP5.3通過以往老方法已經不能在IIS上安裝了,下載IIS下的PHP,下載地址http//windows.php.net/download/,(注意IIS下要選擇VC9的版本)解壓到所需目錄,該目錄需要給予
一、如何選擇PHP5.3的VC9版本和VC6版本
VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。
VC9版本是使用Visual Studio 2008編譯器編譯的,如果你的PHP是用IIS來架設的,那你就選擇VC9版本。
二、如何選擇PHP5.3的Thread Safe和Non Thread Safe版本
先從字面意思上理解,Thread Safe是線程安全,執行時會進行線程(Thread)安全檢查,以防止有新要求就啟動新線程的CGI執行方式而耗盡系統資源。Non Thread Safe是非線程安全,在執行時不進行線程(Thread)安全檢查。
再來看PHP的兩種執行方式:ISAPI和FastCGI。
ISAPI執行方式是以DLL動態庫的形式使用,可以在被用戶請求後執行,在處理完一個用戶請求後不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執行效率,所以如果是以ISAPI來執行PHP,建議選擇Thread Safe版本;
而FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以FastCGI來執行PHP,建議選擇Non Thread Safe版本。
user讀取運行許可權,
選擇:PHP 5.3 (5.3.0)' Z* Z0 r% I) ~! F* r4 f+ V. R' b
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
sha1:
下載 .zip 格式的版本,解壓縮下載的 php-5.3.0-Win32-VC9-x86.zip 文件,並將其復制到:X:Server_Corephp目錄(你可以根據自己的意願解壓到別的目錄。),並給 IIS 啟動帳戶組或用戶賦予讀取和運行許可權。如下圖:
+ A( b2 ^' Y6 K7 N9 ^8 _
: I" N9 {8 q: R* E' h9 j2 D
3. 注冊 PHP 到 FastCGI % U3 L0 {. m1 @+ @# [
打開 C:WINDOWSsystem32inetsrvfcgiext.ini 文件。
; This is the configuration file for the FastCGI handler for IIS 6.0.: O: q. R4 u+ n9 f
; The FastCGI handler will look for this file in the same directory as
; fcgiext.dll. By default, the FastCGI installer will place this file into
; the %windir%system32inetsrv directory.
- E( a5 J3 l' R% H8 n
我個人的理解是,只要「Web 服務擴展」里的 FastCGI Handler 為允許時,在載入 fcgiext.dll 時,會讀取 fcgiext.ini 配置文件的內容,根據裡面的配置為每個網站提供映射。
在 [Types] 下添加以下配置: ; `9 c; v2 t9 b6 W- `; y' r9 H6 H7 S
[Types]/ K. X# n9 p4 I9 e
8 b, @+ K$ f6 }; c4 w
php=PHP
[PHP]
ExePath=X:Server_CorePHPphp-cgi.exe
這里要用:「」不能用「/」,「php」表示擴展名,「PHP」是配置節名稱,以「[PHP]」定義。 (選你自己的安裝的目錄,下同。)
) U. P; P N: w0 |7 D' u" f& h- e( c8 R
4. 配置 php.ini
將 X:Server_CorePHPphp.ini-proction 復制一個,然後重命名為X:Server_CorePHPphp.ini ! q4 H: N9 X) K. X9 e }( S
找到PHP安裝目錄下的php.ini-proction並改名為php.ini文件,找到下面% n4 k. G8 ?4 N# K! P. B
[Date]7 R _* z$ ?% u' ?& t' v
; Defines the default timezone used by the date functions
; http//php.net/date.timezone
; date.timezone =, E+ d8 |! L0 J; N
更改為並去除前面的「;」:
[Date]( c% H4 u" v2 ~4 h( R4 @4 K
; Defines the default timezone used by the date functions
; http//php.net/date.timezone
date.timezone = Asia/Shanghai Q, @2 J ^9 t s) Q0 J
如果不改以上的date.timezone可能打開網頁會提示500錯誤
找到6 s- j% ?# x$ F, h
; On windows:
; extension_dir = "ext"
改為. R- g. Z+ ~8 " D: O9 g
; On windows:
extension_dir = "X:Server_CorePHPext"
9 V2 g8 k' a- V9 " T" u/ z
找到:fastcgi.impersonate = 1;這句,把前面的;去掉, fastcgi.impersonate = 1
如下圖:
5 P5 K9 c- [ n0 J( D( n
找到:short_open_tag= Off;改為
short_open_tag= On3 n2 X2 Y3 c( v) a# y6 X0 g+ {# ]
8 F0 L5 ]7 h8 w6 z. w
至於php.ini裡面的extension開啟方式,根據自己所需,找到:Windows Extensions 在 Windows Extensions 下方的動態模塊配置中,需要打開以下模塊支持:(去掉模塊配置每行前面的;號即可)比如我的是: 7 v; k* P1 c
;extension=php_bz2.dll: n+ O" R$ Z) _7 [* B( c( D. K
;extension=php_curl.dll
;extension=php_dba.dll' f6 Y* p3 T4 R% q- c4 ]& Z7 G
extension=php_mbstring.dll" C* _: V3 z- F% m
extension=php_exif.dll7 l4 N2 N" e& {
;extension=php_fileinfo.dll7 E( X0 ~7 r; C* F9 j
extension=php_gd2.dll5 x9 ^1 g8 Q5 S" B& F
;extension=php_gettext.dll$ O' S. v1 i2 O$ q. H: O; G
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll. a! M+ _) z: _ P* @
extension=php_ldap.dll
;extension=php_ming.dll
;extension=php_mssql.dll3 g0 O) n8 c6 }9 M9 T7 X
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll. K0 q3 p6 t, ^# K) i* K
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll. {& w3 O# E$ , U7 j% y$ r1 I
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll$ T- g9 D& 7 D3 Z+ n# S% U& M
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll. K9 m+ o) O9 @7 W @0 N
;extension=php_soap.dll p& S8 Q' s+ I, F0 L5 a1 v
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll0 H5 ^$ l0 V7 g, M
;extension=php_sybase_ct.dll
;extension=php_tidy.dll2 m' J5 Q; A- T9 n
;extension=php_xmlrpc.dll
;extension=php_xsl.dll% h* t/ J" J) a8 t7 Q( I' n5 R9 F$ q
;extension=php_zip.dll
注意最後一個php_zip.dll這個在我下載下來的php5.3.0的ext內是不存在的,所以如果開啟會報錯誤,如果實在需要這個DLL,可以從PHP5.2中拷貝過去(我的不行)
保存 php.ini 文件,並將其復制到 C:Windows ,並刪除 X:Server_CorePHPphp.ini,不刪除有時IIS報500錯!
4 B0 M. ]9 U E3 d1 V
5. 配置網站 q% W* / n) c' `- Y
; t4 X! x( V, T! [) [2 |4 [
打開IIS管理器,網站上點右鍵-屬性-主目錄-配置-添加,配置如下圖" j9 W, {" c4 S% @2 I1 x
& Q6 _: a8 g, m q/ R, R
# ^% v* ?# G6 |
可執行文件路徑:C:WINDOWSsystem32inetsrvfcgiext.dll
6.相關許可權配置
C:WINDOWSsystem32inetsrvfcgiext.dll 的許可權,NETWORK_SERVICE和IUSR_***(Internet來賓賬戶)的可讀和運行許可權。
PHP安裝目錄的許可權,NETWORK_SERVICE的讀和運行許可權
網站所在目錄的許可權,IUSR_***(Internet來賓賬戶)的讀取和運行權,需要寫入的目錄單獨再給寫入權
7. 寫個 php 測試下吧
" m: |: h# L' b% y; }
修改完在IIS上或者命令提示符運行iisreset命令重啟IIS服務,這步很重要!
( M6 w6 {! R& y ~4 F
測試是否安裝成功!
建立一個網站,phpinfo.php文件內容為:/ o+ p' n$ t8 T+ O( b2 s P. P
文件:phpinfo.php
<?php
phpinfo();
?>
6 j- O: M6 | [, p/ p t
看到類似以下效果說明你的伺服器可以跑 php 了。
⑷ 學nodejs還是php
PHP
Rasmus Lerdorf在1994年創造出了PHP。它是由安裝在web伺服器(Apache、Ngix)上的組件運行的。PHP代碼可以和HTML混合到一塊。 對於初學者就能很快寫出很有價值的代碼,這並不需要太多的練習。 這讓PHP變得越來越流行, 現在全球百分之八十的伺服器上都在運行著PHP。全球四分之一的網站都在用的一個內容管理系統–WordPress,就是用PHP寫的。
Node.js
Ryan Dahl在2009年創造了Node.js。它是基於Google的V8 JavaScript解釋引擎(在Chrome瀏覽器里它負責執行客戶端的JavaScript代碼)。與其它語言不同的是Node.js內置了處理網路請求和響應的函數庫,所以你不需要單獨的伺服器(Apache、Ngix)或者其他依賴。Node.js雖然很新但是很快就獲得了極大的追捧。在很多的大公司都有在使用,例如:Microsoft,Yahoo,LinkedIn和PayPal。