Где находится php ini mac os

Обновлено: 04.07.2024

Существует множество способов развернуть локальный сервер на Mac OS X, но сама система уже содержит предустановленный веб-сервер Apache и интерпретатор PHP, которые необходимо активировать и настроить.

Данное руководство требует некоторых навыков работы с командной строкой и знания редактора nano, поэтому рекомендую прочитать хорошую книгу по основам работы с командной строкой и терминалом в Mac OS X «Take Control of the Mac Command Line with Terminal».

Приведенный ниже материал является универсальным и будет полезен пользователям любых операционных систем.

Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.

Команды для работы с Apache через командную строку:

sudo apachectl start | stop | restart

Ошибка Apache в Mac OS X 10.6.5 и выше

Следующая ошибка наблюдается при перезапуске Apache в Mac OS X 10.6.5 и выше, если попытаться перезапустить сервер через командную строку, Apache вернет ошибку:

/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument

Необходимо внести изменения в скрипт apachectl ( /usr/sbin/apachectl ):

sudo nano /usr/sbin/apachectl

закомментируем строку 82:

ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"

и добавим под ней:

Сохраняем скрипт и перезапускаем Apache.

Конфигурация Apache

Переходим к строке 116 и подключаем PHP (необходимо раскомментировать строку):

Зададим свой каталог для локального сервера, поменяем путь к корневому каталогу в строке 168 и 195. После этих изменений корневым каталогом будет папка Сайты (Sites), находящаяся в домашнем каталоге пользователя.

Аналогично заменим прежний путь в строке 195:

В строке 230 пропишем какие типы файлов и в какой последовательности должен обрабатывать Apache:

В строке 264 можно задать место для хранения журнала ошибок Apache:

Раскомментируем строку 469, чтобы подключить файл в котором будем записывать виртуальные хосты:

Сохраняем все изменения в файле httpd.conf и перезапускаем Apache. Если перейти по адресу http://localhost/ , загрузится стартовая страница из папки сайты с приветствием "Ваш веб-сайт".

Проверим работоспособность PHP, для этого создадим в каталоге Сайты тестовый PHP-скрипт:

/Sites/index.php
sudo nano

и напишем сценарий, который покажет конфигурацию PHP:

Конфигурационный файл php.ini находится в папке /private/etc/php.ini.defaults , его необходимо переименовать в php.ini :

sudo mv /private/etc/php.ini.default /private/etc/php.ini

Конфигурация виртуальных хостов.

Рекомендую познакомиться с более простым решением для работы с виртуальными хостами - VirtualHostX, с помощью этого приложения можно упростить весь процесс конфигурации виртуальных хостов.

/Sites/test
touch index.php
nano index.php

и добавим сценарий:

sudo nano /etc/hosts

и добавляем строчку:

Добавим записи с конфигурацией нового виртуального хоста:

И в конец файла добавляем записи:

Все указания выше приведены с учетом моих вкусов и предпочтений, цель данного руководства разобраться с основными принципами конфигурации нативного Apache и PHP на Mac OS X. С огромным удовольствием выслушаю предложения и замечания по доступности изложенного материала.

Комментарии (8):

Андрей

Теперь localhost заработает. Тестовые хосты можно удалить.

Александр

softspice

Иначе будет использоваться старый файл hosts.

Александр

AllowOverride All
Order allow,deny
Allow from all

Иначе работать не будет ниче.

Спасибо за статью!

Александр

makegood

Алексей

Вроде все так сделал. Только только у меня все равно запускается index.php из sites а не из sites/test
В чем может быть проблема?

makegood

Алексей, скорее всего, неправильно настроены хосты.
Рекомендую настройку через MacPorts, на блоге есть подробная инструкция.

На моей старой машине он находился в/usr/local/php5/lib Но каталог php5 не существует в/usr/local ..

Нужно ли мне получить посылку или я ищу неправильное место?

Запуск OS X 10.7.3, PHP 5.3.8, Apache/2.2.21

Вы должны найти его в/private/etc, если он существует, в противном случае:

Чтобы найти INI-файл на вашем компьютере, откройте Terminal.app и выполните следующую команду:

Если вам нужен шаблон для Lion, попробуйте это .

В терминале сделайте php -i | grep php.ini . Должен дать вам несколько подсказок;)

Как уже указывалось, команда php --ini сообщит вам, где PHP ожидает найти файл php.ini.

Для стандартной установки он, вероятно, будет искать /etc/php.ini

Если вы использовали macports, то PHP, возможно, ищет /opt/local/etc/php5/php.ini

Ответы @Cronk и @Justin помогли мне приблизиться к Mac OS X 10.9 Mavericks. На самом деле, в моей системе файл /etc/php.ini полностью отсутствовал, и только когда я запустил phpinfo() на веб-сервере, я заметил, что не было никакого файла конфигурации. Копирование файла из /etc/php.ini.default и добавление полный путь в библиотеку mcrypt.so в файл конфигурации решило проблему:

Затем в /etc/php.ini добавьте следующую строку (используя правильный путь к вашему mcrypt.so файлу):

Затем перезапустите Apache2:

Запустите phpinfo() из любого файла, и он скажет вам, где он находится. Вот скриншот.

enter image description here

У меня не раз запускается экземпляр PHP, поэтому другие ответы у меня не сработали. Это сделал:

Создайте файл PHP и ​​откройте его локальный URL в вашем браузере:

Путь PHP.INI будет указан близко к началу.

Это довольно старая тема, но я хотел бы добавить дополнительные разъяснения.

Если у вас есть система с несколькими установками PHP (как у меня), результаты, которые вы получите от использования инструментов командной строки, МОГУТ БЫТЬ отличны от тех, которые фактически используются веб-сервером. Если вас интересует, что PHP используется веб-сервером, используйте только информацию, полученную с веб-страницы, которая использует функцию phpinfo ().

Например, в моей системе версии, представленные двумя разными методами, были следующими:

Для пути к файлу php.ini все было иначе:

Командная строка: /private/etc/php.ini

Веб: /long/path/to/the/file/php.ini

Вы можете найти все возможные файлы php.ini, используя это:

найти/-name php.ini 2> & 1 | grep -v "отказано" | grep -v "каталог"

На моей старой машине он находился в / usr / local / php5 / lib Но каталог php5 не существует в / usr / local ..

Мне нужно получить посылку или я ищу не в том месте?

Запуск OS X 10.7.3, PHP 5.3.8, Apache / 2.2.21

Вы должны найти его в / private / etc, если он существует, в противном случае:

Вот полный метод изменения правильного php.ini в Mac.

  • Узнайте местоположение ini через php --ini , это даст примерно следующее:
  • Теперь откройте php.ini через sudo vi /usr/local/etc/php/7.4/php.ini
  • Внесите изменения и выйдите из него через :wq
  • Выполнить последнюю команду sudo apachectl restart

Ваши изменения теперь должны быть отражены, если все сделано правильно :)

Вы запускаете php_info () и видите строку ниже :)

Я начинаю с «Hello World!». Как только это отображается в моем браузере, я добавляю туда phpinfo(); , и вы можете увидеть все это. Сообщает вам, какие конфигурации загружены, все.

В OSX / MacOS выполните следующие действия в окне терминала:

Запустите php --ini в приглашении, набрав его и нажав клавишу ВВОД

Сообщает что-то вроде: Файл конфигурации (php.ini) Путь: / etc Загруженный файл конфигурации: (нет) Сканировать дополнительные файлы .ini в: / Library / Server / Web / Config / php Анализируются дополнительные файлы .ini: (нет)

. это потому, что в / etc есть файл с именем /etc/php.ini.default в качестве примера и чтобы показать, что он не используется. Вам нужно скопировать этот файл с именем, которое ожидает php, чтобы вы могли его отредактировать, например:

. тогда вы увидите, что если вы снова запустите php --ini , теперь он видит ваш новый файл:

Набрав это: php --ini в приглашении должно сообщить следующее:

. теперь отредактируйте /etc/php.ini - вы хотите, чтобы следующие строки (НЕ та же строка, начинающаяся с точки с запятой ';') были в точности следующим образом: log_errors = On (это включит механизм регистрации)

Затем в этом разделе:

Если вы хотите войти в системный журнал (или журнал событий Windows в Windows), тогда ;error_log = syslog должен стать error_log = syslog

Однако, если, как вы говорите, вы хотите войти в файл, вы раскомментируете его, удалив начальную точку с запятой, чтобы ;error_log = php_errors.log превратился в error_log = php_errors.log , или используя полный путь, чтобы поместить его в нужное место.

Это довольно старая ветка, но я хотел бы добавить дополнительные пояснения.

Если у вас есть система с несколькими установками PHP (как у меня), результаты, которые вы получаете от использования инструментов командной строки, МОГУТ БЫТЬ отличными от того, что фактически используется веб-сервером. Если вас интересует, какой PHP используется веб-сервером, используйте только информацию, собранную с веб-страницы, которая использует функцию phpinfo ().

Например, в моей системе двумя разными методами были получены следующие версии:

Для пути к файлу php.ini тоже все было иначе:

Командная строка: /private/etc/php.ini

Веб: /long/path/to/the/file/php.ini

Вы можете найти все возможные файлы php.ini, используя это:

найти / -имя php.ini 2> & 1 | grep -v "отказано" | grep -v "каталог"

В своей системе я обнаружил 3 файла INI. Поскольку меня интересовало, что использует веб-сервер, я знал, что должен использовать путь, возвращенный из результатов веб-страницы. Я внес свои изменения в файл php.ini, который был там указан, перезапустил apache и повторно запустил веб-страницу; там были показаны новые правки.

Чтобы перезапустить apache:

У меня есть несколько экземпляров PHP, поэтому другие ответы у меня не сработали. Это сделало:

Создайте файл PHP и откройте его локальный URL-адрес в своем браузере:

Путь PHP.INI будет указан вверху.

Запустите phpinfo() из любого файла, и он сообщит вам, где он находится. Вот скриншот.

enter image description here

Как уже указывалось, команда php --ini сообщит вам, где PHP ожидает найти файл php.ini.

Для стандартной установки, вероятно, потребуется /etc/php.ini

Если вы использовали macports , то PHP может искать /opt/local/etc/php5/php.ini

Ответы от @Cronk и @Justin помогли мне понять Mac OS X 10.9 Mavericks. Фактически, в моей системе файл /etc/php.ini отсутствовал полностью, и только когда я запустил phpinfo() на веб-сервере, я обнаружил, что не было файла конфигурации. Копирование файла из /etc/php.ini.default и добавление полного пути к библиотеке mcrypt.so в файл конфигурации решило проблему:

Затем в /etc/php.ini добавьте следующую строку (используя правильный путь к вашему файлу mcrypt.so ):

Затем перезапустите Apache2:

В терминале сделайте php -i | grep php.ini . Должен дать вам некоторые подсказки;)

Чтобы найти ini-файл на вашем компьютере, откройте Terminal.app и выполните следующую команду:

Если вам нужен шаблон для Lion, попробуйте это.

1- Найдите .ini путь к местоположению

Откройте Терминал и запустите команду

2- скопируйте этот путь /usr/local/etc/php/7.4/php.ini и откройте его командой

3- Внесите изменения и выйдите с помощью комбинации клавиш Ctrl + X, чтобы выйти из nano.

На моей старой машине он находился в / usr / local / php5 / lib Но каталог php5 не существует в / usr / local ..

Нужно ли мне получить посылку или я ищу неправильное место?

Запуск OS X 10.7.3, PHP 5.3.8, Apache / 2.2.21

Простой способ найти местоположение - запустить phpinfo (); @ralfe Следует добавить, что вам нужно искать параметр «Loaded Configuration File» в phpinfo () или php --ini (запустить в окне терминала). Потому что, если нет php.ini, оба они сообщат путь к файлу конфигурации как /etc (по крайней мере, на моей установке OS X 10.8). Если файл конфигурации не загружен, то вам следует попробовать ответ от Mac

Вы должны найти его в / private / etc, если он существует, в противном случае:

Хорошо, есть файл php.ini.default в / private / etc, и я проверяю его. но есть идеи, почему у меня нет старой папки php5 в usr / local? Там было множество файлов, включая рекомендуемый php.ini. Это изменение в более новой версии, PHP5, Lion или что-то еще? PHP5 включен по умолчанию в MacOS X начиная с 10.5 с указанным выше расположением для файла php.ini. Если вы установили его вручную, он не должен был быть удален во время обновления до Lion; странно . Файл php.ini.default на моей машине Lion не соответствовал всем настройкам по умолчанию, когда php.ini отсутствовал. Примечательно, что short_tags был выключен, error_reporting, log_errors и некоторые незначительные настройки отличались. Вы хотите сравнить ваши результаты php -i до и после создания вашего php.ini. на моем mac у меня был файл в /private/etc/php.ini, но php, похоже, игнорировал любые сделанные мной изменения, обнаружив, что он использует файл в /usr/local/php5/lib/php.ini Этот ответ указал мне правильное направление. cp php.ini.default> php.ini и загруженная конфигурация CLI стала /etc/php.ini. Проверьте php -i | grep php.ini после

Чтобы найти INI-файл на вашем компьютере, откройте Terminal.app и выполните следующую команду:

Если вам нужен шаблон для Lion, попробуйте это .

У меня нет загруженного php.ini прямо сейчас. В основном я ищу каталог с «рекомендуемым» шаблоном php.ini.

В терминале пойду php -i | grep php.ini . Должен дать вам несколько подсказок;)

Ответы @Cronk и @Justin помогли мне познакомиться с Mac OS X 10.9 Mavericks. Фактически, в моей системе /etc/php.ini файл полностью отсутствовал, и только когда я запустился phpinfo() на веб-сервере, я заметил, что не было никакого файла конфигурации. Копирование файла /etc/php.ini.default и добавление полного пути к mcrypt.so библиотеке в файл конфигурации решило проблему:

Затем /etc/php.ini добавьте следующую строку (используя правильный путь к вашему mcrypt.so файлу):

Затем перезапустите Apache2:

О боже, ты мой герой! спасибо за идею использования полного пути mcrypt!

Как указывалось, php --ini команда скажет вам, где PHP ожидает найти файл php.ini.

Для стандартной установки, скорее всего, будет искать /etc/php.ini

Если вы использовали macports, то PHP может искать /opt/local/etc/php5/php.ini

Запустите phpinfo() из любого файла, и он скажет вам, где он находится. Вот скриншот.

введите описание изображения здесь

это лучший способ, так как вы можете найти копии php.ini в других папках «по умолчанию», но этот способ скажет вам ту, которую он на самом деле использует, так что вы избежите царапин на голове и разочарования, которое возникает, когда вы внести изменения, но php, кажется, совершенно не знает об этих изменениях. Вы также можете открыть php REPL в своей оболочке, запустив php -a туда, где вы затем запустите phpinfo(); .

У меня уже не один экземпляр PHP работает, поэтому другие ответы у меня не сработали. Это сделал:

Создайте файл PHP и откройте его локальный URL в вашем браузере:

Путь PHP.INI будет указан близко к началу.

Это довольно старая тема, но я хотел бы добавить дополнительные разъяснения.

Если у вас есть система с несколькими установками PHP (как у меня), результаты, которые вы получите от использования инструментов командной строки, МОГУТ БЫТЬ отличны от тех, которые фактически используются веб-сервером. Если вас интересует, какой PHP используется веб-сервером, используйте только информацию, собранную с веб-страницы, которая использует функцию phpinfo ().

Например, в моей системе версии, представленные двумя разными методами, были следующими:

Для пути к файлу php.ini все было иначе:

Командная строка: /private/etc/php.ini

Веб: /long/path/to/the/file/php.ini

Вы можете найти все возможные файлы php.ini, используя это:

найти / -name php.ini 2> & 1 | grep -v "отказано" | grep -v "каталог"

Читайте также: