Home Backend Development PHP Tutorial PHP配置,php.ini以及覆盖问题

PHP配置,php.ini以及覆盖问题

Jun 23, 2016 pm 01:24 PM

在部署一个cms项目到服务器上的时候,因为cms的模板比较老,服务器上用的php是5.3.3版(大于5.3,可以认为是新的),有些页面会显示“deprecated”类别的错误信息。安全起见要抑制页面中的错误信息输出,于是修改php.ini,发现error_reporting已经设定为Off了,表示错误输出到日志文件而不在页面上显示。但是,页面上有显示错误啊!

Google一番后在SO上发现了解决方案,是因为配置的覆盖问题,cms源代码中会覆盖php.ini的配置。那么改动cms中的error_reporting语句就可以解决问题了,比如:

1

if ((DEBUG_MODE & 1) == 1){    error_reporting(E_ALL & ~E_DEPRECATED);}

Copy after login
以下是详细的解释,来自 Stefano Locati的博客

PHP Configuration, php.ini and overrides

PHP has several places where configuration can be set. While I had an idea of the precedence of those settings, I decided to test them experimentally to be sure of what I am going to say. In particular this post is focused on error_reporting, but the same considerations can hold true for any setting.

So here is a list of those places, from the more global to the more specific. Each setting lower in the list can override a setting that come before.

1. The php.ini configuration file. In case of Ubuntu there are two of them, /etc/php5/apache2/php.ini is the one used for php apache module. It will have a global effect on all virtual hosts.

2. The conf.d directory. Actually not all installations will have this modularized configuration, but in case of Ubuntu is located in /etc/php5/apache2/conf.d for the apache module. Any file added in this directory is going to be added to main php.ini configuration with higher precedence than php.ini. In other words any setting here will override settings in php.ini - I tested adding an error.ini. It will have a global effect on all vitual hosts.

3. Apache virtual host configuration. Generally set in /etc/apache2/sites-available, every virtual host can have different settings. Inside the VirtualHost tag it's possible to include "php_value error_reporting ", where value is the numeric result of the boolean operations on the constants. In this configuration, in fact is not allowed to use the mnemonic constants but only a numeric value. It will affect only a single virtual host. It will override above settings.

4. .htaccess. It's also possible to set configuration values and in particular the error_reporting setting also in .htaccess, with the same syntax described in 3. It will affect only the directory in which .htaccess is located and all subdirectories. It will override above settings, in this case is not necessary to restart apache.

5. Source code. The last place where this setting can be altered is directly in the executed PHP source. If used, will override all previous settings. It can be set calling the function "error_reporting()" or with "ini_set("error_reporting", )". Compile errors could still show, because the script won't be executed in that case.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Interpret the encoding modification methods in the PHP.ini file Interpret the encoding modification methods in the PHP.ini file Mar 27, 2024 pm 03:42 PM

Interpret the encoding modification method in the PHP.ini file. The PHP.ini file is a PHP configuration file. You can configure the PHP running environment by modifying the parameters in it. The encoding settings are also very important, and play an important role in processing Chinese characters, web page encoding, etc. This article will introduce in detail how to modify encoding-related configurations in the PHP.ini file, and give specific code examples for reference. View the current encoding settings: In the PHP.ini file, you can search for the following two related parameters

What to do if PHP time zone configuration error occurs? What to do if PHP time zone configuration error occurs? Mar 21, 2024 am 08:57 AM

PHP time zone configuration errors are a common problem. When date and time related functions are involved in PHP code, it is very important to configure the time zone correctly. If the time zone configuration is incorrect, the date and time display may be inaccurate or other problems may occur. Solving PHP time zone configuration errors requires specifying the correct time zone by setting the date_default_timezone_set() function. Here is a specific code example:

How to deal with the lack of PHP-FPM in Ubuntu How to deal with the lack of PHP-FPM in Ubuntu Mar 09, 2024 am 08:42 AM

In the Ubuntu system, PHP-FPM is a commonly used PHPFastCGI process manager, used to handle the running of PHP programs. However, in some cases, PHP-FPM may be missing, causing PHP to fail to run properly. This article will introduce how to deal with the lack of PHP-FPM in Ubuntu and provide specific code examples. Problem Description When installing PHP in Ubuntu system and enabling PHP

How to change encoding settings in PHP.ini How to change encoding settings in PHP.ini Mar 26, 2024 pm 03:48 PM

How to change the encoding settings in PHP.ini requires specific code examples. In PHP development, character encoding is a very important issue. Correct character encoding settings ensure correct transmission and display of data. The PHP.ini file is the configuration file of PHP. By modifying the PHP.ini file we can make some global configurations, including character encoding settings. Below we will explain in detail how to change the encoding settings in the PHP.ini file, and attach a code example. Step 1: Find PHP.ini

How to improve MySQL performance through PHP configuration How to improve MySQL performance through PHP configuration May 11, 2023 am 09:19 AM

MySQL is one of the most widely used database servers today, and PHP, as a popular server-side programming language, its applications usually interact with MySQL. Under high load conditions, MySQL performance will be greatly affected. At this time, PHP configuration needs to be adjusted to improve MySQL performance and thereby increase the response speed of the application. This article will introduce how to improve MySQL performance through PHP configuration. To configure PHP.ini, you first need to open the PHP configuration file (PHP.ini), so that you can change

Configuration and optimization of PHP in Kangle server environment Configuration and optimization of PHP in Kangle server environment Mar 29, 2024 am 08:06 AM

Configuration and optimization of PHP in the Kangle server environment. Kangle is a stable and efficient server software. Many websites choose to run in the Kangle environment. As a popular server-side scripting language, PHP is often used with Kangle. This article will introduce how to configure and optimize PHP in the Kangle server environment to improve the performance and security of the website. 1. PHP configuration 1. Find the php.ini file in the Kangle server. The PHP configuration file is usually

How to configure and use Memcache in PHP How to configure and use Memcache in PHP Jul 16, 2023 pm 12:27 PM

How to configure and use Memcache in PHP Memcache is a commonly used memory caching system that can be used to speed up website access and reduce database pressure. Configuring and using Memcache in PHP is very simple, detailed steps and code examples are described below. Step 1: Install and start Memcache Before starting, you first need to install and start Memcache in your system. It can be installed on Ubuntu via: sudoapt-get

How to solve the problem that PHP cannot obtain data normally after IIS installs the SSL certificate How to solve the problem that PHP cannot obtain data normally after IIS installs the SSL certificate Mar 10, 2024 am 11:30 AM

To solve the problem that PHP cannot obtain data normally after IIS installs an SSL certificate, specific code examples are required. With the improvement of Internet security awareness, more and more websites have begun to use SSL certificates to encrypt data transmission and protect user privacy and information security. On the Windows platform, one of the commonly used web servers is IIS (Internet Information Services). However, after installing the SSL certificate, some developers find that PHP cannot obtain data normally and may encounter problems.

See all articles