0

我的 apache 日志文件中出现了许多这样的错误:

PHP:  syntax error, unexpected '(' in /etc/php5/apache2/php.ini on line 3

但这些是前 15 行/etc/php5/apache2/php.ini

[PHP]

;;;;;;;;;;;;;;;;;;;
; 关于 php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP的初始化文件,一般叫php.ini,负责
; 配置 PHP 行为的许多方面。

; PHP 尝试从多个位置查找并加载此配置。
; 以下是其搜索顺序的摘要:
; 1. SAPI 模块具体位置。
; 2. PHPRC 环境变量。(自 PHP 5.2.0 起)
; 3. Windows 上的一些预定义注册表项(自 PHP 5.2.0 起)
; 4.当前工作目录(CLI除外)
; 5. Web 服务器的目录(SAPI 模块),或 PHP 的目录

php.ini 的第一个未注释行:

engine = On

short_open_tag = Off

asp_tags = Off

precision = 14

y2k_compliance = On

我认为这将是一个缓存问题,但我刚刚禁用了我的 PHP 缓存(它是 APC)

我在整个文件的注释中找不到任何(不在注释中的 s。

如果没有,PHP 怎么会认为(文件中有 a?

4

2 回答 2

4

;inphp.ini表示注释行。消息不计算注释行。所以第 3 行表示顶部评论之后的第 3 行。

编辑 1:确保您正在打开php.iniPHP 真正使用的正确文件

编辑 2:使用phpinfo();并在结果页面查看Loaded Configuration File值。它向您显示php.ini当前使用的文件。注意:重启你的apache

于 2013-04-20T11:28:32.557 回答
1

我试着模仿你的情况:

~]$ php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/curl.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/phar.ini,
/etc/php.d/zip.ini

所以我去 /etc/php.ini 并取消注释带有“(”的行之一

~]$ vi /etc/php.ini
[PHP]

;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.

; PHP attempts to find and load this configuration from a number of locations.
; The following is a summary of its search order:
; 1. SAPI module specific location.
; 2. The PHPRC environment variable. (As of PHP 5.2.0)
; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
; 4. Current working directory (except CLI)
; 5. The web server's directory (for SAPI modules), or directory of PHP
 (otherwise in Windows)
; 6. The directory from the --with-config-file-path compile time option, or the

现在我检查是否有错误通知:

~]$ php --ini
PHP:  syntax error, unexpected '(' in /etc/php.ini on line 16
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini

是的,还有错误,但它显示了正确的行号,而不是忽略注释行。重新启动 apache 时,我在 apache/error_log 中也收到了相同的错误消息。

PHP:  syntax error, unexpected '(' in /etc/php.ini on line 16

php 文件有效,但没有将有关 ini 的错误发送到日志。

那么,你为什么不编辑你的 /etc/php5/apache2/php.ini 呢?只需擦除几行,看看错误消息是否移动到不同的数字。

确保更改后重新启动apache。

于 2013-04-20T12:04:53.597 回答