1

我使用同一个 php.ini 文件已有 10 多年了,定期将新 PHP 版本的更改合并到其中。自 Breezy (5.10) 以来,我或多或少地遵循了 Debian/Ubuntu 约定(进行了一些修改),包括 CLI 和 Apache 版本之间的分离。

因此,我在 /etc/php5 中的内容总是与发行版默认提供的内容略有不同。现在我需要确切地知道差异是什么。幸运的是,默认的 ini 文件仍然在 /usr/share/php5 中可用。我知道发行版默认是“生产”(这是有道理的),但我看到不止一个生产文件:

# ls -l /usr/share/php5/php.ini*
-rw-r--r-- 1 root root 66K Jul 15 20:44 /usr/share/php5/php.ini-development
-rw-r--r-- 1 root root 65K Jul 15 20:44 /usr/share/php5/php.ini-production
-rw-r--r-- 1 root root 64K Jul 15 20:44 /usr/share/php5/php.ini-production-dist
-rw-r--r-- 1 root root 64K Jul 15 20:44 /usr/share/php5/php.ini-production.cli

我想知道的:

  • 这些文件的具体用途是什么
  • 在 vanilla 安装中,这些中的哪一个最终成为 /etc/php5/apache2/php.ini 和 /etc/php5/cli/php.ini?

我的猜测是:

  • php.ini-development:非常明显 - 更严格的错误处理,显示错误,没有遗留错误解决方法。可以复制或符号链接到 /etc/php5/apache2/php.ini 以进行开发。
  • php.ini-production.cli:最初与 /etc/php5/cli/php.ini 相同?

php.ini-production 和 php.ini-production-dist 之间的区别让我很困惑。作为参考,不同之处在于:

# diff php.ini-production php.ini-production-dist 
213c213
< short_open_tag = On
---
> short_open_tag = Off
316c316
< disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
---
> disable_functions =
407c407
< memory_limit = 128M
---
> memory_limit = 32M
1407c1407
< session.gc_probability = 0
---
> session.gc_probability = 1

此处提出了类似的问题,但答案并未包含我想知道的内容。

我目前正在使用 Ubuntu 和 Kubuntu Raring (13.04)。

4

0 回答 0