1).從PHP5.0開始,內置了字節碼緩存功能,名爲Zend OPcache。由於PHP是解釋性語言,PHP解釋器執行PHP腳本時會解析PHP腳本代碼,生成一系列的Zend操做碼,而後執行字節碼,每次的HTTP請求都是這樣,會消耗不少資源,使用字節碼緩存能夠緩存預先編譯的字節碼,減小響應時間,下降系統資源的壓力。php
默認狀況之下,Zend OPcache是沒有啓動的。若是是本身編譯PHP,執行的時候命令必須包含如下選項:前端
--enable-opcache複製代碼
編譯好PHP以後,還必須在php.ini
文件中指定Zend OPcache的擴展路徑,以下所示:git
zend_extension=/path/to/opcache.so複製代碼
PHP編譯成功以後會當即顯示Zend OPcache擴展的文件路徑。可使用下面的命令找到這個PHP擴展的路徑github
php-config --extension-dir複製代碼
而後使用下面的代碼能夠確認該擴展運行正常web
<?php
phpinfo();複製代碼
推薦配置shell
opcache.validate_timestamps = 1 //在生產環境中設爲'0'
opcache.revalidate_freq = 0
opcache.memory_comsumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1複製代碼
能夠訪問PHP官方網站查看詳細設置。api
1).生產環境能夠設置opcache.validate_timestamps=0。在開發環境中須要設置爲1緩存
1).啓動php -S localhost:4000 -c app/config/php.ini
2).不支持.htaccess
文件。意味着不支持控制器模式。前端控制器用來轉發全部的HTTP請求,須要經過.htaccess
文件或重寫規則實現。
3).可使用路由器腳本實現以上功能。可是隻支持少許的URL重寫規則php -S localhost:8000 router.php
4).判斷使用的是哪一個服務器:bash
<?php
if (php_sapi_name() === 'cli-server') {
//php內置服務器
} else {
// 其餘Web服務器
}複製代碼
PHP專題系列目錄地址:github.com/xx19941215/…
PHP專題系列預計寫二十篇左右,主要總結咱們平常PHP開發中容易忽略的基礎知識和現代PHP開發中關於規範、部署、優化的一些實戰性建議,同時還有對Javascript語言特色的深刻研究。服務器