PHP 行事准则:PHP 配置文件

news2024/11/18 19:49:00

文章目录

  • 参考
  • 环境
  • PHP 行事准则
      • PHP 配置文件
      • php.ini-production 与 php.ini-development
          • 生产配置文件
          • 开发配置文件
          • 配置文件的应用
          • 版本差异
      • 修改配置的生效
  • PHP 运行时配置
      • ini_set()
      • 布尔配置项
      • 限制
  • phpinfo()
      • phpinfo 页面
      • Core

参考

项目描述
搜索引擎BingGoogle
AI 大模型文心一言通义千问讯飞星火认知大模型ChatGPT
PHP 官方PHP Manual

环境

项目描述
PHP8.0.0
PHP 编辑器PhpStorm 2023.1.1(专业版)

PHP 行事准则

PHP 配置文件

在 PHP 中,配置文件是用来控制 PHP 运行时行为 的重要组成部分。PHP 配置文件包含一系列的配置指令,用于 定义 PHP 的工作方式和行为

php.ini-production 与 php.ini-development

php.ini-productionphp.ini-developerPHP5.3 及后续版本 提供的两个不同的 PHP 配置文件。

生产配置文件

php.ini-production 配置文件的目的是 提供一个适用于生产服务器的配置,该配置文件更加偏向于 安全性性能 的最佳实践。
通常,生产环境需要更严格的安全性和性能优化,因此这个配置文件中的选项可能被调整为更安全和更高性能的设置。例如,错误报告级别可能设置为较低以减少对终端用户的敏感信息泄漏,还可能启用了一些缓存机制以提高性能。

开发配置文件

php.ini-developer 配置文件的目的是为了 方便开发人员,以在开发和调试过程中 提供更多的信息灵活性
开发环境通常需要更多的错误报告和调试信息,以便开发人员更容易发现和修复问题。因此,这个配置文件中的选项可能会设置为内容输出更具详细性的值。例如,开启错误报告和调试日志,以帮助开发人员定位和解决问题。

配置文件的应用

在实际使用中,你可以根据需要选择使用哪个配置文件。在决定选择使用那个配置文件时,将该配置文件重命名为 php.ini 即可。

版本差异

PHP5.3 以后,PHP 官方提供的 PHP 文件中将包含 php.ini-developmentphp.ini-production,分别是 PHP 开发环境的配置文件以及 PHP 生产环境的配置文件。
PHP5.3 以前,PHP 官方也提供 PHP 配置文件,即 php.ini-distphp.ini-recommended,分别与此后的 php.ini-developmentphp.ini-production 相对应。

修改配置的生效

在修改 PHP 配置文件后,被修改配置项的生效条件视具体情况而定。对此,请参考如下条目:

  1. 重启 WEB 服务器
    如果您使用 ApacheNginx 服务来运行 PHP,那么在您修改配置文件后,您 需要重启相应的服务。这是因为 PHP 的配置 在服务启动时加载,并保持在内存中,直到服务停止
  2. CLI
    如果您在命令行界面 (Command Line Interface,CLI) 中使用 PHP,那么 任何新的 CLI 进程都会立即使用最新的配置正在运行的 PHP 进程则不受影响,如需使用最新配置,请将该进程关闭并开启新 PHP 进程。

PHP 运行时配置

ini_set()

除了 php.ini 文件之外,PHP 还允许 在脚本运行过程中通过 ini_set() 函数来动态修改某些配置选项的值,这些更改只在 当前脚本运行时生效,并不会影响全局配置。这为开发者提供了在单个脚本或应用的执行过程中调整配置的灵活性。

ini_set()

function ini_set(
     string $option,     
     $value 
): false|string

其中:

$option 用于指定需要修改的配置项,而 $value 则是配置项被修改后的结果值。ini_set() 函数在修改配置项成功时返回 被修改配置项的原有值,否则,返回 false。对此,请参考如下示例:

<?php


# ini_get() 函数可用于获取特定配置项的配置值。
var_dump(ini_get('display_errors'));

# 配置项的值若为 Off 则无论何种大小写形式,
# 该配置项都将被关闭。On 同理可得
var_dump(ini_set('display_errors', 'Off'));

var_dump(ini_get('display_errors'));

# 尝试通过 ini_get() 修改一个不存在的配置项
# 则该函数将因为修改配置项失败而返回 false。
var_dump(ini_set('Fantasy', 1));

执行效果

string(1) "1"
string(1) "1"
string(3) "Off"
bool(false)

布尔配置项

大多数配置项的取值只有 OnOff,分别表示开启该配置或关闭该配置,这些配置项被称为布尔配置项。$value 的取值的数据类型不仅仅局限于某一种,因此当某一配置项为布尔配置项时,该配置项(除 On、Off 外)作为字符串转化为布尔值的结果将决定这些配置是否被开启(在配置文件 php.ini 中亦是如此)

限制

在 PHP 中,不同配置项所能够采取的配置方法可能是不同的,并不是所有的选项都可以在运行时通过 ini_set() 函数来修改。ini_set() 函数允许你在脚本运行时动态地设置配置选项,但有些选项可能由于 安全或系统级别的限制 而不能通过 ini_set() 来修改。对此,请参考如下示例:

<?php


# allow_url_include 配置项用于配置是否允许
# 通过 URL 包含并执行远程文件。
var_dump(ini_get('allow_url_include'));

# 由于 allow_url_include 不允许通过 ini_set() 
# 的方式进行设置,故 ini_set() 将返回 false
var_dump(ini_set('allow_url_include', 'On'));

执行效果

string(0) ""
bool(false)

如果您需要查看某个配置项所 允许的配置方式,请访问由 PHP 官方提供的 ini.list.php 页面。

phpinfo()

phpinfo 页面

phpinfo() 是 PHP 提供的一个非常有用的 内置函数,该函数用于显示有关 PHP 的配置信息。当你调用这个函数时,它将产生一个 详尽的 HTML 页面,列出 所有与 PHP 的配置和环境相关的信息

Core

phpinfo() 是 PHP 提供的一个函数,用于输出关于 PHP 的配置信息。当你调用这个函数时,该函数将生成一个 详细的 HTML 页面,其中展示了诸如 PHP 版本编译参数、模块信息环境变量 等信息。phpinfo 页面中存在多个部分,其中 Core 部分是有关 PHP 核心设置的相关信息。具体请参考如下界面:

Core 部分,你会看到一系列的指令和它们的值。这些指令和值涉及到 PHP 的基本操作和行为。其中,Local ValueMaster Value 分别表示 运行时配置(当前 PHP 运行环境中实际生效的值) 与 PHP 配置文件 php.ini 中存储的 默认配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1065044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计师学习笔记11-磁盘管理+IO管理软件+文件管理+作业管理

目录 1.磁盘管理 1.1磁盘(了解一下) 1.2读取磁盘数据的时间 1.3 磁盘调度算法 1.3.1常见的磁盘调度 1.3.2 先来先服务(FCFS) 1.3.3 最短寻道时间优先(SSTF) 1.4 例题补充(均来自希赛软考) 1.4.1 单/双缓冲区花销时间的计算 1.4.2 SSTF 1.4.3 磁道物理块花销时间计算…

UE5.1编辑器拓展【三、脚本化资产行为,删除无引用资产】

目录 需要考虑的问题 重定向的修复函数 代码&#xff1a; 删除无引用资产 代码 需要添加的头文件和模块 在我们删除资产的时候&#xff0c;会发现&#xff0c;有些资产在删除的时候会出现有被什么什么引用&#xff0c;还有的是没有被引用。 而我们如果直接选择一片去进行…

Qt的WebEngineView加载网页时出现Error: WebGL is not supported

1.背景 当我在qml中使用WebEngineView加载一个网页时&#xff0c;出现以下错误&#xff1a; Error: WebGL is not supported 2.解决方案 其实这个问题在Qt的帮助文档中已经提及了解决办法&#xff1a; 因此&#xff0c;可以按照下面的步骤操作一下&#xff1a; 2.1.pro文件 …

win10、win11彻底永久关闭自动更新的方法

win10、win11彻底永久关闭自动更新的方法 前言彻底关闭自动更新方法步骤一、禁用Windows Update服务二、在组策略里关闭Win10自动更新相关服务四、在注册表中关闭Win10自动更新 完结 前言 win系统的自动更新可谓是非常顽固&#xff0c;很多用户在网上试了各种关闭win系统自动更…

【DevExpress基础一】之MapControl的基础用法(含demo和png瓦片地图下载地址)

结果预览 定义一个自定义控件 需要定义以下几个变量: MapControl,地图控件变量ImageLayer,地图切片数据层VectorItemsLayer,地图矢量图层MapItemStorage,矢量图层的Storage// 添加 MapControl 控件 public MapControl map = new MapControl(

二叉树的经典OJ题

对称二叉树 1.题目2.图形分析3.代码实现 1.题目 2.图形分析 3.代码实现 class Solution {public boolean isSymmetric(TreeNode root) {if(root null){return true;}return isSymmetricchild(root.left,root.right);}private boolean isSymmetricchild(TreeNode leftTree,Tre…

洛谷刷题:数组

好累&#xff0c;学习令我快乐 一、小鱼比可爱 题目链接&#xff1a;https://www.luogu.com.cn/problem/P1428 题目描述 人比人&#xff0c;气死人&#xff1b;鱼比鱼&#xff0c;难死鱼。小鱼最近参加了一个“比可爱”比赛&#xff0c;比的是每只鱼的可爱程度。参赛的鱼被从…

System vulnerabilities and common attack methods

《米特尼克自传》难以置信的&#xff0c;大开眼界的个人真实故事哈哈哈哈 链接&#xff1a;https://pan.baidu.com/s/1FNCpjRDHgKfCdLHQ6mQfuQ?pwdw24y 提取码&#xff1a;w24y A system vulnerability is a weakness in the design, implementation, or configuration of a …

【微信小程序开发】宠物预约医疗项目实战-登录实现

【微信小程序开发】宠物预约医疗项目实战-登录实现 第二章 宠物预约医疗项目实战-注册实现 文章目录 【微信小程序开发】宠物预约医疗项目实战-登录实现前言一、打开项目文件二、编写代码2.1 wxss代码编写2.2 wxml代码编写2.3 js代码编写2.3.1 登录接口获取&#xff1a; 2.4 j…

FPGA project : fifo_sum

实验目标&#xff1a; col(列) 4 &#xff1b;line(行) 5。相邻三行&#xff0c;按列求和。输出新的数据流。 实现方法&#xff1a; 通过rs232通信协议&#xff0c;输入数据流。第一行存进fifo1&#xff0c;第二行存进fifo2.当输入第三行第一个数据的时候&#xff0c;从fif…

RHCE---作业2

文章目录 目录 文章目录 一.远程连接服务器 二.基于域名和虚目录建立网站 一.远程连接服务器 配置 ssh 免密登陆&#xff1a;客户端主机通过 redhat 用户基于秘钥验证方式进行远程连接服务器的 root 用户 #服务端关闭防火墙 [roottimeserver ~]# systemctl disable --now fir…

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)

引言 大家好&#xff0c;欢迎来到我的技术博客&#xff01;如果你是一名Linux系统管理员、开发者或者热衷于学习Linux系统的用户&#xff0c;那么你一定需要掌握查看系统信息的命令。在这篇博客中&#xff0c;我将为你介绍一些常用的Linux命令&#xff0c;帮助你快速了解和监控…

2023年CSP-J真题详解+分析数据(选择题篇)

目录 前言 2023CSP-J江苏卷详解 小结 前言 下面由我来给大家讲解一下CSP-J的选择题部分。 2023CSP-J江苏卷详解 1.答案 A 解析&#xff1a;const在C中是常量的意思&#xff0c;其作用是声明一个变量&#xff0c;值从头至尾不能被修改 2.答案 D 解析&#xff1a;八进制…

前端TypeScript学习day01-TS介绍与TS部分常用类型

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 TypeScript 介绍 TypeScript 是什么 TypeScript 为什么要为 JS 添加类型支持&#xff1f; TypeScript 相…

vertx的学习总结4之异步数据和事件流

一、异步数据和事件流 1.为什么流是事件之上的一个有用的抽象&#xff1f; 2.什么是背压&#xff0c;为什么它是异步生产者和消费者的基础&#xff1f; 3.如何从流解析协议数据&#xff1f; 1. 答&#xff1a;因为它能够将连续的事件序列化并按照顺序进行处理。通过将事件…

Elasticsearch架构原理快速了解

目录 一、ES的简单了解 &#xff08;一&#xff09;直面Elasticsearch &#xff08;二&#xff09;Elasticsearch和关系型数据库的对比 二、基本概念回顾 &#xff08;一&#xff09;索引、文档、字段的概念 &#xff08;二&#xff09;映射 &#xff08;三&#xff09;…

读取图片颜色占比绘制{精美}折线图失败

问题之初 读取图片颜色占比绘制{精美}折线图失败❌ 花了4个小时 你问我问题吧 选择题<small> 读取一张图片各种颜色占比 默认 /storage/emulated/0/Pictures/Screenshots/Screenshot_20230725_195440.jpg自动设置检测代码需要的库 函数 变量 定义 样式等from PIL impor…

C++库函数——set与map的模拟实现

目录 1.红黑树的迭代器与改造 ①红黑树的迭代器 ②红黑树的改造 2.map的模拟实现 3.set的模拟实现 4.测试 1.红黑树的迭代器与改造 ①红黑树的迭代器 对于上面这棵红黑树&#xff0c;我们可以很容易得知道begin()是红黑树的最左节点&#xff0c;end()应该是一个空节点。…

ubuntu增加内存

文章目录 1、硬盘操作步骤第二步:点击【扩展】(必须关闭ubuntu电源才能修改)第三步:修改【最大磁盘容量大小】1、硬盘操作步骤 最近发现Ubuntu空间不足,怎么去扩容呢? 第一步:点击【硬盘】 第二步:点击【扩展】(必须关闭ubuntu电源才能修改) 第三步:修改【最大磁…

Java反序列化:CC1链 详解

CC1 Apache Commons Collections是一个扩展了Java标准库里的Collection结构的第三方基础库&#xff0c;它提供了很多强大的数据结构类型和实现了各种集合工具类。作为Apache开放项目的重要组件&#xff0c;Commons Collections被广泛的各种Java应用的开发&#xff0c;⽽正 是因…