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.178linux.com/56552