LAMP架构(PHP的安装解析)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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,如需转载请自行联系原作者
目录
相关文章
|
21天前
|
PHP 项目管理 开发者
深入解析PHP的命名空间和自动加载机制
【4月更文挑战第4天】 在PHP的编程世界中,命名空间和自动加载机制是构建大型应用程序时不可或缺的工具。本文将深入探讨这两个概念,揭示它们如何简化代码结构、避免类名冲突以及提高代码维护性。通过对PHP命名空间的由来、作用域和使用方法的细致剖析,以及对自动加载机制工作原理和应用实践的全面讲解,读者将获得有效管理复杂项目中依赖关系的能力。
|
1天前
|
PHP
PHP中的命名空间深入解析
【4月更文挑战第24天】在PHP的编程世界中,命名空间是一个重要的概念,它解决了在大型项目中可能出现的类名或函数名冲突的问题。本文将深入探讨PHP中的命名空间,包括其基本概念、使用方法以及其在代码组织和重用方面的优势。
|
4天前
|
关系型数据库 MySQL PHP
深入解析PHP中的命名空间
【4月更文挑战第20天】在PHP的编程世界中,命名空间是一个强大的工具,用于解决代码中的名称冲突问题。通过本文的深度解析,我们将探索PHP命名空间的概念、实现原理以及它们如何优雅地帮助我们管理代码库。从基础的定义到高级用法,本篇文章旨在提供一份全面的指南,帮助开发者有效利用命名空间来优化他们的PHP项目结构和可维护性。
|
21天前
|
测试技术 PHP 开发者
PHP 7.4新特性深度解析
【4月更文挑战第4天】 本文将深入探讨PHP 7.4的新特性,包括预加载,数组解构,扩展的箭头函数等。我们将详细解释这些新特性的作用,以及如何在项目中使用它们来提高代码的效率和可读性。
|
30天前
|
运维 Linux Apache
LAMP架构调优(三)——模块的安装与调用
LAMP架构调优(三)——模块的安装与调用
9 0
|
tengine NoSQL 关系型数据库
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
|
Web App开发 测试技术 PHP

推荐镜像

更多