php
php不能單獨使用都是與httpd結合使用 結合的方式主要是兩種一種為模塊方式服務于httpd,一種為單獨服務方式服務httpd
兩種方式不能共存
安裝軟件包也不相同 網上有官方中文手冊 http://php.net/download-docs.php php對中文的支持需要安裝php-mbstring php對mysql的支持需要安裝php-mysql
php運行原理
PHP總共有三個模塊:內核、Zend引擎、以及擴展層;PHP內核用來處理請求、文件流、錯誤處理等相關操作;Zend引擎(ZE)用以將源文件轉換成機器語言,然后在虛擬機上運行它;擴展層是一組函數、類庫和流,PHP使用它們來執行一些特定的操作。比如,我們需要mysql擴展來連接MySQL數據庫;當ZE執行程序時可能會需要連接若干擴展,這時ZE將控制權交給擴展,等處理完特定任務后再返還;
最后,ZE將程序運行結果返回給PHP內核,它再將結果傳送給SAPI層,最終輸出到瀏覽器上。 PHP實現了一個典型的動態語言執行過程:拿到一段代碼后,經過詞法解析、語法解析等階段后,源程序會被翻譯成一個個指令 (opcodes),然后ZEND虛擬機順次執行這些指令完成操作。
以上引用網上有php運行原理的文章
以模塊方式于httpd結合
安裝php
Installing: php x86_64 5.4.16-36.el7_1 base 1.4 M Installing for dependencies: apr x86_64 1.4.8-3.el7 base 103 k ##php與httpd鉤子 apr-util x86_64 1.5.2-6.el7 base 92 k httpd x86_64 2.4.6-40.el7.centos base 2.7 M ##php以模塊方式為httpd提供給服務,所以php依賴httpd服務 httpd-tools x86_64 2.4.6-40.el7.centos base 82 k libzip x86_64 0.10.1-8.el7 base 48 k mailcap noarch 2.1.41-2.el7 base 31 k php-cli x86_64 5.4.16-36.el7_1 base 2.7 M ##執行php腳本的命令行接口,服務于php和CGI php-common x86_64 5.4.16-36.el7_1 base 563 k [root@centos7 ~]# rpm -ql php ##php以模塊方式為httpd提供給服務,所以php依賴httpd服務 /etc/httpd/conf.d/php.conf ##配置httpd如何處理用戶請求調用php模塊 /etc/httpd/conf.modules.d/10-php.conf ##httpd加載php模塊的配置 /usr/lib64/httpd/modules/libphp5.so ##安裝后,php自身為httpd的模塊 /usr/share/httpd/icons/php.gif /var/lib/php/session ##php保持的用戶會話文件,php追蹤用戶用的。session是有有效期的。 [root@centos7 ~]# rpm -ql php-common ##php的公共組件,也就是常用組件 /etc/php.d /etc/php.d/curl.ini /etc/php.d/fileinfo.ini /etc/php.d/json.ini /etc/php.d/phar.ini /etc/php.d/zip.ini /etc/php.ini ##配置php解釋器工作環境;
以單獨服務方式于httpd結合
安裝php-fpm
Installing: php-fpm x86_64 5.4.16-36.el7_1 base 1.4 M ##以獨立守護進程的方式提供php動態資源服務 Installing for dependencies: libzip x86_64 0.10.1-8.el7 base 48 k php-common x86_64 5.4.16-36.el7_1 base 563 k [root@centos7 ~]# rpm -ql php-fpm /etc/logrotate.d/php-fpm /etc/php-fpm.conf ###配置fpm守護進程的工作模式;怎么與客戶端交互的(httpd) /etc/php-fpm.d /etc/php-fpm.d/www.conf /etc/sysconfig/php-fpm [root@centos7 ~]# rpm -ql php-common ##php的公共組件,也就是常用組件 /etc/php.d /etc/php.d/curl.ini /etc/php.d/fileinfo.ini /etc/php.d/json.ini /etc/php.d/phar.ini /etc/php.d/zip.ini /etc/php.ini #####配置php解釋器工作環境;
FastCGI 進程管理器(FPM)
FPM(FastCGI 進程管理器)用于替換 PHP FastCGI 的大部分附加功能,對于高負載網站是非常有用的。
它的功能包括:
支持平滑停止/啟動的高級進程管理功能; 可以工作于不同的 uid/gid/chroot 環境下,并監聽不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的設置); stdout 和 stderr 日志記錄; 在發生意外情況的時候能夠重新啟動并緩存被破壞的 opcode; 文件上傳優化支持; "慢日志" - 記錄腳本(不僅記錄文件名,還記錄 PHP backtrace 信息,可以使用 ptrace或者類似工具讀取和分析遠程進程的運行數據)運行所導致的異常緩慢; fastcgi_finish_request() - 特殊功能:用于在請求完成和刷新數據后,繼續在后臺執行耗時的工作(錄入視頻轉換、統計處理等); 動態/靜態子進程產生; 基本 SAPI 運行狀態信息(類似Apache的 mod_status); 基于 php.ini 的配置文件。
原創文章,作者:yyw,如若轉載,請注明出處:http://www.www58058.com/56552