我们并不知道 php.ini 所在路径,这时候就需要通过 命令来查一查在哪里。

/usr/local/php/bin/php -i |head

php.ini 中常用的配置有如下:

( 1) 配置 disable_function

disable_functions =  eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chg

rp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsock

open,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,p

roc_close

说明:在 php 中有非常多的函数,在这些函数中有一些是不太安全的,所以有必要把它们禁掉。像 exec, shell_exec 都是在 php 代码中执行 linux shell 命令,很危险,要禁掉。

( 2)配置 error_log

作为一个运维人员我们理应学会简单的 php 错误排查技能,其实 php 的错误跟 linux 下其他服务都是一样的,遇

到错误后要查看错误日志,根据报错信息来判断错误的原因。那如何查看 php 的错误信息呢?

第一种情况,可以直接把错误信息显示在浏览器中,配置方法是,在 php.ini 中找到 display_error=on,重启apache 服务后,刷新网页,发现不再是白页,而是具体的错误。这样我们就可以根据错误来调试 php 代码了。这种情况适合临时调试,但是这种情况不适合长期配置,因为所有错误都会显示在浏览器上,假如哪天 php 程序员不小心写错一段代码,而且没测试直接上传到服务器上了,那么我们的用户就会直接看到这些错误,这样是不合适的。

第二种情况,把错误信息输出到一个日志文件中,具体配置如下:

在 /usr/local/php/etc/php.ini 加入或者更改 :

display_error=off                                      把错误不再浏览器显示

log_errors=on                                           打开错误日志开关

error_log=/usr/local/php/logs/error.log指定错误日志的路径,为了避免权限问题不能自动生成该文件,我们可以先创建该文件,并且修改权限为 777

error_reporting = E_ALL | E_STRICT         定义错误日志的级别

配置完成后记得要重启 apache 服务,才会生效。

( 3)配置 open_basedir

在 php 中是有这个 open_basedir 概念的,它的意思是,把执行 php 的用户限定在指定的 路径下,这样通过权限缩小的方式达到安全目的。作为一个网站,其实我们只需要让 php 用户访问到网站的代码即可,没有必要让它去访问其他目录。那如何配置呢?

在 /usr/local/php/etc/php.ini 中加入或者更改

open_basedir = /dir1/:/dir2

说明: /dir1 和/dir2 为我们允许 php 可以访问的两个目录,同样也可以是多个,目录之 间用:分隔。一旦限定后,如果 php 试图去访问除/dir1 和/dir2 外的目录下的文件时,就会报错了。

除了在 php.ini 中定义 open_basedir 外,其实我们还可以在 apache 的配置文件中定义,因为一个 apache 下可能有多个站点,我们要针对不同的站点限定不同的 open_basedir,配置如下:

# vim httpd.conf 或者虚拟主机配置文件,加入

php_admin_value open_basedir "/dir1/:/dir2/"

nas php.ini,php.ini 配置文件常用详解相关推荐

  1. Windows--notes.ini文件的配置参数详解

    notes.ini文件的配置参数详解 用过LOTUS NOTES的人们都知道NOTES.INI文件对于LOTUS的重要性,但是有关notes.ini的参数设置方面比较少提及.以下总结了NOTES.IN ...

  2. NT的BOOT.INI文件中ARC命名详解(转)

    NT的BOOT.INI文件中ARC命名详解(转)[@more@] ARC命名是Windows NT系统用来定位其引导分区所在的路径,也就是利用它指明引导分区在哪一个磁盘控制器,哪一个硬盘,哪一个分区内 ...

  3. python calu()_python使用配置文件过程详解

    这篇文章主要介绍了python使用配置文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过配置文件将变量暴露给用户修改 标准库模块con ...

  4. MySQL-5.5.32 配置文件优化详解

    目录 MySQL-5.5.32 配置文件优化详解 一.配置文件说明 2.my-medium.cnf 3.my-large.cnf 4.my-huge.cnf 5.my-innodb-heavy-4G. ...

  5. 第七章httpd.conf主配置文件的详解

    版本V1.0 时间2012-10-04 版权GPL 作者itnihao 邮箱 itnihao@qq.com 博客 http://itnihao.blog.51cto.com 如需重新发行,请注明以上信 ...

  6. Apache2 httpd.conf配置文件中文版详解

    Apache2 httpd.conf配置文件中文版详解 # # 基于 NCSA 服务的配置文件. # #这是Apache服务器主要配置文件. #它包含服务器的影响服务器运行的配置指令. #参见< ...

  7. ssh2的application.xml配置文件配置详解

    ssh2的application.xml配置文件配置详解 1.导入其他的配置文件.在ssh项目中可以导入其他的配置文件,导入的格式为: <import resource="classp ...

  8. Linux ❀ Rsyslog(Syslog)服务与配置文件参数详解

    文章目录 1.日志服务简介 2.linux系统中的常见日志 3.日志服务Rsyslog (1)服务对应rpm包 (2)服务配置文件 (3)配置文件格式 服务名称 连接符号 日志等级 日志记录位置 (4 ...

  9. Linux网卡配置文件-参数详解

    Linux网卡配置文件-参数详解 DEVICE=eth0 #指出网卡名称比如这个是eth0 NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启,表示是否受 ...

最新文章

  1. 基因测序3——三、四代测序技术来势汹汹,国产化仍在布局二代测序?
  2. 微软开发团队的DevOps实践启示
  3. 关于1970-1-1 00:00.000的知识【转】
  4. 创建python2与python3虚拟环境失败的原因
  5. 万网控制面板 php_UPUPW 控制面板启动关闭区介绍
  6. SAP Marketing Cloud的profile dashboard
  7. HALCON示例程序classify_image_class_knn.hdev使用KNN分类器对多通道图像进行分割
  8. 一道很熟悉的前端面试题,你怎么答?
  9. mysql数据库 day03
  10. android里图标大小设置在哪里,Android TextView设置图标,调整图标大小
  11. python生成word目录_Python word_cloud导出字体路径后找不到字体路径
  12. BP神经网络求解异或算法
  13. 来吧,一文彻底搞懂Java中最特殊的存在——null
  14. Android基于红米系列手机读取本地图片路径失败的解决方案
  15. 柯尼卡美能达打印机无法使用ID打印
  16. python数据处理——取dataframe的一列或一行
  17. 计算机开机需要注意什么,笔记本电脑第一次开机注意事项
  18. java程序实现可移植性依靠的是_Java第2版-习题参考答案
  19. (转)网站域名大全全全(供方便查找)
  20. Tableau(1):绘制条形图、堆积图、直方图

热门文章

  1. json 和 table控件
  2. [Android Pro] Android 6.0 Root
  3. Dynamics CRM 提示“操作无效”
  4. MapReduce PLinq 简单示例
  5. Dynamips 简介
  6. @ResponseBody,@RequestBody,@PathVariable
  7. Spring MVC页面重定向
  8. ExtJs异步ajax调用和同步ajax调用公用方法
  9. tensorflow中使用tf.ConfigProto()配置Session运行参数GPU设备指定
  10. 反思技术面试题目准备汇总链接汇总