Продолжение
Примечание: рекомендую для большего удобства создать сразу ярлык для этого файла, например в папке C:\xampp, чтобы потом можно было быстро добавлять новые виртуальные хосты.
Все что находится в файле httpd-vhosts.conf мы трогать не будем, а просто добавим наши хосты (просто скопируйте и вставьте в файл приведенный ниже код):
Код:
NameVirtualHost *:80
DocumentRoot "C:\xampp\htdocs"
ServerName localhost
ServerAdmin webmaster@blog.local
DocumentRoot "C:\my_projects\blog.local\www"
ServerName blog.local
ServerAlias www.blog.local
ErrorLog "C:\my_projects\blog.local\logs\error.log"
CustomLog "C:\my_projects\blog.local\logs\access.log" combined
AllowOverride All
Order allow,deny
Allow from all
Верхний виртуальный хост, выделен другим цветом, позволит нам по прежнему заходить на localhost (локальный сайт XAMPP).
Следующим шагом нам потребуется добавить две строчки в файл hosts, расположенный по следующему адресу C:\Windows\System32\drivers\etc\hosts (также рекомендую создать для него ярлык в папке сервера):
127.0.0.1 blog.local
127.0.0.1 www.blog.local
Заходим в панель управления XAMPP (XAMPP Control Panel) и перезапускаем Apache. Теперь проверим наш сайт, который должен работать по адресу www.blog.local. Если все сделано верно, то мы увидим приветствие «Hello world!».
Так как скорее всего понадобится создание нескольких сайтов на локальном сервере, приведу пример добавления хостов в файл httpd-vhosts.conf. Предположим новый сайт будет называться site.local:
Код:
NameVirtualHost *:80
DocumentRoot "C:\xampp\htdocs"
ServerName localhost
ServerAdmin webmaster@blog.local
DocumentRoot "C:\my_projects\blog.local\www"
ServerName blog.local
ServerAlias www.blog.local
ErrorLog "C:\my_projects\blog.local\logs\error.log"
CustomLog "C:\my_projects\blog.local\logs\access.log" combined
AllowOverride All
Order allow,deny
Allow from all
ServerAdmin webmaster@site.local
DocumentRoot "C:\my_projects\site.local\www"
ServerName site.local
ServerAlias www.site.local
ErrorLog "C:\my_projects\site.local\logs\error.log"
CustomLog "C:\my_projects\site.local\logs\access.log" combined
AllowOverride All
Order allow,deny
Allow from all
Также не забываем добавить следующие строчки в файл hosts в папке Windows:
127.0.0.1 site.local
127.0.0.1 www.site.local
Перезапускаем Apache и новый хост готов для работы.
По аналогии можно добавить сколько угодно виртуальных хостов.
Немного справочной информации относительно того, что мы добавляем в файл httpd-vhosts.conf:
ServerAdmin webmaster@blog.local— e-mail-адрес администратора веб-сервера;
DocumentRoot "C:\my_projects\blog.local\www" — путь к папке с сайтом;
ServerName blog.local — название сайта, которое набирается в браузере, может иметь любое значение, например blog или blog.ru;
ServerAlias www.blog.local — адрес по которому сайт также должен открываться;
ErrorLog "C:\my_projects\blog.local\logs\error.log" — журнал ошибок;
CustomLog "C:\my_projects\blog.local\logs\access.log" combined — журнал доступа к сайту, кто и когда заходил на сайт и с какого браузера, combined — означает, что отчет будет более информативным, можно заменить значением common (менее информативно);
AllowOverride All
Order allow,deny
Allow from all
Приведенная выше конструкция разрешает отображение всех файлов в указанной директории и назначает максимально возможные привилегии (без AllowOverride All не будут работать ЧПУ).
Если делали все внимательно, то создание новых сайтов на виртуальном сервере не составит для вас труда, ошибки могут быть из-за синтаксиса, к примеру если вы допустите ошибку в httpd-vhosts.conf, Apache может просто не запустится. Для анализа ошибок воспользйтесь логами Apache, файл error.txt расположенный в по адресу C:\xampp\apache\logs.
«Отладочная заглушка» для sendmail
Если вы пользовались Denwer-ом, то помните, что все письма с локального сайта отправлялись в папку sendmail, это достаточно удобно, но в XAMPP такой функции не предусмотрено, в XAMPP есть собственный почтовый сервер, но он потребует немало времени, чтобы с ним разобраться.
С помощью описанной ниже инструкции, вы сможете создать такую же «заглушку» как и в Denwer.
1. В папке sendmail (C:\xampp\sendmail) создадим файл sendmail.php с кодом:
В моем случае предполагается получение писем в кодировке UTF-8, если вы хотите получать письма в в кодировке CP1251, то замените строчку:
Сообщение от
None
fwrite($fp,$stream);
2.В файле php.ini (C:\xampp\php) заменяем строчку:
Код:
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
на строчку:
Код:
sendmail_path = C:xamppphpphp.exe c:xamppsendmailsendmail.php
Строка должна быть раскомментирована (убрать символ точки с запятой «;» в начале строки).
3. Создадим папку sendmail в папке tmp (C:\xampp\tmp\sendmail).
4. Перезапускаем сервер Apache и теперь все отправленные письма будут в папке C:\xampp\tmp\sendmail
Дополнительная информация по XAMPP.
Расположение конфигурационных файлов:
Apache Grundkonfiguration: .\xampp\apache\conf\
httpd.conf
Apache SSL: .\xampp\apache\conf\
ssl.conf
Apache Perl (nur mit Addon): .\xampp\apache\conf\perl.conf
Apache Tomcat (nur mit Addon): .\xampp\apache\conf\java.conf
Apache Python (nur mit Addon): .\xampp\apache\conf\
python.conf
PHP: .\xampp\apache\conf\
php.ini(der aktuell benutzten Version)
MySQL: .\xampp\mysql\bin\
my.cnf
phpMyAdmin: .\xampp\phpMyAdmin\
config.inc.php
FileZilla FTP: .\xampp\FileZillaFTP\
FileZilla Server.xml
Mercury Mail Grundkonfiguration: .\xampp\MercuryMail\
MERCURY.INI
Sendmail: .\xampp\sendmail\
sendmail.ini