- Конфигурация Apache и PHP на Mac OS X
- Ошибка Apache в Mac OS X 10.6.5 и выше
- Конфигурация Apache
- Конфигурация виртуальных хостов.
- Комментарии (8):
- Андрей
- Александр
- softspice
- Александр
- Александр
- makegood
- Алексей
- makegood
- Где PHP.ini в Mac OS X Lion? Думал, что это было в / usr / local / php5 / lib
- macos — Почему в моей Mac OS X нет файла php.ini? Как мне получить его, чтобы я мог скачать и установить композитор?
- Решение
- Другие решения
- Где находится PHP.ini в Mac OS X Lion? Думал, что это было в / usr / local / php5 / lib
Конфигурация Apache и PHP на Mac OS X
Существует множество способов развернуть локальный сервер на Mac OS X, но сама система уже содержит предустановленный веб-сервер Apache и интерпретатор PHP, которые необходимо активировать и настроить.
Данное руководство требует некоторых навыков работы с командной строкой и знания редактора nano, поэтому рекомендую прочитать хорошую книгу по основам работы с командной строкой и терминалом в Mac OS X «Take Control of the Mac Command Line with Terminal».
Приведенный ниже материал является универсальным и будет полезен пользователям любых операционных систем.
Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.
Если набрать в адресной строке браузера http://localhost/ , то сервер вернет страницу с текстом «It works!».
Команды для работы с 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
Для конфигурации Apache необходимо открыть файл /etc/apache2/httpd.conf :
sudo nano /etc/apache2/httpd.conf
Переходим к строке 116 и подключаем PHP (необходимо раскомментировать строку):
LoadModule php5_module libexec/httpd/libphp5.so
Зададим свой каталог для локального сервера, поменяем путь к корневому каталогу в строке 168 и 195. После этих изменений корневым каталогом будет папка Сайты (Sites), находящаяся в домашнем каталоге пользователя.
Аналогично заменим прежний путь в строке 195:
В строке 230 пропишем какие типы файлов и в какой последовательности должен обрабатывать Apache:
В строке 264 можно задать место для хранения журнала ошибок Apache:
Раскомментируем строку 469, чтобы подключить файл в котором будем записывать виртуальные хосты:
Сохраняем все изменения в файле httpd.conf и перезапускаем Apache. Если перейти по адресу http://localhost/ , загрузится стартовая страница из папки сайты с приветствием «Ваш веб-сайт».
Проверим работоспособность PHP, для этого создадим в каталоге Сайты тестовый PHP-скрипт:
/Sites/index.php
sudo nano
и напишем сценарий, который покажет конфигурацию PHP:
Сохраняем файл index.php и вновь переходим по адресу http://localhost/ , должна открыться страница с информацией о версии PHP. Если по прежнему загружается страница приветствия, необходимо проверить настройки Apache (строка 230).
Конфигурационный файл php.ini находится в папке /private/etc/php.ini.defaults , его необходимо переименовать в php.ini :
sudo mv /private/etc/php.ini.default /private/etc/php.ini
Конфигурация виртуальных хостов.
Рекомендую познакомиться с более простым решением для работы с виртуальными хостами — VirtualHostX, с помощью этого приложения можно упростить весь процесс конфигурации виртуальных хостов.
Все проекты будут размещаться в каталоге пользователя Сайты ( /Users/имя_пользователя/Sites/ ). Создадим в этом каталоге новую папку с названием test , а в ней файл index.php с тестовым скриптом. Локальный сайт будет открываться по адресу http://test/ . Переходим к командной строке и вводим следующие команды:
/Sites/test
touch index.php
nano index.php
и добавим сценарий:
Теперь займемся конфигурацией виртуальных хостов. Для начала откроем файл /etc/hosts и добавим в исключения адрес локального сайта ( http://test/ ). Переходим к командной строке:
sudo nano /etc/hosts
и добавляем строчку:
Добавим записи с конфигурацией нового виртуального хоста:
sudo nano /private/etc/apache2/extra/httpd-vhosts.conf
И в конец файла добавляем записи:
Сохраняем изменения и перезапускаем Apache. Теперь, если перейти по адресу http://test/ откроется страница с приветствием «Hello world!».
Все указания выше приведены с учетом моих вкусов и предпочтений, цель данного руководства разобраться с основными принципами конфигурации нативного Apache и PHP на Mac OS X. С огромным удовольствием выслушаю предложения и замечания по доступности изложенного материала.
Комментарии (8):
Андрей
Огромное спасибо за столь подробное изложение. Только я добавлю свои пять копеек. Сразу после первичного редактирования httpd.conf, когда включался php5 и указывалась директория, при переходе на localhost браузер выдавал ошибку 403 — Forbidden. Если посмотреть лог, то можно увидеть причину — не существующие тестовые хосты в файле httpd-vhosts.conf. Нужно открыть его и вставить в конце файла хост:
ServerAdmin [email protected]
DocumentRoot «/Users/Имя пользователя/Sites»
ServerName localhost
ErrorLog «/private/var/log/apache2/mysite-error_log»
CustomLog «/private/var/log/apache2/mysite-access_log» common
Теперь localhost заработает. Тестовые хосты можно удалить.
Александр
И от меня поклон автору. Многое понял и многому научился.
И у меня — как и у Андрея — при переходе на localhost браузер выдавал ошибку 403 — Forbidden.
Только из комментария Андрея я не понял что нужно сделать. Слитно написано
Пожалуйста, напишите по шагам:
1.
2.
3.
Заранее благодарен.
softspice
После слов (команд):
«sudo nano /etc/hosts
и добавляем строчку:
127.0.0.1 test»
Нужно перезапустить сервер:
Иначе будет использоваться старый файл hosts.
Александр
У автора то ли кавычки съелись в разделе «Конфигурация виртуальных хостов», то ли еще что, но на данный момент в записи отсутствуют тэги VirtualHost и Directory. Короче, чтобы заработали виртуальные хосты, правильнее писать в файле /private/etc/apache2/extra/httpd-vhosts.conf так:
ServerAdmin [email protected]
DocumentRoot «/Users/имя юзера/Sites/test»
ServerName test
AllowOverride All
Order allow,deny
Allow from all
Иначе работать не будет ниче.
Спасибо за статью!
Александр
Опять кавычки съелись:
ServerAdmin [email protected]
DocumentRoot «/Users/имя юзера/Sites/test»
ServerName test
AllowOverride All
Order allow,deny
Allow from all
makegood
Алексей
Вроде все так сделал. Только только у меня все равно запускается index.php из sites а не из sites/test
В чем может быть проблема?
makegood
Алексей, скорее всего, неправильно настроены хосты.
Рекомендую настройку через MacPorts, на блоге есть подробная инструкция.
Источник
Где PHP.ini в Mac OS X Lion? Думал, что это было в / usr / local / php5 / lib
Я хотел запустить некоторый PHP прямо на моем Mac, uncommented httpd.conf, активировал общий доступ к сети, установил MySQL и т. Д. Я не могу найти файлы PHP, а самое главное, PHP.ini.
На моей старой машине он находился в / 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, попробуйте это .
В терминале do php -i | grep php.ini php -i | grep php.ini . Должны дать вам некоторые подсказки;)
Как указано, команда php —ini сообщит вам, где PHP ожидает найти файл php.ini.
Для стандартной установки он, вероятно, будет искать /etc/php.ini
Если вы использовали macports, то PHP может искать /opt/local/etc/php5/php.ini
Запустите phpinfo() из любого файла, и он сообщит вам, где он находится. Вот скриншот.
Ответы @Cronk и @Justin заставили меня закрыть Mac OS X 10.9 Mavericks. Фактически, в моей системе файл /etc/php.ini отсутствовал полностью, и только после того, как я запустил phpinfo() на веб-сервере, я заметил, что не было файла конфигурации. Копирование файла из /etc/php.ini.default и добавление полного mcrypt.so библиотеку mcrypt.so в файл конфигурации решает проблему:
Затем в /etc/php.ini добавьте следующую строку (используя правильный путь к вашему файлу mcrypt.so ):
Затем перезапустите Apache2:
У меня уже не один экземпляр PHP работает, поэтому другие ответы не сработали для меня. Это произошло:
Создайте файл PHP и откройте его локальный url в своем браузере:
Путь PHP.INI будет указан ближе к вершине.
Это довольно старая нить, но я хотел бы добавить дополнительное разъяснение.
Если у вас есть система с несколькими установками PHP (как и мои), результаты, полученные вами с помощью инструментов командной строки, могут быть разными, чем то, что фактически используется веб-сервером. Если вас интересует, что PHP используется веб-сервером, используйте информацию, собранную с веб-страницы, использующей функцию «phpinfo ()».
Например, в моей системе версии, описанные двумя разными способами, были:
Для пути к файлу php.ini все было по-другому:
Вы можете найти все возможные файлы php.ini, используя это:
find / -name php.ini 2> & 1 | grep -v «denied» | grep -v «directory»
(элементы ‘2> & 1’ и ‘grep’ просто ограничивают вывод команды полезной информацией, то есть избавляются от сообщений об ошибках)
В моей системе я нашел 3 INI-файла. Поскольку меня интересовало то, что использовал веб-сервер, я знал, что должен использовать путь, возвращенный с результатов веб-страницы. Я внес изменения в файл php.ini, который был указан там, перезапустил apache и повторно запустил веб-страницу; там были показаны новые изменения.
Чтобы перезапустить apache:
Я начинаю с «Hello World!», Как только я получаю это отображение в своем браузере, я бросаю phpinfo(); там, и вы можете видеть все. Сообщает вам, какие конфигурации загружены, все.
Вы запускаете php_info () и смотрите строку ниже:
Источник
macos — Почему в моей Mac OS X нет файла php.ini? Как мне получить его, чтобы я мог скачать и установить композитор?
У меня проблемы с файлом php.ini, который не существует или, по крайней мере, не в нужном месте.
Моя конечная цель — создавать проекты с помощью Laravel на моем Macbook Pro (Mac OS X). Для установки Laravel мне нужно установить Composer (https://getcomposer.org/ ). Чтобы загрузить Composer, я должен запустить в Терминале следующее:
php -r «copy (‘https://getcomposer.org/installer ‘,’ composer-setup.php ‘); «php -r» if (hash_file (‘ SHA384 ‘,’ composer-setup.php ‘) ===’ e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3d ’09e2a0eb0e6f6d6d6d6d6d6b6d6b6d4 > else
echo PHP_EOL; «php composer-setup.php
php -r «unlink (‘composer-setup.php’);»
Некоторые настройки на вашем компьютере делают Composer неспособным работать должным образом.
Убедитесь, что вы исправили проблемы, перечисленные ниже, и снова запустите этот скрипт:
Параметр Detect_unicode должен быть отключен.
Добавьте следующее в конец вашего php.ini :
detect_unicode = Off
Файл php.ini не существует. Вам придется создать один.
Если вы не можете изменить INI-файл, вы также можете запустить php -d option=value изменять значения ini на лету. Вы можете использовать -d несколько раз.
Теперь я понимаю, что на всех компьютерах Mac установлен PHP по умолчанию. Кажется, нет. Я действительно не понимаю, почему, нет файла php.ini, где он должен быть (/ etc). Я также сделал много сайтов, используя MAMP, который включает в себя PHP. Я предполагаю, что Composer не ищет php.ini, используемый для MAMP, но требует его в etc /. Но как я могу получить файл php.ini там безопасно?
Я застрял в том, чтобы заставить Composer и Laravel работать на моем Mac уже давно. Спасибо, что нашли время, чтобы помочь мне. Это значит многое.
Решение
В общем-то php.ini находится в /etc Вы можете проверить, где это может быть, выполнив следующую команду в Терминале:
Выход:
Если у вас его нет, я бы воспользовался советом инструкций и создал его. Существует «по умолчанию», который вы можете скопировать, чтобы создать его:
Другие решения
Я работал над многими проектами в laravel для OSX и, честно говоря, я предлагаю вам не устанавливать пользовательскую среду, как предложено в документации, для разработки, которую вы могли бы использовать:
1) усадьба : на основе Vagrant, мультиплатформенный (для этого требуется virtualbox или vmware)
2) камердинер : специфично для osx (должно быть быстрее)
Для обоих вы получите Php, Nginx, MySQL, Redis, Composer, узел и многое другое полностью настроены.
Я всегда использовал Homested, и, следуя руководству, вы получите полную среду разработки за несколько минут.
Источник
Где находится PHP.ini в Mac OS X Lion? Думал, что это было в / usr / local / php5 / lib
Я хотел запустить несколько PHP прямо на моем Mac, раскомментировать httpd.conf, активировать общий доступ к сети, установить MySQL и т.д. Я не могу найти свои PHP файлы, самое главное, php.ini.
На моей старой машине он находился в/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() из любого файла, и он скажет вам, где он находится. Вот скриншот.
У меня не раз запускается экземпляр PHP, поэтому другие ответы у меня не сработали. Это сделал:
Создайте файл PHP и откройте его локальный URL в вашем браузере:
Путь PHP.INI будет указан близко к началу.
Это довольно старая тема, но я хотел бы добавить дополнительные разъяснения.
Если у вас есть система с несколькими установками PHP (как у меня), результаты, которые вы получите от использования инструментов командной строки, МОГУТ БЫТЬ отличны от тех, которые фактически используются веб-сервером. Если вас интересует, что PHP используется веб-сервером, используйте только информацию, полученную с веб-страницы, которая использует функцию phpinfo ().
Например, в моей системе версии, представленные двумя разными методами, были следующими:
Для пути к файлу php.ini все было иначе:
Вы можете найти все возможные файлы php.ini, используя это:
найти/-name php.ini 2> & 1 | grep -v «отказано» | grep -v «каталог»
(элементы ‘2> & 1’ и ‘grep’ ограничивают вывод команды полезной информацией, то есть избавляются от сообщений об ошибках)
В моей системе я нашел 3 INI файла. Поскольку меня интересовало, что использует веб-сервер, я знал, что должен использовать путь, полученный из результатов веб-страницы. Я внес свои изменения в файл php.ini, который там был указан, перезапустил Apache и заново запустил веб-страницу; новые правки были показаны там.
Чтобы перезапустить Apache:
Sudo apachectl -k перезапустить
Источник