Настройка XAMPP на Mac OS X

Конфигурация XAMPP с виртуальными хостами и файлом .htacces
image_pdfimage_print

Доброго времени суток, уважаемые читатели нашего блога! Многие люди работают на Windows и используют в качестве локального сервера Денвер. На нашем сайте даже есть небольшая заметка для тех, кто хочет настроить доступ к MySQL Денвера из локальной сети. А в этой статье речь пойдет о настройке XAMPP для операционной системы Mac OS X. Вы сможете избежать различных ошибок при настройке XAMPP и узнать, как быстро и легко изменить конфигурацию локального веб-сервера Apache. Вы, наверняка, знаете, что XAMPP это кроссплатформенная сборка веб-сервера, содержащая Apache, MySQL, интерпретатор скриптов PHP и так далее, которая позволяет запустить полноценный веб-сервер. Давайте рассмотрим какие настройки вам необходимо сделать, чтобы ваш сервер нормально работал.

Содержание

Изменение конфигурационного файла сервера Apache

Как мы знаем, в состав XAMPP входит веб-сервер Apache. Конфигурационный файл сервера Apache называется httpd.conf. Давайте изменим его. Обычно он находится по адресу /Applications/XAMPP/xamppfiles/etc/httpd.conf. Открываем его из Finder в программе TextEdit и редактируем:

  1. Первое, что мы сделаем, это изменим пользователя от имени, которого будет запущен наш сервер. Найдем следующие строки:
          <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
    
  2. Убираем решетку рядом со словом Include.
            # Virtual hosts
            Include etc/extra/httpd-vhosts.conf
    

    Этот шаг необходим, чтобы подключить конфигурационный файл httpd-vhosts.conf, в который мы будем записывать наши виртуальные хосты. То есть там мы будем прописывать пути, которые будут указывать на местоположения наших локальных сайтов.

  3. Можно написать свой e-mail, используя, следущую директиву:
            ServerAdmin [email protected]
    

    Вместо [email protected] укажите свой электронный адрес. При возникновении ошибок пользователи смогут написать о них на этот адрес. Он будет отображаться на странице с ошибкой.

  4. В директиве DocumentRoot мы укажем путь, который будет содержать папки с нашими локальными сайтами.По умолчанию записан следующий путь:
          DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
    

    Но мы можем написать другой, например, такой:

          DocumentRoot "/Users/YourName/Dropbox/Public/sites"
    

    Удобно хранить все файлы в Dropbox, так как возможен доступ к ним и с других компьютеров. Замените YourName на имя вашего пользователя в системе Mac OS X.

  5. Таким же образом поменяем путь в этой директиве:
          <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.

  6. Чтобы у нас была возможность работать с файлом .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 и редактируем:

  1. В начале добавим следующую директиву:
          NameVirtualHost *:80
    

    Эта директива содержит все IP (так как использована звездочка *) и порт 80, который связан c именованными виртуальными хостами. Директива NameVirtualHost используется для организации виртуальных хостов, основанных на именах. В этом случае ip-адрес, указываемый в директиве NameVirtualHost и в контейнерах VirtualHost совпадают.

  2. Теперь запишем наши контейнеры 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 [email protected]
                  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, то настройка не отличается, за исключением того, что вам придется редактировать эти же файлы в терминале и они расположены в других местах.

Этот блог читают уже много людей
- читай и ТЫ!
8 ответы
  1. Владимир
    Владимир says:

    Первые же строки ввели меня в недоумение. Зачем в mac os x ставить Xampp отдельным приложением, когда из коробки в стоке имеются apache, php и perl остается только mysql поставить, а не велосипед изобретать?

    Ответить
  2. Softmaker
    Softmaker says:

    Вы правы, Владимир, можно использовать из коробки, но я захотел поставить XAMPP. Кроме того, я запускаю apache, MySQL из графического интерфейса все в одном месте. Это дело личного выбора.

    Ответить
  3. makintosh
    makintosh says:

    после включения виртульного хоста
    Include etc/extra/httpd-default.conf
    Apache перестает запускаться

    В чем может быть конфликт ?

    Ответить
  4. Антон
    Антон says:

    Здравствуйте! Не подскажете, как вернуть корзину в Dock mac os? Я случайно удалил ее из Dock, нажав на пункт меню: Удалить из Dock.

    Ответить
  5. softmaker
    softmaker says:

    Здравствуйте, Nik! Измените доступ к этому файлу и перезагрузите сервер Apache.

    Ответить
  6. Александр
    Александр says:

    Доброй ночи. Помогите, очень прошу. Установил XAMPP на Mac OS в браузере работает, НО на самом компьютере нет папки XAMPP. Что с этим делать. 30 раз переустанавливал не помогает.

    Ответить

Ответить

Want to join the discussion?
Feel free to contribute!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *