LAMP架构(PHP的安装解析)

PHP官网www.php.net

当前主流版本为5.6/7.1

一,下载php包: 

wget http://cn2.php.net/distributions/php-****.tar.gz

二,解压php包:

tar zxf php-****.tar.gz

进入php文件中

cd php-****

三,开始编译:

./configure --prefix=/usr/local/php 

--with-apxs2=/usr/local/apache2.4/bin/apxs (apxs2是apache的工具,把拓展的模块放到apache的modules中,直接写到配置文件)

--with-config-file-path=/usr/local/php/etc  (指定配置文件所在路径,php.ini)

--with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config 

(三种不同的mysql的驱动,指定库)

--with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif


编译的过程中会出现很多问题,大部分都是安装问题,一个一个解决就好


我们最后想要的php5在apache的模块中

[root@localhost local]# du -sh apache2.4/modules/libphp5.so 

37Mapache2.4/modules/libphp5.so


php加载的模块都是静态的

用/usr/local/php/bin/php -m 命令查看


php是做为httpd的拓展模块存在的。

/usr/local/apache2.4/conf/http.conf 是apache的配置文件,在里面搜索/php5.so 会发现有一行loadmodule,就是ap2x工具加上的


四、php中mysql,mysqli,mysqlnd,pdo到底是什么


  • MYSQL 也叫 Original MySQL,PHP4版本的MYSQL扩展,从PHP5起已经被废弃,并从PHP7开始已经被移除。

  • MYSQLI 叫做 “MySQL增强扩展”。

  • MYSQLND MYSQL NATIVE DIRVER 叫做MYSQL “官方驱动”或者更加直接点的叫做“原生驱动”

  • PDO PHP Data Objects PHP数据对象,是PHP应用中的一个数据库抽象层规范。

 一,什么是API?

一个应用程序接口(Application Programming Interface的缩写),定义了类,方法,函数,变量等等一切 你的应用程序中为了完成特定任务而需要调用的内容。在PHP应用程序需要和数据库进行交互的时候所需要的API 通常是通过PHP扩展暴露出来(给终端PHP程序员调用)。mysql和mysqli提供了这样的API.

二,什么是驱动?

驱动是一段设计用来于一种特定类型的数据库服务器进行交互的软件代码。驱动可能会调用一些库,比如MySQL客户端库或者MySQL Native驱动库。 这些库实现了用于和MySQL数据库服务器进行交互的底层协议。在PHP拓展的角度看,MYSQL和MYSQLI还是比较上层的拓展,依赖更底层的库去连接和访问数据库,上文所说的MYSQLND就是所说的底层数据库驱动。

从应用的层面上看,我们通过PHP 的MYSQL或者MYSQLi扩展提供的API去操作数据库。

从底层来看,MYSQLND提供了底层和数据库交互的支持(可以简单理解为和MySQL server进行网络协议交互)。

而PDO,则提供了一个统一的API接口,使得你的PHP应用不去关心具体要连接的数据库服务器系统类型。也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器。比如MYSQL,SQLITE任何数据库都行。

即从大部分功能上看,PDO提供的API接口和MYSQLI提供的接口对于普通的增删改查效果是一致的。

五、拓展:

查看Nginx、apache、MySQL和PHP的编译参数:

http://ask.apelearn.com/question/1295










本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2051882,如需转载请自行联系原作者
上一篇:SLB负载均衡实践


下一篇:基于ECS快速搭建Docker环境