Настройка XAMPP на Mac OS X
Доброго времени суток, уважаемые читатели нашего блога! Многие люди работают на Windows и используют в качестве локального сервера Денвер. На нашем сайте даже есть небольшая заметка для тех, кто хочет настроить доступ к MySQL Денвера из локальной сети. А в этой статье речь пойдет о настройке XAMPP для операционной системы Mac OS X. Вы сможете избежать различных ошибок при настройке XAMPP и узнать, как быстро и легко изменить конфигурацию локального веб-сервера Apache. Вы, наверняка, знаете, что XAMPP это кроссплатформенная сборка веб-сервера, содержащая Apache, MySQL, интерпретатор скриптов PHP и так далее, которая позволяет запустить полноценный веб-сервер. Давайте рассмотрим какие настройки вам необходимо сделать, чтобы ваш сервер нормально работал.
Содержание
- Изменение конфигурационного файла сервера Apache
- Добавление хостов в файл httpd-vhosts.conf
- Добавление хостов в файл /etc/hosts/
- Настройка отладки php кода в файле php.ini
Изменение конфигурационного файла сервера Apache
Как мы знаем, в состав XAMPP входит веб-сервер Apache. Конфигурационный файл сервера Apache называется httpd.conf. Давайте изменим его. Обычно он находится по адресу /Applications/XAMPP/xamppfiles/etc/httpd.conf. Открываем его из Finder в программе TextEdit и редактируем:
- Первое, что мы сделаем, это изменим пользователя от имени, которого будет запущен наш сервер. Найдем следующие строки:
<IfModule unixd_module> User daemon Group daemon </IfModule>
Теперь заменим User daemon на User YourName. Замените YourName на имя вашего пользователя в системе Mac OS X. Получим следующее:
<IfModule unixd_module> User YourName Group daemon </IfModule>
Если не изменить пользователя, то появиться такая надпись при загрузке вашего локального сайта:
Access forbidden! You don't have permission to access the requested directory. There is either no index document or the directory is read-protected. If you think this is a server error, please contact the webmaster. Error 403
- Убираем решетку рядом со словом Include.
# Virtual hosts Include etc/extra/httpd-vhosts.conf
Этот шаг необходим, чтобы подключить конфигурационный файл httpd-vhosts.conf, в который мы будем записывать наши виртуальные хосты. То есть там мы будем прописывать пути, которые будут указывать на местоположения наших локальных сайтов.
- Можно написать свой e-mail, используя, следущую директиву:
ServerAdmin youraddress@mail.com
Вместо youraddress@mail.com укажите свой электронный адрес. При возникновении ошибок пользователи смогут написать о них на этот адрес. Он будет отображаться на странице с ошибкой.
- В директиве DocumentRoot мы укажем путь, который будет содержать папки с нашими локальными сайтами.По умолчанию записан следующий путь:
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
Но мы можем написать другой, например, такой:
DocumentRoot "/Users/YourName/Dropbox/Public/sites"
Удобно хранить все файлы в Dropbox, так как возможен доступ к ним и с других компьютеров. Замените YourName на имя вашего пользователя в системе Mac OS X.
- Таким же образом поменяем путь в этой директиве:
<Directory "/Users/YourName/Dropbox/Public/sites"> Options Indexes Includes FollowSymLinks AllowOverride All order allow,deny allow from all Require all granted </Directory>
Напишите все директивы внутри тэга Directory, чтобы избежать появления ошибок при работе сервера Apache. Директиву AllowOverride None обязательно заменяем на AllowOverride All во всех местах ее появления в файле httpd.conf.
- Чтобы у нас была возможность работать с файлом .htaccess в режиме mod_rewrite, внутри папки каждого отдельного виртуального хоста, вставим следующую директиву в конце файла httpd.conf:
AccessFileName .htaccess
Если вы хотите изменить .htaccess, например на htaccess.txt, то нужно убирать решетку рядом со словом Include:
# Various default settings Include etc/extra/httpd-default.conf
Теперь в конце файла httpd.conf мы напишем:
AccessFileName htaccess.txt
Это особенно удобно, когда настройки вашего локального сайта в файле .htaccess отличаются от настроек на удаленном сервере. Если использовать оба файла .htaccess и htaccess.txt, то не будет случаев, когда ваш сайт перестанет работать из-за случайной перезаписи удаленной версии файла, локальной.
Помните, нужно перезагружать локальный веб-сервер Apache после каждого изменения файла httpd.conf!
Добавление хостов в файл httpd-vhosts.conf
Чтобы добавить виртуальные хосты нужно изменить файл httpd-vhosts.conf. Этот конфигурационный файл обычно находится по адресу /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf. Открываем его из Finder в программе TextEdit и редактируем:
- В начале добавим следующую директиву:
NameVirtualHost *:80
Эта директива содержит все IP (так как использована звездочка *) и порт 80, который связан c именованными виртуальными хостами. Директива NameVirtualHost используется для организации виртуальных хостов, основанных на именах. В этом случае ip-адрес, указываемый в директиве NameVirtualHost и в контейнерах VirtualHost совпадают.
- Теперь запишем наши контейнеры VirtualHost. Сначала заполним контейнер, который сохраняет работающим http://localhost:
<virtualhost *:80> DocumentRoot "/Users/YourName/Dropbox/Public/sites" ServerName localhost <Directory "/Users/YourName/Dropbox/Public/sites"> Options Indexes FollowSymLinks Includes execCGI AllowOverride All Order Allow,Deny Allow From All </Directory> </virtualhost>
Замените YourName на имя вашего пользователя в системе Mac OS X.
- Пришло время добавить наш виртуальный хост, пусть он называется softmaker.kz:
<virtualhost *:80> DocumentRoot "/Users/YourName/Dropbox/Public/sites/softmaker.kz" ServerName softmaker.kz <Directory "/Users/YourName/Dropbox/Public/sites/softmaker.kz"> Options Indexes FollowSymLinks Includes execCGI AllowOverride All Order Allow,Deny Allow From All </Directory> ServerAdmin root@softmaker.kz ErrorLog "logs/softmaker.kz-error_log" CustomLog "logs/softmaker.kz-access_log" common </virtualhost>
Также замените YourName на имя вашего пользователя в системе Mac OS X. Директиву AllowOverride None обязательно заменяем на AllowOverride All, иначе файл .htaccess не будет прочитан сервером Apache и появится следующая ошибка:
Object not found! The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error. If you think this is a server error, please contact the webmaster. Error 404
Перезапустите ваш сервер Apache и виртуальные хосты будут добавлены.
Добавление хостов в файл /etc/hosts/
Чтобы все исправно работало необходимо указать системе Mac OS X, где находятся эти виртуальные хосты. Открываем файл /etc/hosts в терминале:
sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts
Добавляем в конец файла /etc/hosts строчку:
127.0.0.1 softmaker.kz
Таким же образом можно добавить и другие виртуальные хосты.
Настройка отладки php кода в файле php.ini
Файл конфигурации PHP называется php.ini. Обычно он находится по адресу /Applications/XAMPP/xamppfiles/etc/php.ini. Открываем его из Finder в программе TextEdit и редактируем. Если вы не можете найти секцию [xdebug], то ее можно написать в конце файла:
[xdebug] xdebug.default_enable=1 xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_autostart=1 xdebug.max_nesting_level = 100 zend_extension="/Applications/XAMPP/xamppfiles/lib/php/php5/xdebug.so"
Не забудьте установить параметр output_buffering = Off в файле php.ini!
В самой последней строке zend_extension указывается путь до файла xdebug.so. Этого файла нет в дистрибутиве XAMPP. Его нужно скачать и указать в этой строке путь, где он лежит. Кроме того, для каждой версии PHP существует отдельный файл. Также вы можете прочитать как настроить php.ini на Windows.
Если вы настраиваете сервер Apache и PHP, которые уже встроены в Mac OS X, то настройка не отличается, за исключением того, что вам придется редактировать эти же файлы в терминале и они расположены в других местах.
Первые же строки ввели меня в недоумение. Зачем в mac os x ставить Xampp отдельным приложением, когда из коробки в стоке имеются apache, php и perl остается только mysql поставить, а не велосипед изобретать?
Вы правы, Владимир, можно использовать из коробки, но я захотел поставить XAMPP. Кроме того, я запускаю apache, MySQL из графического интерфейса все в одном месте. Это дело личного выбора.
после включения виртульного хоста
Include etc/extra/httpd-default.conf
Apache перестает запускаться
В чем может быть конфликт ?
Здравствуйте! Не подскажете, как вернуть корзину в Dock mac os? Я случайно удалил ее из Dock, нажав на пункт меню: Удалить из Dock.
Здравствуйте, Антон! Чтобы восстановить в Dock
Здравствуйте, Nik! Измените доступ к этому файлу и перезагрузите сервер Apache.
Доброй ночи. Помогите, очень прошу. Установил XAMPP на Mac OS в браузере работает, НО на самом компьютере нет папки XAMPP. Что с этим делать. 30 раз переустанавливал не помогает.
Посмотрите в приложениях и поставьте смотреть скрытые папки.