版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TableofContents
PHP7高性能學(xué)習(xí)手冊(cè)
PHP7高性能學(xué)習(xí)手冊(cè)
零、序言
一、構(gòu)建環(huán)境
二、PHP7的新特性
三、提高PHP7應(yīng)用性能
四、提高數(shù)據(jù)庫性能
五、調(diào)試與評(píng)測(cè)
六、PHP應(yīng)用壓力/負(fù)載測(cè)試
七、PHP編程的最佳實(shí)踐
八、附錄A:使生活更輕松的工具
九、附錄B:MVC和框架
PHP7高性能學(xué)習(xí)手冊(cè)
來源:https://gitee,com/apachecn/apach/cn-php-zh/blob/master/docs/1carrrphp7-h
iperf/SUMMARY.md
PHP7高性能學(xué)習(xí)手冊(cè)
原文:https:〃gitee.com/apachecn/apachecn-php-zh/blob/master/docs/learn-php7-h
iperf/README.md
原文:LearningPHP1highperformance
協(xié)議:CCBY-NC-SA4.0
階段:機(jī)翻(1)
自豪地采用谷歌翻譯
有沒有人知道某種秘方,不必永生只要回憶不忘。我不怕死亡,只害怕遺忘,回憶是你我
生存的地方。一一五月天《轉(zhuǎn)眼》
?在線閱讀
?在線閱讀(Gitee)
?ApacheCN學(xué)習(xí)資源
貢獻(xiàn)指南
本項(xiàng)目需要校對(duì),歡迎大家提交PullRequesto
請(qǐng)您勇敢地去翻譯和改進(jìn)翻譯。雖然我們追求卓越,但我們并不要求您做到十全十美,因
此請(qǐng)不要擔(dān)心因?yàn)榉g上犯錯(cuò)一一在大部分情況下,我們的服務(wù)器已經(jīng)記錄所有的翻譯,
因此您不必?fù)?dān)心會(huì)因?yàn)槟氖д`遭到無法挽回的破壞。(改編自維基百科)
聯(lián)系方式
負(fù)責(zé)人
?飛龍:562826179
其他
?在我們的apachecn/apachecn-php-zhgithub上提issue.
?發(fā)由B件至llEmail:apachecn@163.com.
?在我們的組織學(xué)習(xí)交流群中聯(lián)系群主/管理員即可.
熊
贊助我們
零、序言
原文:https:〃gitee.com/apachecn/apachecn-php-zh/blob/master/docs/learn-php7-h
iperf/O.md
PHP社區(qū)幾十年來面臨一個(gè)巨大的問題:性能。不管他們擁有多么強(qiáng)大的硬件,最終,PH
P本身就是一個(gè)瓶頸。使用PHP5.4.X、5.5.x和5.6.x,PHP的性能開始提高,但在高
負(fù)載應(yīng)用中仍然是一個(gè)巨大的問題。社區(qū)開發(fā)了AlternativePHPCache(APC)和Zend
OpCache等緩存工具,對(duì)操作碼進(jìn)行高性能緩存,這些工具對(duì)性能有很好的影響。
為了解決PHP的性能問題,F(xiàn)acebook構(gòu)建了自己的開源工具HHVM(HipHop虛擬機(jī))。
根據(jù)他們的官方網(wǎng)站,HHVM使用實(shí)時(shí)(JIT)編譯來實(shí)現(xiàn)優(yōu)異的性能,同時(shí)保持PHP提
供的開發(fā)靈活性。與PHP相比,HHVM具有出色的性能,在生產(chǎn)中廣泛用于Magento等
大型應(yīng)用。
PHP使用PHP下一代(PHPNG)與HHVM開戰(zhàn)。PIIPNG的全部目的是提高性能,重點(diǎn)是重
寫和優(yōu)化Zend引擎內(nèi)存分配和PIIP數(shù)據(jù)類型。世界各地的人們開始對(duì)PHPNG和HHVM
進(jìn)行基準(zhǔn)測(cè)試,根據(jù)他們的說法,PHPNG的表現(xiàn)優(yōu)于HHVMo
最后,PHPNG與PHP的主分支合并,經(jīng)過大量的優(yōu)化和完全重寫,PHP7發(fā)布了,性能有
了巨大的提高。PHP7仍然不是JIT,但它的性能非常好,與HHVM類似。這是較舊版本
PHP的一個(gè)巨大性能提升。
這本書涵蓋的內(nèi)容
第一章環(huán)繚改置介紹了如何設(shè)置不同的開發(fā)環(huán)境,包括在Windows,不同Linux發(fā)行版
上安裝NGINX、PHP7、Percona服務(wù)器,以及為開發(fā)目的設(shè)置流浪虛擬機(jī)。
第2章刖神的新特性,涵蓋了PHP7中引入的主要新特性,包括類型提示、組使用聲
明、匿名類和新運(yùn)算符,如Spaceship運(yùn)算符、Null合并運(yùn)算符和統(tǒng)一變量語法。
第3章提高PHP7應(yīng)用性能介紹X提高和沖展PHP7應(yīng)用性能的不同技術(shù)。在本章中,
我們將介紹NGINX和Apache、CDN和CSS/JavaScript的優(yōu)化,例如合并和縮小它們、
整頁緩存以及安裝和配置Varnisho最后,我們討論了一個(gè)理想的應(yīng)用開發(fā)基礎(chǔ)設(shè)施設(shè)置。
第4章提高數(shù)據(jù)庫傀能介紹了優(yōu)化MySQL和Percona服務(wù)器配置以獲得高性能的技術(shù)。
此外,它還涵蓋了監(jiān)視數(shù)據(jù)庫性能的不同工具。它還包括用于緩存對(duì)象的Memcached和
Redis(>
第5章嫄抗初部潮介紹了調(diào)試和評(píng)測(cè)技術(shù),包括使用Xdebug進(jìn)行調(diào)試和評(píng)測(cè)、使用Su
blimeText3和Eclipse進(jìn)行調(diào)試以及PHP調(diào)試欄。
第6章壓力/負(fù)載測(cè)試PHP應(yīng)府介紹了對(duì)應(yīng)用進(jìn)行壓力和負(fù)載測(cè)試的不同工具。它涵蓋
ApacheJMeter>ApacheBcnch和負(fù)載測(cè)試。本文還介紹了如何在PHP7和PHP5.6上加載
測(cè)試不同的開源系統(tǒng),如Magento、Drupal和WordPress,并比較了它們?cè)赑HP7和PH
P5.6上的性能。
第7章PHP編程也最隹實(shí)我介紹了一些生成質(zhì)量標(biāo)準(zhǔn)代碼的最佳實(shí)踐。它涵蓋了編碼風(fēng)
格、設(shè)計(jì)模式、面向服務(wù)的體系結(jié)構(gòu)、測(cè)試驅(qū)動(dòng)開發(fā)、Git和部署。
附錄A篦化空活的Z美更詳細(xì)地討論了其中三種工具。我們將討論的工具是Composer.G
it和Gruntwatch。
附錄B材力和框架涵蓋了MVC設(shè)計(jì)模式和PHP開發(fā)中使用的最流行的框架,包括Larav
el、Lumen和Apigility。
這本書你需要什么
任何符合以下軟件最新版本的硬件規(guī)范都應(yīng)足以閱讀本書:
?操作系統(tǒng):Debian或Ubuntu
?軟件:NGINX、php7>MySQL、PerconaDB>Redis>Memcached>Xdebug>apach
ejmeter^ApacheBench>seave和Git
這本書是給誰的
這本書是為那些有P11P編程基本經(jīng)驗(yàn)的人準(zhǔn)備的。如果您正在開發(fā)性能關(guān)鍵型應(yīng)用,那
么這本書適合您。
公約
在本書中,您將發(fā)現(xiàn)許多文本樣式可以區(qū)分不同類型的信息。下面是這些風(fēng)格的一些例子,
并解釋了它們的含義。
文本中的代碼字、數(shù)據(jù)庫表名、文件夾名、文件名、文件擴(kuò)展名、路徑名、虛擬URL、用
戶輸入和Twitter句柄如下所示:“我們可以通過使用include指令來包含其他上下文。
代碼塊設(shè)置如下:
location'\.php${fastcgi_pass127.0.0.1:9000;fastcgi_paramSCRIP
T_FILENAMEcomplete_path_webroot_folder$fastcgi_script_name;includefast
cgi_params;}
當(dāng)我們希望提請(qǐng)您注意代碼塊的特定部分時(shí),相關(guān)行或項(xiàng)目以粗體顯示:
server{roothtml;indexindex,phpindex,htmlindex,htm;…
任何命令行輸入或輸出的編寫方式如下:
php-cgi-b127.0.0.1:9000
新術(shù)語和重要詞語以粗體顯示。您在屏幕上看到的文字(例如,在菜單或?qū)υ捒蛑校╋@
示在文本中,如下所示:“單擊下一個(gè)按鈕將移動(dòng)到下一個(gè)屏幕?!?/p>
注
警告或重要注釋顯示在這樣的框中。
提示
提示和技巧如下所示。
讀者反饋
我們歡迎讀者的反饋。讓我們知道你對(duì)這本書的看法你喜歡還是不喜歡。讀者反饋對(duì)我們
來說很重要,因?yàn)樗梢詭椭覀冮_發(fā)出您將真正從中獲得最大收益的標(biāo)題。
要向我們發(fā)送總體反饋,只需發(fā)送電子郵件<[feedback@packtpub.com](mailto:feedback@packtpub.co
m)>,并在郵件主題中提及該書的標(biāo)題。
如果您對(duì)某個(gè)主題有專業(yè)知識(shí),并且您有興趣撰寫或貢獻(xiàn)一本書,請(qǐng)參閱我們的作者指南
www.packtpub.com/authors。
客戶支持
既然您是一本Packt圖書的驕傲擁有者,我們有很多東西可以幫助您從購買中獲得最大
收益。
下載示例代碼
您可以從您的帳戶下載本書的示例代碼文件htt.p:〃www.packtpub.com。如果您在其他
地方購買了本書,您可以訪問http:〃www.packtpub.com/support并注冊(cè),將文件直接通
過電子郵件發(fā)送給您。
您可以通過以下步驟下載代碼文件:
1.使用您的電子郵件地址和密碼登錄或注冊(cè)我們的網(wǎng)站。
2.將鼠標(biāo)指針懸停在頂部的支架選項(xiàng)卡上。
3.點(diǎn)擊代碼下載&勘誤表。
4.在搜索框中輸入圖書名稱。
5.選擇要下載代碼文件的書籍。
6.從您購買本書的下拉菜單中選擇。
7.點(diǎn)擊代碼下載。
您也可以通過點(diǎn)擊Packt出版網(wǎng)站上該書網(wǎng)頁上的代碼文件按鈕下載代碼文件。在搜索
框中輸入圖書名稱即可訪問此頁面。請(qǐng)注意,您需要登錄到您的Packt帳戶。
下載文件后,請(qǐng)確保使用以下最新版本解壓或解壓縮文件夾:
?WinRAR/7-ZipforWindows
?適用于Mac的Zipeg/iZip/UnRarX
?適用于Linux的7-Zip/PeaZip
下載本書彩色圖片
我們還為您提供了一個(gè)PDF文件,其中包含本書中使用的屏幕截圖/圖表的彩色圖像。彩
色圖像將幫助您更好地了解輸出中的更改。您可以從下載此文件https:〃www.packtpub.
com/sites/default/files/downloads/LearningPHP7HighPerformanceColorImages,pdf°
勘誤表
雖然我們已盡一切努力確保內(nèi)容的準(zhǔn)確性,但錯(cuò)誤確實(shí)會(huì)發(fā)生。如果您在我們的一本書中
發(fā)現(xiàn)錯(cuò)誤,可能是文本或代碼中的錯(cuò)誤,如果您能向我們報(bào)告,我們將不勝感激。通過這
樣做,您可以使其他讀者免于沮喪,并幫助我們改進(jìn)本書的后續(xù)版本。如果您發(fā)現(xiàn)任何錯(cuò)
誤,請(qǐng)?jiān)L問進(jìn)行報(bào)告http://www.packtpub.com/submit-errata,選擇您的書籍,點(diǎn)擊
勘誤表提交表鏈接,輸入您勘誤表的詳細(xì)信息、。一旦您的勘誤表得到驗(yàn)證,您的提交將
被接受,勘誤表將上載到我們的網(wǎng)站或添加到該標(biāo)題勘誤表部分下的任何現(xiàn)有勘誤表列表
中。
要查看之前提交的勘誤表,請(qǐng)轉(zhuǎn)至https:〃www.packtpub.com/books/content/support
并在搜索字段中輸入圖書名稱。所需信息將出現(xiàn)在勘誤表部分下。
盜版
在互聯(lián)網(wǎng)上盜版版權(quán)材料是所有媒體都面臨的一個(gè)持續(xù)問題。在Packt,我們非常重視版
權(quán)和許可證的保護(hù)。如果您在互聯(lián)網(wǎng)上發(fā)現(xiàn)任何形式的非法復(fù)制品,請(qǐng)立即向我們提供地
址或網(wǎng)站名稱,以便我們采取補(bǔ)救措施。
請(qǐng)致電〈[copyright@packtpub.com](maiIto:copyrightSpacktpub.com)>與我彳|]聯(lián)系,并提供可疑盜版材
料的鏈接。
我們感謝您在保護(hù)我們的作者方面提供的幫助以及我們?yōu)槟鷰碛袃r(jià)值內(nèi)容的能力。
問題
如果您對(duì)本書的任何方面有任何問題,可以通過〈[questions@packtpub.com](mai1to:questions@pack
tpub.c°m)>與我們聯(lián)系,我們將盡力解決該問題。
一、構(gòu)建環(huán)境
原文:https:〃gitee.com/apachecn/apachecn-php-zh/blob/master/docs/learn-php7-h
iperf/1.md
PHP7終于發(fā)布了。很長(zhǎng)一段時(shí)間以來,PHP社區(qū)一直在討論這個(gè)問題,至今仍未停止。P
HP7的主要改進(jìn)是它的性能。長(zhǎng)期以來,PHP社區(qū)在大規(guī)模應(yīng)用中面臨性能問題。甚至一
些具有高流量的小型應(yīng)用也面臨性能問題。服務(wù)器資源有所增加,但沒有多大幫助,因?yàn)?/p>
最終的瓶頸是PHP本身。使用了不同的緩存技術(shù),例如APC,這有點(diǎn)幫助。然而,社區(qū)
仍然需要一個(gè)能夠在應(yīng)用達(dá)到峰值時(shí)提高性能的PHP版本。這就是PHPNG的用武之地。
PHPNG代表PHP下一代。它是一個(gè)完全獨(dú)立的分支,主要針對(duì)性能。有人認(rèn)為PHPNG是J
IT(準(zhǔn)時(shí)制)編譯,但實(shí)際上,PHPNG是基于經(jīng)過重構(gòu)的Zend引擎,該引擎針對(duì)性能進(jìn)
行了高度優(yōu)化。PHPNG被用作PIIP7開發(fā)的基礎(chǔ),根據(jù)官方的PHPwiki頁面,PHPNG分
支現(xiàn)在合并到主分支中。
在開始構(gòu)建應(yīng)用之前,應(yīng)該最終確定并配置開發(fā)環(huán)境。在本章中,我們將討論在不同系統(tǒng)
上設(shè)置開發(fā)環(huán)境,例如Windows和不同風(fēng)格的Linuxo
我們將討論以下主題:
?設(shè)置窗口
?設(shè)置Ubuntu或Debian
?設(shè)置CentOS
?安置流浪漢
可以跳過所有其他環(huán)境,我們可以設(shè)置要使用的環(huán)境。
設(shè)置窗口
有許多工具可以為Windows捆綁Apache、PHP和MySQL,提供簡(jiǎn)單的安裝,并且非常易
于使用。這些工具中的大多數(shù)已經(jīng)通過Apache提供了對(duì)PHP7的支持,比如通過XAMPP、
WAMPP和EasyHPoEasyHP是唯一一家還提供對(duì)NGINX的支持,并提供將Web服務(wù)器從
NGINX更改為Apache或Apache更改為NGINX的簡(jiǎn)單步驟的公司。
注
XAMPP也適用于Linux和MacOSXo但是,WAMP和EasyHP僅適用于Windowso這三
種方法中的任何一種都可以用于本書,但我們推薦EasyHP,因?yàn)樗С諲GINX,而在本
書中,我們主要使用NGINXo
這三種工具中的任何一種都可以使用,但我們需要對(duì)web服務(wù)器工具的每個(gè)元素進(jìn)行更
多的控制,因此我們還將分別安裝NGINX、PHP7和MySQL,然后將它們連接在一起。
注
NGINXWindows二進(jìn)制文件可從下載http:〃nginx.org/cn/download.html□我們建議
使用穩(wěn)定的版本,盡管使用主線版本沒有問題。PHPWindows二進(jìn)制文件可從下載http:/
/windows.php.net/download/<>根據(jù)您的系統(tǒng)下載泮線,原安全版本的32位或64位二
進(jìn)制文件。
執(zhí)行以下步驟:
1.下載信息框中提到的NGINX和PHPWindows二進(jìn)制文件。將NGINX復(fù)制到
合適的目錄。例如,我們有一個(gè)完全獨(dú)立的D驅(qū)動(dòng)器用于開發(fā)目的。將NGIN
X復(fù)制到此開發(fā)驅(qū)動(dòng)器或任何其他目錄?,F(xiàn)在,將PHP復(fù)制到NGINX目錄或
任何其他安全文件夾位置。
2.在PHP目錄中,將有兩個(gè).ini文件,php.ini-developmentphp.ini-productiono將其
中一個(gè)重命名為Php.ini。PHP將使用此配置文件。
3.HoldtheShiftkeyandrightclickinthePHPdirectorytoopenthe
command-linewindow.Thecommand-linewindowwillbeopenedinthes
amelocationpath.IssuethefollowingcommandtostartPUP:
php-cgi-b127.0.0.1:9000
-b選項(xiàng)啟動(dòng)PHP并綁定到外部FastCGI服務(wù)器的路徑。前面的命令綁定PHP以在端口900
。上循環(huán)回127.o.o.iIP?,F(xiàn)在,可以通過此路徑訪問PHPo
4.ToconfigureNGINX,openthenginx^.folder/conf/nginx.conffile.Thefirstt
hingtodoistoaddrootandindextotheserverblock,asfollows:
server{roothtml;indexindex,phpindex,htmlindex,htm;
提示
下載示例代碼
您可以從以下帳戶下載本書的示例代碼文件:http:〃www.packtpub.com.如果你在別處
購買了這本書,你可以訪問http/Vwww.packtpub.com/support并注冊(cè),將文件直接通
過電子郵件發(fā)送給您。
您可以通過以下步驟下載代碼文件:
o使用您的電子郵件地址和密碼登錄或注冊(cè)我們的網(wǎng)站。
o將鼠標(biāo)指針懸停在頂部的“支持”選項(xiàng)卡上。
o點(diǎn)擊代碼下載和勘誤表。
o在搜索框中輸入圖書的名稱。
o選擇要下載代碼文件的書籍。
o從您購買本書的下拉菜單中選擇。
o點(diǎn)擊代碼下載。
下載文件后,請(qǐng)確保使用以下最新版本解壓或解壓縮文件夾:
oWinRAR/7-ZipforWindows
o適用于Mac的Zipeg/iZip/UnRarX
o適用于Linux的7-Zip/PeaZip
5.Now,weneedtoconfigureNGINXtousePHPasFastCGIonthepathme
ntionedbeforeonwhichitisstarted.Inthenginx.conffile,uncomme
ntthefollowinglocationblockforPIIP:
location、\.php${fastcgi_pa.ss127.0.0.1:9000;fastcgi_paramSCRIP
T_FILENAMEcomplete_path_webroot_folder$fastcgi_script_name;includefastcg
i_params;}
注意fastcgi.param選項(xiàng)。突出顯示的complete_pathwebroot_folder路徑應(yīng)該是nginx文件夾中HTM
L目錄的絕對(duì)路徑。假設(shè)您的NGINX位于D:\nginx路徑;然后,HTML文件夾的絕對(duì)路徑將
是D:\nginx\html°但是,對(duì)于前面的fastcgi_param選項(xiàng),'應(yīng)替換為/。
6.現(xiàn)在,通過在NGINX文件夾的根目錄下發(fā)出以下命令來重新啟動(dòng)NGINX:
nginx-srestart
7.重新啟動(dòng)NGINX后,打開瀏覽器并輸入Windows服務(wù)器或計(jì)算機(jī)的IP或主
機(jī)名,我們將看到NGINX歡迎消息。
8.現(xiàn)在,為了驗(yàn)證PHP安裝及其與NGINX的協(xié)同工作,在webroot中創(chuàng)建一
個(gè)info.php文件,并在其中輸入以下代碼:
<?phpphpinfoO;?>
9.Now,inthebrowser,accessyourip/info.php,andwewillbepresent
edwithapagefullofPHPandserverinformation.Congratulations!
WeconfiguredNGINXandPHPtoworkperfectlytogether.
注
在Windows和MacOSX±,我們建議您使用安裝了Linux版本的所有工具的虛擬機(jī),
以獲得服務(wù)器的最佳性能。在Linux中管理一切都很容易。有一些流浪者的盒子,里面
有一切可以使用的東西。此外,還可以在上定制一個(gè)包含所有工具的虛擬機(jī)配置,包括N
GINX、Apache、PHP7、Ubuntu、Debian或CentOS以及其他優(yōu)秀工具h(yuǎn)ttps:〃puphpet.
com,這是一個(gè)易于使用的GUIo另一個(gè)很好的工具是LaravelHomestead,它是一個(gè)
流浪者盒子,里面有很多很棒的工具。
設(shè)置Debian或Ubuntu
Ubuntu源于Debian,所以Ubuntu和Debian的流程都是一樣的。我們將使用Debian8
Jessie和Ubuntul4.04服務(wù)器LTS。同樣的過程也適用于桌面版本。
首先,添加Debian和Ubuntu的存儲(chǔ)庫。
德比安
在我們撰寫本書時(shí),Debian還沒有提供PHP7的官方存儲(chǔ)庫。因此,對(duì)于Debian,我們
將使用dotdeb存儲(chǔ)庫安裝NGINX和PHP7。執(zhí)行以下步驟:
1.打開/etc/apt/sources.list文件,在文件末尾添加以下兩行:
debhttp://packages,dotdeb.orgJessiealldeb-srchttp://packages,dotdeb.orgj
essieall
2.現(xiàn)在,在終端中執(zhí)行以下命令:
wgethttps:〃www.dotdeb.org/dotdeb.gpgsudoapt-keyadddotdeb.gpgsudoapt-ge
tupdate
前兩個(gè)命令將向Debian添加dotdebrepo,最后一個(gè)命令將刷新源緩存。
Ubuntu
在寫這本書的時(shí)候,Ubuntu也沒有在官方的repo中提供PHP7,所以我們將使用第三方
repo來安裝PHP7。執(zhí)行以下步驟:
1.在終端中運(yùn)行以下命令:
sudoadd-apt-repositoryppa:ondrej/phpsudoapt-getupdate
2.Now,therepositoriesareadded.Let,sinstallNGINXandPHP7.
注
其余的過程對(duì)于Debian和Ubuntu基本相同,所以我們不會(huì)像添加存儲(chǔ)庫部分那樣單獨(dú)
列出它們。
3.要安裝NGINX,請(qǐng)?jiān)诮K端(Debian和Ubuntu)中運(yùn)行以下命令:
sudoapt-getinstallnginx
4.Aftertheinstallationissuccessful,itcanbeverifiedbyentering
thehostnameandIPoftheDebianorUbuntuserver.Ifweseesometh
ingsimilartothefollowingscreenshot,thenourinstallationissu
ccessful:
WelcometonginxonDebian!
Ifyouseethispage,thenginxwebserverissuccessfullyinstalledandworking
onDebian.Furtherconfigurationisrequired.
Foronlinedocumentationandsupportpleaserefertonginx.orq
PleaseusethereportbugtooltoreportbugsinthenginxpackagewithDebian.
However,checkexistinTbugreDOrtsbeforereportinganewbug.
Thankyouforusingdebianandnginx.
以下是三個(gè)有用的NGINX命令的列表:
oservicenginxstart:后動(dòng)NGINX服務(wù)器
oservicenginxrestart:這將重新啟動(dòng)NGINX服務(wù)器
oservicenginxstop:這將停止NGINX服務(wù)器
5.Now,it,stimetoinstallPHP7byissuingthefollowingcommand:
sudoapt-getinstallphp7.0php7.0-fpmphp7.0-mysqlphp7.0-mcryptphp7.0-cli
這將安裝PHP7以及前面提到的其他模塊。此外,我們還安裝了用于命令行目的的PHPC
lio要驗(yàn)證是否正確安裝了PHP7,請(qǐng)?jiān)诮K端中發(fā)出以下命令:
php-v
6.IfitdisplaysthePHPversionalongwithsomeotherdetails,assho
wninthefollowingscreenshot,thenPHPisproperlyinstalled:
~#php-v
PHP7.0.3-l~dotdeb+8.1(cli)(NTS)
Copyright(c)1997-2016ThePHPGroup
ZendEnginev3.0.0,Copyright(c)1998-2016ZendTechnologies
withZendOPcachev7.0.6-dev,Copyright(c)1999-2016,byZendTechnologies
~]
7.Now,weneedtoconfigureNGINXtoworkwithPHP7.First,copythe
NGINXdefaultconfigfile/etc/nginx/sites-available/defaultto/etc/nginx/sites
-available/^-,packt.com.confusingthefollowingcommandintheterminal:
cd/etc/nginx/sites-avaiTablesudocpdefaultwww.packt.com.confsudoIn-s/
etc/nginx/sites-available/www.packt.com.conf/etc/nginx/sites-enabled/www.pa
ckt.com.conf
首先,我們復(fù)制了默認(rèn)配置文件,創(chuàng)建了另一個(gè)虛擬主機(jī)配置文件^.packt.com.conf,然后
在sitesenabled文件夾中創(chuàng)建了指向該虛擬主機(jī)文件的符號(hào)鏈接文件。
注
最好使用與域名稱相同的名稱為每個(gè)虛擬主機(jī)創(chuàng)建一個(gè)配置文件,以便任何其他人都可以
輕松識(shí)別它。
8.Now,openthe/etc/nginx/sites-available/ww.packt.com.conffileandaddoredi
tthehighlightedcode,asshownhere:
server{server_nameyour_ip:80;root/var/www/html;indexindex,phpind
ex.htmlindex,htm;location、\.php${fastcgi_passunix:/var/run/php/php7.
0-fpm.sock;fastcgiindexindex,php;includefastcgi_params;}}
前面的配置不是完整的配置文件。我們只復(fù)制了那些重要且可能需要更改的配置選項(xiàng)。
在前面的代碼中,我們的webroot路徑是/var/www/html,我們的PHP文件和其他應(yīng)用文件
將放置在這里。在索引配置選項(xiàng)中,添加index.php,這樣如果URL中沒有提供文件,NGIN
X可以查找并解析index.php。
我們?yōu)镻HP添加了一個(gè)位置塊,其中包含一個(gè)fastcgi3ass選項(xiàng),該選項(xiàng)有一個(gè)到PHP7F
PM套接字的路徑。這里,我們的PHP在Unix套接字上運(yùn)行,比TCP/IP更快。
9.進(jìn)行這些更改后,重新啟動(dòng)NGINX0現(xiàn)在,為了測(cè)試PHP和NGINX是否正確
配置,在webroot文件夾的根目錄下創(chuàng)建一個(gè)info.php文件,并在其中放置以下代
碼:
<?phpphpinfoO;?>
10.Now,inthebrowser,typeserver_ip/info.php,andifyouseeaPHPconfi
gurationpage,thencongratulations!PHPandNGINXarebothproperly
configured.
###注如果PHP和NGINX在同一個(gè)系統(tǒng)上運(yùn)行,那么PHP將偵聽端口'9000'處的環(huán)
回IP。該端口可以更改為任何其他端口。如果我們想在TCP/IP端口上運(yùn)行PHP,那么
在'fastcgi_pass中輸入'127.0.0.1:90001>
現(xiàn)在,讓我們安裝Percona服務(wù)器。Percona服務(wù)器是MySQL的一個(gè)分支,并針對(duì)高性
能進(jìn)行了優(yōu)化。我們將在第3章中了解更多關(guān)于Percona服務(wù)器的信息,提高PHP7應(yīng)
用性能?,F(xiàn)在,讓我們通過以下步驟在Debian/Ubuntu上安裝Percona服務(wù)器:
1.First,let'saddthePerconaServerrepositorytooursystembyrunn
ingthefollowingcommandintheterminal:
sudowgethttps://repo,percona.com/apt/percona-release0.1-3.$(Isbrelease-s
c)_all.debsudodpkg-ipercona-release_0.1-3.$(lsb_release-sc)_all.deb
第一個(gè)命令將從Perconarepo下載repo包。第二個(gè)命令將安裝下載的軟件包,并在/e
tc/apt/sources,list,d/percona-release.list處倉建percona-release,list文件。
2.現(xiàn)在,在終端執(zhí)行以下命令安裝Percona服務(wù)器:
sudoapt-getupdate
3.Now,issuethefollowingcommandtoinstallPerconaServer:
sudoapt-getinstallpercona-server-5.5
安裝過程將開始。下載它需要一段時(shí)間。
注
在本書中,我們將安裝PerconaServer5.5。PerconaServer5.6也可以使用,安裝時(shí)
不會(huì)出現(xiàn)任何問題。
安裝過程中會(huì)詢問root用戶的密碼,如下圖所示:
這是可選的,但建議輸入密碼。輸入密碼后,在下一屏幕上重新輸入密碼。安裝過程將繼
續(xù)。
4.Aftertheinstallationiscomplete,thePerconaServerinstallation
canbeverifiedbyusingthefollowingcommand:
mysql--version
它將顯示Percona服務(wù)器的版本。如前所述,Percona服務(wù)器是MySQL的分支,因此可
以使用所有相同的MySQL命令、查詢和設(shè)置。
成立CentOS
CentOS是紅帽企業(yè)Linux(RHEL的分支,代表社區(qū)企業(yè)操作系統(tǒng)。它是服務(wù)器上廣泛使
用的操作系統(tǒng),專門用于托管公司提供共享托管。
讓我們首先為我們的開發(fā)環(huán)境配置CentOS?執(zhí)行以下步驟:
安裝NGINX
1.First,weneedtoaddNGINXRPMtoourCentOSinstallationbecauseC
entOSdoesnotprovideanydefaultrepositoryforNGINX.Issuethef
ollowingcommandinyourterminal:
sudorpm-Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-cen
tos-7-0.el7.ngx.noarch,rpm
這將向CentOS添加NGINX回購。
2.Now,issuethefollowingcommandtoseewhichversionsofNGINXare
availabletoinstall:
sudoyum一一showduplicateslistNginx
這將向您顯示最新的穩(wěn)定版本。在我們的例子中,它顯示nginxl.8.0和nginxl.8.L
3.Now,let'sinstal1NGINXusingthefollowingcommand:
sudoyuminstallNginx
這將安裝NGINX,
4.在CentOS上,NGINX在安裝或重新啟動(dòng)后不會(huì)自動(dòng)啟動(dòng)。因此,首先,我們
將使用以下命令在系統(tǒng)重新啟動(dòng)后啟用NGINX自動(dòng)啟動(dòng):
systemctlenableNginx.service
5.現(xiàn)在,讓我們通過發(fā)出以下命令來啟動(dòng)NGINX:
systemctlstartNginx.service
6.Then,openyourbrowserandentertheIPoftheCentOSserverorhos
tname.Ifyouseethesamewelcomescreenaswesawinthefiguree
arlierinthechapterforDebian,thenNGINXisinstalledsuccessful
ly.
要檢查安裝了哪個(gè)版本的NGINX,請(qǐng)?jiān)诮K端中發(fā)出以下命令:
Nginx-v
在我們的服務(wù)器上,安裝的NGINX版本是1.8.U
現(xiàn)在,我們的web服務(wù)器已經(jīng)準(zhǔn)備好了。
安裝PHP7
1.ThenextstepistoinstallPHP7FPMandconfigurebothNGINXandP
HP7toworktogether.Asofthetimeofwritingthisbook,PHP7is
notpackagedinofficialCentOSrepositories.So,wehavetwochoice
stoinstallPHP7:eitherwebuilditfromsource,orweusethird-
partyrepositories.Buildingfromsourceisalittlebitdifficult,
solet,sgotheeasywayandusethird-partyrepositories.
注
對(duì)于本書,我們將使用WebStaticrepos進(jìn)行PHP7安裝,因?yàn)樗鼈兲峁┝诵掳姹镜目?/p>
速更新。還有更多的存儲(chǔ)庫,只要可用,讀者可以選擇使用任何存儲(chǔ)庫。
2.現(xiàn)在,讓我們通過發(fā)出以下命令向CentOSrepo添加一個(gè)WebStatic存儲(chǔ)庫:
rpm-Uvhhttps://dl.fedoraproject,org/pub/epel/epel-release-latest-7.noarch,rp
mrpm-Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm
3.Afterthereposareaddedsuccessfully,issuethefollowingcommand
toseewhichversionisavailableforinstallation:
sudoyum-showduplicateslistphp70w
在我們的例子中,可以安裝PHP7.0.3o
4.現(xiàn)在,發(fā)出以下命令來安裝PIIP7以及一些可能需要的模塊:
sudoyuminstallphp70wphp70w-commonphp70w-cliphp70w-fpmphp70w-mysqlphp70
w-opcachephp70w-mcrypt
5.ThiswillinstallcorePHP7andsomemodulesavailableforPHP7.I
fanyothermoduleisrequired,itcanbeinstalledeasily;however,
first,searchtocheckwhetheritisavailableornot.Issuethefol
lowingcommandintheterminaltoseealltheavailablemodulesfor
PHP7:
sudoyumsearchphp70w-
我們將看到PHP7的所有可用模塊的長(zhǎng)列表。
6.Now,let'ssaythatwewanttoinstallthePHP7gdmodule;issueth
efollowingcommand:
sudoyuminstallphp70w-gd
這將安裝gd模塊。可以使用相同的命令安裝多個(gè)模塊,并用空格分隔每個(gè)模塊,就像我
們?cè)赑HP的初始安裝中所做的那樣。
現(xiàn)在,要檢查安裝了哪個(gè)版本的PHP,請(qǐng)發(fā)出以下命令:
php-v
在我們的例子中,安裝了PHP7.0.3o
7.要啟動(dòng)、停止和重新啟動(dòng)PHP,請(qǐng)?jiān)诮K端中發(fā)出以下命令:
sudosystemctlstartphp-fpmsudosystemctlrestartphp-fpmsudosystemctlsto
pphp-fpm
8.Now,let,sconfigureNGINXtousePHPFPM.OpenthedefaultNGINXvi
rtualhostfilelocatedat/etc/Nginx/conf.d/default.confusingeithervi,n
ano,oranyothereditorofyourchoice.Now,makesurethattwoopt
ionsaresetintheserverblock,asfollows:
server{listen80;server_namelocalhost;root/usr/share/nginx/
html;indexindex.phpindex,htmlindex,htm;
root選項(xiàng)表示我們的網(wǎng)站源代碼文件將放置的web文檔根目錄。索引表示將隨擴(kuò)展名加
載的默認(rèn)文件。如果找到這些文件中的任何一個(gè),默認(rèn)情況下將執(zhí)行它們,而不管URL
中提到的任何文件。
9.ThenextconfigurationinNGINXisalocationblockforPUP.Thefol
lowingistheconfigurationforPlIP:
location~\.php${tryfiles$uri=404;fastcgi_splitpath_info-(?+
\.php)(/.+)$;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex,php;
fastcgiparamSCRIPTFILENAME$documentroot$fastcgiscriptname;include
fastcgi_params;}
前面的塊是最重要的配置,因?yàn)樗筃GINX能夠與PHP通信。行fastcgi_pass127.0.0.1:900
o告訴NGINX可以通過端口9000上的環(huán)回IP訪問PHPFPM。其余的細(xì)節(jié)與我們
為Debian和Ubuntu討論的內(nèi)容相同。
10.Now,totestourinstallation,wewillcreateafilenamedinfo.phpwi
ththefollowingcontents:
php<?phpphpinfoO;?>''保存文件后,鍵入'http:〃server_ip/info.php'
或'http:〃hostname/info.php',我們將得到一個(gè)包含PHP完整信息的頁面。如果你看
到這一頁,恭喜你!PHP與NGINX一起運(yùn)行。
安裝Percona服務(wù)器
1.Now,wewillinstallPerconaServeronCentOS.Theinstallationproc
essisthesame,exceptthatithasaseparaterepository.Toaddth
ePerconaServerrepotoCentOS,executethefollowingcommandinth
eterminal:
sudoyuminstallhttp://w\^v.percona.com/downloads/percona-release/redhat/O.1-3
/percona-release-0.1-3.noarch,rpm
repo安裝完成后,將顯示一條消息,說明安裝完成。
2.現(xiàn)在,要測(cè)試repo,發(fā)出以下命令,它將列出所有可用的Percona包:
sudoyumsearchpercona
3.ToinstallPerconaServer5.5,issuethefollowingcommandinthete
rminal:
sudoyuminstallPercona-Server-server-55
安裝過程將開始。該過程的其余部分與Debian/Ubuntu相同。
4.安裝完成后,我們將看到一條完成消息。
設(shè)置流浪漢
Vagrant是開發(fā)人員用于開發(fā)環(huán)境的工具。Vagrant提供了一個(gè)簡(jiǎn)單的命令行界面,可以
使用所需的所有工具設(shè)置虛擬機(jī)。Vagrant使用稱為Vagrantbox的盒子,根據(jù)這個(gè)盒
子,它可以擁有Linux操作系統(tǒng)和其他工具。Vagrant同時(shí)支持OracleVMVirtualBox
和VMwareo在本書中,我們將使用VirtualBox,我們假設(shè)它也安裝在您的機(jī)器上。
Vagrant有幾個(gè)PHP7框,包括LaravelHomestead和RasmusPHP7devo因此,讓我們
開始在Windows和MacOSX上配置RasmusPHP7dev框。
注
我們假設(shè)VirutalBox和Vagrant都安裝在我們的機(jī)器上。VirtualBox可從下載https:
//www.virtualbox.org/wiki/Downloads,流浪漢可從下載
/downloads.html針對(duì)不同的平臺(tái)。有關(guān)RasmusPHP7dev流浪者箱的詳細(xì)信息,請(qǐng)?jiān)L問
https:〃github.com/rlerdorf7Php7dev。
執(zhí)行以下步驟:
1.在其中一個(gè)驅(qū)動(dòng)器中創(chuàng)建一個(gè)目錄。例如,我們?cè)贒驅(qū)動(dòng)器中創(chuàng)建了一個(gè)php7目
錄。然后,按住s加,立鍵,右鍵單擊,然后選擇在此處打開命令窗口,直接打
開該特定文件夾中的命令行。
2.Now,issuethefollowingcommandinthecommandwindow:
vagrantboxaddrasmus/php7dcv
■vagrantboxaddrasmu$/php7dev
):\php7>vagrantboxaddrasmus/php7dev
==>box:Loadingmetadataforbox,rasmus/php7dev,
box:URL:https:///rasmus/php7dev
==>box:Addingbox'rasfnus/phpydev1(V0.1.0)forprovider:virtualbox
box:Downloading:https://atlas.hashicorp.com/rasmus/boxes/php7dev/versions/0.1.0/providers/virtualbox.box
box:Progress:1%(Rate:511k/s,Estimatedtimeremaining:1:50:28)))
它將開始下載“流浪者”框,如以下屏幕截圖所示:
3.Now,whenthedownloadiscompleted,weneedtoinitializeitsotha
ttheboxisconfiguredandaddedtoVirtualBoxforus.Issuethefo
11owingcommandinthecommandwindow:
vagrantinitrasmus/php7dev
這將開始將該框添加到VirtualBox并對(duì)其進(jìn)行配置。流程完成后,將顯示一條消息,如
以下屏幕截圖所示:
D:\php7>vagrantinitrasmus/php7dev
A'Vagrantfile'hasbeenplacedinthisdirectory.Youarenow
readyto'vagrantup'yourfirstvirtualenvironment!Pleaseread
thecommentsintheVagrantfileaswellasdocumentationon
''formoreinformationonusingVagrant.
D:\php7>
4.Now,issuethefollowingcommand,whichwillcompletelysetuptheV
agrantboxandstartitupandrunning:
vagrantup
這個(gè)過程需要一點(diǎn)時(shí)間。完成后,您的箱子已準(zhǔn)備就緒并正在運(yùn)行,可以使用。
5.Now,thefirstthingtodoafteritisupistoupdateeverything.T
hisboxusesUbuntu,soopenthecommandwindowinthesamephp7devd
irectoryandissuethefollowingcommand:
vagrantssh
它將通過SSH將我們與虛擬機(jī)連接起來。
注
在Windows中,如果在PATH變量中未安裝SSII或未配置SSI1,則可以使用PuTTYo可從
下載http://www?chiark.greenend.org.uk/?sgtatham/putty/download.html。對(duì)于PuT
TY,主機(jī)為127.0.0.1,端口為2222。Vagrant是SSH的用戶名和密碼。
6.WhenweareloggedintotheboxOS,issuethefollowingcommandsto
updatethesystem:
sudoapt-getupdatesudoapt-getupgrade
如果有新版本,這將更新核心系統(tǒng)、NGINX、MySQL、php7和其他已安裝的工具。
7.Theboxisnowreadytousefordevelopmentpurposes.Theboxcanbe
accessedinthebrowserbytypingitsIPaddressinthebrowserwind
ow.TofindtheIPaddressofthebox,issuethefollowingcommandi
ntheSSH-connectedcommandwindow:
sudoifconfig
這將顯示一些詳細(xì)信息。在那里找到IPv4詳細(xì)信息,并獲取該框的IPo
總結(jié)
在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年園林景觀照明系統(tǒng)設(shè)計(jì)與安裝合同3篇
- 2024年版新員工勞動(dòng)協(xié)議模板指導(dǎo)樣例版B版
- 音樂教學(xué)工作計(jì)劃
- 2021后勤工作總結(jié)范文
- 全年工作計(jì)劃集合六篇
- 2021員工辭職報(bào)告集錦15篇
- 公司的活動(dòng)總結(jié)感悟10篇
- 公司技術(shù)員個(gè)人工作總結(jié)例文8篇
- 教導(dǎo)工作計(jì)劃四篇
- 遠(yuǎn)程培訓(xùn)總結(jié)(15篇)
- 成都市農(nóng)貿(mào)市場(chǎng)建設(shè)技術(shù)要求(2019年版)(完整版)
- 2024-2030年版中國(guó)IPVPN服務(wù)行業(yè)發(fā)展現(xiàn)狀及投資商業(yè)模式分析報(bào)告
- 【7歷期末】安徽省蕪湖市弋江區(qū)2023~2024學(xué)年七年級(jí)上學(xué)期期末考試歷史試卷(含解析)
- 2024-2030年中國(guó)企業(yè)大學(xué)行業(yè)運(yùn)作模式發(fā)展規(guī)劃分析報(bào)告
- 房地產(chǎn)激勵(lì)培訓(xùn)
- 【MOOC】微型計(jì)算機(jī)原理與接口技術(shù)-南京郵電大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 違章建筑舉報(bào)范文
- 2024幼師年終工作總結(jié)
- Unit 4 Plants around us Part A(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- “小城鎮(zhèn)建設(shè)”論文(六篇)
- 設(shè)備維護(hù)保養(yǎng)培訓(xùn)
評(píng)論
0/150
提交評(píng)論