Где находятся файлы ini на MacOsX Sierra?
Я только что купил новый 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. Возможно ли это?
Ответы
Ответ 1
Текущие версии Mac OS X не поставляются с php.ini
. PHP использует внутренние значения по умолчанию для всех параметров.
Существует пример файла конфигурации, установленного в /etc/php.ini.default
. Если вам нужно настроить параметры PHP, вы можете использовать этот файл в качестве шаблона для создания файла конфигурации в /etc/php.ini
. PHP будет читать настройки из этого файла, если он присутствует.
Ответ 2
Изменение: следующий метод был протестирован, и я подтверждаю, что он работает на 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)
Ответ 3
Существует PHP-функция php_ini_loaded_file(), которая возвращает путь к загружаемому php.ini.
Попробуйте использовать код ниже.
<?php
$inipath = php_ini_loaded_file();
if ($inipath) {
echo 'Loaded php.ini: ' . $inipath;
} else {
echo 'A php.ini file is not loaded';
}
?>
Ответ 4
Вы можете использовать команду 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/
Ответ 5
php -r "echo php_ini_loaded_file();"
на моей машине возвращается:
/usr/local/etc/php/7.1/php.ini
;)
Ответ 6
Это сработало для меня в MacOS Sierra с установленным PHP 7.1:
-
Создайте php файл с именем phpinfo_temp.php(не забудьте удалить этот файл, когда вы закончите):
<?php phpinfo(); ?>
-
Загрузите файл, и вы увидите около 7 переменных: "Загруженный файл конфигурации:". Это загруженный файл php.
-
Сохраните файл php.ini перед редактированием:
sudo cp /usr/local/php5/lib/php.ini /usr/local/php5/lib/php.ini.backup
-
Затем отредактируйте php.ini
sudo nano /usr/local/php5/lib/php.ini
-
Как только вы закончите редактирование, перезапустите сервер apache
sudo apachectl restart
Ответ 7
чаще всего файл .ini
не существует как есть, но он называется .ini.default
в /etc
.
Ответ 8
Я добавлю обновленный ответ для всех, кто имеет дело с этим на MacOS Mojave и PHP 7.1
Запуск 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.ini.default
в /private/etc/
, продублировал его и переименовал в php.ini
, который теперь правильно загружается:
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)