前面已经拷贝了一个 php.ini 文件到 /usr/local/php/etc 目录下面,这是已经知道 php.ini 所在路径在哪里,但有时候并不知道 php.ini 所在路径,这时候就需要命令来查一查在哪里
|
|
技术面前,永远都是学生。
前面已经拷贝了一个 php.ini 文件到 /usr/local/php/etc 目录下面,这是已经知道 php.ini 所在路径在哪里,但有时候并不知道 php.ini 所在路径,这时候就需要命令来查一查在哪里
|
|
之前给出了 php-fpm.conf 的内容,下面给出一个模版,配置如下
|
|
说明
|
|
表示一个脚本执行时间超过 1秒就要记录这个slow.log ,记录这个可以看到这个脚本哪里执行慢,可以通过slow.log排查网站慢的原因,根据这个原因做一定的优化。
|
|
apache 可以设置 open_basedir ,php-fpm也可以,不同的 pool 设置不同的 open_basedir 可以针对不同的域名进行不同的限制。多个目录用 :分割。
首先针对 nginx 的 php 安装和针对 apache 的 php 安装是有区别的,因为 nginx 中的 php 是以 fastcgi 的方式结合 nginx 的。可以理解为 nginx 代理了 php 的 fastcgi ,而 apache 是把 php 作为子机的模块来调用的。php官方下载地址
|
|
|
|
|
|
|
|
|
|
在该过程中,若出现和 lamp 安装 php 的错误一样的错误参照 lamp 的方法来解决,若出现如下错误,参考下面解决办法:
错误信息:
|
|
解决办法:
|
|
|
|
在这一步,通常会遇到一些错误:
|
|
解决办法:
|
|
|
|
以上每一步骤,如果没有完全执行正确,那么下一步是无法进行的,使用 echo $? 看结果是否为 “0”,如果不是,就是没有执行正确。
|
|
添加如下内容:
|
|
保存配置文件后,检验配置是否正确的方法为:
|
|
如果出现诸如 “test is successful” 字样,说明配置没有问题。
首先要拷贝一个启动脚本到 /etc/init.d 下
|
|
更改权限为755
|
|
如果要它开机启动,执行:
|
|
检测是否成功:
|
|
看看是不是有很多进程
在编译php的时候,有这么几个和mysql相关的编译选项:
|
|
那这几个选项到底有什么不同呢?
php官方文档上有这么一段话:
MySQL:This extension is deprecated as of PHP 5.5.0, and has been removed as of php 7.0.0.
MYSQLI: mysql Improved Extension
MySQLND: MySQL Native Drive
PDO:The PHP Data Objects。extension defines a lightweight, consistent interface for accessing databases in PHP。
翻译成中文大概意思是:
MySQL扩展:在5.5.0版本中开始废弃,7.0.0版本中已经移除(也就是不支持了)
MySQLI扩展:是mysql扩展的增强版
MySQLnd:这是官方驱动,或者叫做原生驱动
PDO:PHP Data Objects,是PHP应用中的一个数据库抽象层规范
在PHP扩展的角度上看,MYSQL和MYSQLi还是比较上层的扩展,依赖更底层的库去连接和访问数据库。 MYSQLND 就是所说的底层的数据库驱动。
从应用的层面上看,我们通过PHP 的MYSQL或者MYSQLi扩展提供的API去操作数据库。
从底层来看,MYSQLND提供了底层和数据库交互的支持(可以简单理解为和MySQL server进行网络协议交互)。
而PDO,则提供了一个统一的API接口,使得你的PHP应用不去关心具体要连接的数据库服务器系统类型。也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器。比如MYSQL,SQLITE任何数据库都行。
即从大部分功能上看,PDO提供的API接口和MYSQLI提供的接口对于普通的增删改查效果是一致的。
最后再贴几个php的代码,来区分几个扩展的用法:
|
|
|
|
|
|
如果输入
|
|
提示出错信息:
|
|