MacOsX Sierra上的ini文件在哪里?

问题描述 投票:17回答:7

我刚买了新的MacBook Pro。看看php -i | grep ini返回的内容:

prompt> php -i | grep ini
Configuration File (php.ini) Path => /etc
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
user_ini.cache_ttl => 300 => 300
user_ini.filename => .user.ini => .user.ini
Supported handlers => ndbm cdb cdb_make inifile flatfile
init_command_executed_count => 0
init_command_failed_count => 0
com_init_db => 0
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException
open sourced by => Epinions.com

这就是我运行php --ini时会发生的事情

prompt> $ php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

似乎当前的php没有加载任何php.ini文件。可能吗?

php macos-sierra
7个回答
48
投票

当前版本的Mac OS X不附带php.ini。 PHP对所有设置使用内部默认值。

/etc/php.ini.default上安装了一个示例配置文件。如果需要自定义PHP设置,可以使用该文件作为模板在/etc/php.ini创建配置文件。 PHP将读取该文件中的设置(如果存在)。


20
投票

编辑:测试了以下方法,我确认它适用于macOS,Linux和Windows的CMD和Bash

您只需输入终端/ CMD / Bash即可

php --ini

它将呈现如下内容:

Configuration File (php.ini) Path: /usr/local/etc/php/5.6
Loaded Configuration File:         /usr/local/etc/php/5.6/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.6/conf.d
Additional .ini files parsed:      (none)

5
投票

有一个名为php_ini_loaded_file()的PHP函数,它返回加载的php.ini路径。

请尝试下面的代码。

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
    echo 'A php.ini file is not loaded';
}
?>

2
投票

您可以使用find命令在文件系统中搜索php.ini或其他任何内容。根据您的文件系统大小,可能需要很长时间才能找到它。如果你想让它停止搜索你可以做CTRL-C

find / -type f -name php.ini

如果您不是root用户,则会收到一些权限被拒绝的消息,如果您想以root身份运行,则可以执行此操作。

sudo find / -type f -name php.ini

如果您对其他一些示例感兴趣,请参阅此教程。

http://www.tecmint.com/35-practical-examples-of-linux-find-command/


2
投票
php -r "echo php_ini_loaded_file();"

在我的机器上返回:

/usr/local/etc/php/7.1/php.ini

;)


1
投票

这适用于MacOS Sierra,安装了PHP 7.1:

  1. 创建一个名为phpinfo_temp.php的php文件(记得在完成后删除此文件): <?php phpinfo(); ?>
  2. 加载文件,您会注意到7个变量:“已加载的配置文件:”。这是加载的php文件。
  3. 在编辑之前备份php.ini文件: sudo cp /usr/local/php5/lib/php.ini /usr/local/php5/lib/php.ini.backup
  4. 然后编辑php.ini sudo nano /usr/local/php5/lib/php.ini
  5. 完成编辑后,重新启动Apache服务器 sudo apachectl restart

0
投票

最常见的是.ini文件不存在,但它在.ini.default中被命名为/etc

© www.soinside.com 2019 - 2024. All rights reserved.