日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發布時間:2023/12/18 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP配置,php.ini以及覆盖问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在部署一個cms項目到服務器上的時候,因為cms的模板比較老,服務器上用的php是5.3.3版(大于5.3,可以認為是新的),有些頁面會顯示“deprecated”類別的錯誤信息。安全起見要抑制頁面中的錯誤信息輸出,于是修改php.ini,發現error_reporting已經設定為Off了,表示錯誤輸出到日志文件而不在頁面上顯示。但是,頁面上有顯示錯誤啊!

Google一番后在SO上發現了解決方案,是因為配置的覆蓋問題,cms源代碼中會覆蓋php.ini的配置。那么改動cms中的error_reporting語句就可以解決問題了,比如:

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

以下是詳細的解釋,來自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.

轉載于:https://www.cnblogs.com/zjutzz/p/4898085.html

總結

以上是生活随笔為你收集整理的PHP配置,php.ini以及覆盖问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。