Настройки веб-сервера XAMPP

Автор: | Кат.: Веб-мастерам | 25.06.2011

 

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

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

Первым делом нам надо создать папки, где мы и будем хранить файлы будущего сайта. Для этого заходим в диск D:/ и создаем в нем папку, назовем ее: work, внутри этой директории создаем еще три папки под названием, например: home, home1, home2, в каждой папке создаем директорию (папку) www. Думаю вы уловили мысль, где будут находиться файлы сайта — это последняя папка www.

Теперь необходимо настроить сервер Apache. Для начала отключаем его. После отключения сервера, проследуем по пути C:xamppapacheconf, находим файл под названием httpd.conf — это главный конфигурационный файл веб — сервера Apache, его мы и будем настраивать.


 ServerRoot, это поле должно выглядить так: ServerRoot "C:/xampp/apache"
 ServerAdmin, это поле должно выглядить так: ServerAdmin admin@localhost
 ServerName, это поле должно выглядить так: ServerName localhost:80
DocumentRoot, это поле должно выглядить так: DocumentRoot "D:/work/"

Теперь нам потребуется найти директиву

<Directory />

и изменить ее таким образом:


<Directory />
Options FollowSymLinks Includes Indexes
AllowOverride None
</Directory>

Теперь откроем доступ к каталогу

DocumentRoot

изменив директиву:

<Directory "C:xampphtdocs"> заменяем на <Directory "D:/work/">

После этих не хитрых изменений опускаемся в самый низ файла httpd.conf. Нам необходимо указать нашему серверу адреса локальных хостов, логов сервера. Для этого пишем следующий код:


NameVirtualHost 127.0.0.1:80

<VirtualHost 127.0.0.1:80>
 ServerName localhost
 DocumentRoot "C:/xampp/htdocs"
</VirtualHost>
#
# home
#
<VirtualHost 127.0.0.1:80>
 ServerAdmin admin@localhost
 ServerName home
 DocumentRoot "D:/work/home/www"
ServerAlias home.ru
 ErrorLog D:/work/home/error.log
 CustomLog D:/work/home/access.log common
</VirtualHost>
#
# home1
#
<VirtualHost 127.0.0.1:80>
 ServerAdmin admin@localhost
 ServerName home1
 DocumentRoot "D:/work/home1/www"
ServerAlias home1.ru
 ErrorLog D:/work/home1/error.log
 CustomLog D:/work/home1/access.log common
</VirtualHost>
#
# home2
#
<VirtualHost 127.0.0.1:80>
ServerAdmin admin@localhost
 ServerName home2
 DocumentRoot "D:/work/home2/www"
 ServerAlias home2.ru
 ErrorLog D:/work/home2/error.log
 CustomLog D:/work/home2/access.log common
</VirtualHost>

Нашему веб — серверу теперь известно, по каким адресам находятся хосты. Для того, чтобы Apache помимо html-файлов обрабатывал и php-файлы, в строку text/html в файле mime.types (C:xamppapacheconfmime.types) следует добавить расширение для файлов, содержащих php-скрипты. Строка должна выглядеть следующим образом: text/html html htm shtml shtm php phtml. На этом конфигурация Apache закончена.

Далее нам потребуется указать операционной системе, что наш сервер будет работать локально и хождений в Интернет с его стороны не будет. Для этого запускаем Блокнот Windows от имени Администратора (сделать это надо обязательно, иначе мы не сможем сохранить изменения) и идем по следующему пути:
C:WindowsSystem32driversetc. В директории etc находим файл hosts, открываем его и вносим в конце его изменения (перед вами файл hosts от ОС Windows7):


# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

127.0.0.1 localhost
127.0.0.1 home.ru
127.0.0.1 home1.ru
127.0.0.1 home2.ru

После внесения изменений в конфигурацию, необходимо перезапустить Apache из панели управления XAMPP (ярлык на рабочем столе или в трее). Если этого не сделать, то изменения не вступят в силу, не забывайте! Теперь настал момент, проверки работоспособности нашего сервера. Для этого заходим в папку www по адресу: D:workhomewww. Создаем текстовый документ, с помощью Блокнота Windows. Внутри этого документа записываем следующий код:

<php echo "<h1>Проверка работы локального сервера XAMPP</h1>"; ?>

Сохраняете файл с расширением .php. В Блокноте Windows, войдите в меню «ФАЙЛ» — «СОХРАНИТЬ КАК…» — тип файла: «ВСЕ ФАЙЛЫ (*.*)» и сохраняем под названием index, конечный вид файла должен быть index.php

Запускаем браузер, в адресной строке набираем home.ru/

В окне браузера вы увидите надпись Проверка работы локального сервера XAMPP

Если вы увидели эту надпись, то значит все сделали правильно и ваш веб-сервер работает. Для полного счастья нам осталось прикрутить к XAMPP «Заглушку mail«. Как мы говорили раньше, XAMPP, очень функциональный продукт. В нем есть свой почтовый сервер, но настраивать его долго. Проще и значительно удобнее замкнуть отправку почты на локальном компьютере. Такая вещь, просто необходима при отладке скриптов, например, формы обратной связи. Что для этого нам потребуется? Просто немного терпения.

Заходим в директорию home по адресу D:workhome и создаем папку с названием mail. Запускаем Блокнот Windows и записываем в него следующий код:


<?php

define('DIR','D:/work/home/mail/'); //путь к вашей папке mail

$stream = '';
$fp = fopen('php://stdin','r');
while($t=fread($fp,2048))
{
if( $t===chr(0) )
break;
$stream .= $t;
}
fclose($fp);

$fp = fopen(mkname(),'w');
fwrite($fp,iconv("UTF-8","CP1251",$stream));
fclose($fp);

function mkname($i=0)
{
$fn = DIR.date('Y-m-d_H-i-s_').$i.'.eml';
if ( file_exists($fn) )
return mkname(++$i);
else return $fn;
}
?>

После чего сохраняем созданный нами файл под названием sendmail.php и отправляем его в директорию XAMPP по адресу C:xamppsendmail. Осталось нам подправить конфигурационный файл интерпретатора скриптов php, он называется php.ini и находится по адресу C:xamppphp. Находим в этом файле (приблизительно строка 700) модуль mail function, ниже (стр.709) ищем строчку sendmail_path = «C:xamppsendmailsendmail.exe -t» она закомментирована, т.е. вначале строки стоит точка с запятой «;«, убираем ее. Изменяем строку и делаем ее такого вида sendmail_path = C:xamppphpphp.exe c:xamppsendmailsendmail.php, сохраняем изменения, перезагружаем сервер. «Заглушка mail» готова.

Давайте проверим работу нашей «заглушки». Скопируйте в файл, приведенный ниже код. Это код простейшей формы отправки связи. Сохраните его в D:workhomewww под названием, например, form_mail.php (в кодировке utf-8). Запустите браузер и в адресной строке наберите home.ru/form_mail.php, перед вами появится форма, напишите в ней сообщение для себя и отправьте. После этого вы можете зайти в папку mail (D:workhomemail) и прочитать письмо. Открывать эти письма можно любой программой типа «Блокнот», например, распространяемой вместе с Windows программой, WordPad.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Форма обратной связи</title>
  <style type="text/css" media="all">
  .table {background-color:#eaebef;border-collapse:collapse;width:450px;border:1px solid silver;font:12px Verdana;}
  .header {border-bottom:1px solid silver;text-align:center;color:#27328F;}
  i{color:red;}
  .left_f {float: left;margin-left: 20px;padding:5px;}
  </style>
  </head>
  

<?php function show_form($s="") {if ($s) echo "<b>Ошибка:</b> $s";?>
<body>
<table align="center"  class="table">
<tr><td valign="top">
<div class="header"><h3>ФОРМА ОБРАТНОЙ СВЯЗИ</h3></div>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<div class="left_f"><strong>Ваше имя: <i>*</i></strong>
<input type="text" name="name" size="30" /></div>

<div class="left_f"><strong>Ваш email:<i>*</i></strong>
<input type="text" name="email" size="30" /></div>
  
<div class="left_f"><strong>Ваш сайт:</strong> &nbsp;&nbsp;&nbsp; 
<input type="text" name="domain" size="30" /></div>
  <div style="margin-left: 20px;padding-top: 110px;"><strong>Ваше сообщение: <i>*</i></strong></div>
<div style="margin: 5px; text-align: center;"><textarea cols="50" rows="5" name="message"></textarea>
    <input type="hidden" name="a" value="1" /></div>
        <div align="center"><input type="submit" value="Отправить вопрос" /></div>
<div align="center" style="font:11px Verdana;">Поля, отмеченные звездочкой (<i>*</i>) должны быть заполнены.</div>
</form></td></tr></table>
</body>
</html>
<?php
exit();};
// если не было добавления сообщения, выводим форму
if (!$_POST['a']) show_form();
// проверяем данные формы
if (!$_POST['name']) show_form("Укажите Ваше имя!");
if (!$_POST['email']) show_form("Укажите Ваш email!");
if (!$_POST['message']) show_form("Вы не заполнили текст сообщения!");
// описываем переменные и rfc заголовки письма
// обратный адрес будет указанным адресом отправителя сообщения
$from = $_POST['email']; 
$recipients = "mysite@localhost.ru"; // Ваш email
$subject="Тема письма";
$body=$_POST['message'];
$headers = "content-type: text/plain; charset='utf-8'"; // кодировка сообщения
if(strpos($_SERVER['SERVER_SOFTWARE'], '(Win32)')===FALSE)
{
    // отправляем письмо
    $mail = popen("/usr/sbin/sendmail -i -f$from -- $recipients", 'w');
    $text_headers = "from: $fromnsubject: $subject".$headers;
    fputs($mail, $text_headers);
    fputs($mail, "n");
    fputs($mail, $body);
    // проверяем на ошибку
    $result = pclose($mail) >> 8 & 0xff;
}
else $result=(mail($recipients, $subject, $body, "from: ".$from."rn".$headers) ? FALSE : TRUE);
if ($result) echo "Сообщение не было отправлено!";
else echo "Спасибо, Ваше сообщение отправлено. Перейдите в папку "mail" и прочитайте письмо!"; ?>

В завершении хотелось бы напомнить, не забывайте делать резервные копии сайта и базы данных. Тогда вы будите полностью застрахованы от потери информации, избавите себя от лишней работы и нервов.

5 комментариев к записи “Настройки веб-сервера XAMPP”

  • Отвратительный урок,ничего не работает! Неужели нормально пути к файлам указать нельзя было хотя-бы?!?

  • Вот!
    Parse error: syntax error, unexpected ‘mail’ (T_STRING), expecting ‘,’ or ‘;’ in C:\xampp\htdocs\test\form_mail.php on line 66

    • Все дело в кавычках, вам об этом и написали в ошибке. По поводу урока, все что было написано выше, полностью опробованная и рабочая конфигурация. Пути прописывает каждый для себя сам, на примере путей показанных в статье. В статье рассказывалось, как хосты расположить на диске D, если вы устанавливали на диск С, то и пути прописывать нужно иначе. И еще, вы обратите внимание на год написания статьи, на мой взгляд вы не ищите легких путей. Время идет и есть более простые и если быть откровенным верные решения, как использования сервера OpenServer. Поставил, и пользуешься. Но это при условии, что вам не нужен лишний геморрой. Вы же выбрали сложный и как я понимаю вообще не понятный для вас путь настройки и установки веб-сервера. Отсюда вывод, дело не в статье, а в кривых руках и отсутствии даже минимального опыта.

  • Спасибо за урок. Реальная польза, уникальная инфа — перелопатил кучу, только тут всё доходчиво и со смыслом 🙂

  • Очень полезный урок! Спасибо автору!