设为首页 收藏本站
查看: 995|回复: 0

[经验分享] php与apache

[复制链接]

尚未签到

发表于 2018-11-21 10:36:54 | 显示全部楼层 |阅读模式
  CGI:是一种调用执行环境,来执行二进制程序并将格式转化为html能识别的一种协议

  FastCGI:是apache服务器充当客户端,php不再是一个解释器,而是一个服务器, 也类似apache的            prefork工作模型,称为fastCGI
  

  编程语言
  1、静态语言:编译型语言

  c, C++ JAVA

  2、动态语言:解释型语言

  shell, perl, python

  

  一、php的OPCODE
  Opcode是一种PHP脚本编译后的中间语言,就像JAVA的ByteCode,或者.NET的MSL。PHP执行php脚本代码一般会经过如下4个步骤(确切的来说,应该是php的语言引擎Zend)
  1、Scanning(Lexing)--将PHP代码转换为语言片段(Tokens),也可以解理为词法分析
  2、Parsing--将Tokens转换成简单而有意义的表达式,也可以理解为语法分析
  3、Compilation--将表达式编译成opcodes,也可以解理为编译
  4、Execution--顺序执行Opcodes,每次一条,从而实现PHP脚本的功能
  

  注:PHP只是在第一次运行的时候需要编译,以后都不需要编译,故出现第一次访问比较慢。opcode不是存放在有磁盘上的, 而是放在内存中的
  二、PHP的加速器
  将每个进程编译好的Opcode文件放进一个缓存中,所有进程都可以访问这个缓存,从而提高访问速度
  加速器有如下版本,且都是开源的:
  1、APC(Alternative PHP Cache)

  2、eAccelerator

  3、XCache

  4、Zend Optimizer和Zend Guard Loader (是闭源但是免费的)

  5、NuSphere PhpExpress

  目录比较流得第三种加速器,且被大量用于生产环境

  

  三、PHP源码目录结构
  1、build:主要放置一些跟源码编译相关的文件,比如开始构建之前的buildconf脚本及一此环境脚本

  2、ext:官方的扩展目录,包括大多数PHP的函数定义和实现

  3、main:PHP最为核心的文件,是实现PHP基础设施,和Zend引擎不一样,Zend主要实现语言最核          心的语言运行环境

  4、Zend:Zend引擎,比如脚本的记法语法解释,opcode的执行及扩展机制的实现等

  5、pear:PHP扩展与应用仓库,包含Pear的核心文件

  6、sapi:包含了各种服务器抽象层的代码,例如apache的mod_php ,cgi,fastcgi以及fpm等接口

  7、TSRM:PHP的线程安全,是构建在TSRM库之上的

  8、tests:PHP的测试脚本集合

  9、win32:这个目录主要包括windows平台相关的一些实现,比如sokcet的实现
  

  MVC:嵌入式web开发语言。模块,视图,控制器,将使用视图调用执行结果,返回给apache服务器
  

  在PHP5以后的版本中, 将FastCGI做成了一个模块,模块名称为:FPM
  

  apache+PHP的搭建一般为:
  CGI

  Module

  FastCGI(需配置PHP服务器, 编译PHP的FPM功能)

  只处理静态内容,Nginx要比Apache性能要好很多
  Nginx+fpm

  

  PHP安装

  php-mbstring.x86_64 :(most byte)PHP多字节的支持,国际化使用的时候,所有一般要安装
[root@localhost httpd]# yum install php php-mbstring
[root@localhost httpd]# rpm -ql php
/etc/httpd/conf.d/php.conf
/usr/lib64/httpd/modules/libphp5.so
/var/lib/php/session
/var/www/icons/php.gif  php.conf配置文件:
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
   #定义apache不同的工作模型,指代不同的php模块
  LoadModule php5_module modules/libphp5.so


  LoadModule php5_module modules/libphp5-zts.so

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php   #定义的一个处理器,访问.php的以php5-script来运行
AddType text/html .php    #定义类型,访问.php的文件,他都把他当作一个txt/html文档
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php  #定义php默认主页,index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps  index.php语法:

[root@localhost a.com]# vim index.php  #网站默认php网页文件
A
www.a.com
        #以?>  index.php文件一般只包含指令,不包含数据,数据是以另外一种机制实现交互
  数据是以数据库的存取实现,达到快速查找及响应




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-637671-1-1.html 上篇帖子: svn+apache配置多版本库 下篇帖子: Apache Phoenix开发实践
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表