Статьи Установка и настройка сервера XAMPP на Windows

Discussion in 'Статьи' started by foozzi, 20 Feb 2011.

  1. foozzi

    foozzi Member

    Joined:
    13 Apr 2010
    Messages:
    195
    Likes Received:
    13
    Reputations:
    5
    Установка и настройка сервера XAMPP на Windows

    Для начала рассмотрим что из себя представляет веб-сервер XAMPP и сравним версии для Windows.

    Установка веб-сервера XAMPP

    1. Начинаем установку XAMPP. Откроется окно, в котором нам предлагается выбрать путь для размещения сервера. По-умолчанию это диск C:\. Я не буду изменять путь и установлю сервер на предложенный диск. Нажимаем кнопку Install и ждем пока дистрибутив полностью распакуется.


    [​IMG]

    [​IMG]


    2. После распаковки дистрибутива запустится командная строка, далее основная установка будет происходить через нее. XAMPP предлагает создать ярлыки на рабочем столе и в меню пуск, нажимаем enter.

    [​IMG]

    3. Теперь у нас спрашивают, правильно ли выбран каталог установки XAMPP, по-умолчанию сервер будет располагаться по следующему адресу C:\xampp, нажимаем enter.

    [​IMG]

    4. Хотим ли мы установить портативную версию? Нажимаем enter, т.к. XAMPP устанавливается на жесткий диск.

    [​IMG]

    5. Окончательная установка XAMPP. Нажимаем enter для продолжения.

    [​IMG]

    6. Автоматический выбор часового пояса. Нажимаем enter.

    [​IMG]

    7. Запустим панель управления XAMPP (XAMPP Control Panel), выбираем 1 и жмем enter.

    8. Открылась панель управления сервером. Закрываем командную строку.

    [​IMG]

    Подсказки по панели управления:
    Checkboxes (Svc) — устанавливает модуль в качестве службы Windows (если вы хотите запускать какой либо модуль (Apache, MySQL и т.д.) как службу, то отмечаем соответствующие флажки)
    Admin — запускует администрирование модулем (Admin напротив модуля Apache — откроет окно приветствия XAMPP, выбираем язык. И попадаем в веб-интерфейс XAMPP, здесь можно проверить демонстрационные примеры в разделе Demos, узнать информацию о модулях и т.д. Admin напротив модуля MySQL — запустит phpMyAdmin)
    Shell — запуск командной строки для работы с сервером;
    Setup — открывает командную строку для настройки XAMPP;
    Port-Check — проверка портов;
    Explore — открывает папку в которую установлен XAMPP, в нашем случае C:\xampp;
    SCM — открывает окно управления службами Windows;
    Refresh — обновление состояния модулей;

    Запускается XAMPP с помощью ярлыка на рабочем столе или в меню пуск, если же вы при установке отказались от создания ярлыков, вы можете запустить XAMPP с помощью файла xampp-control.exe в директории C:\xampp, там же вы можете увидеть все остальные ярлыки, которыми можно запустить отдельные модули, деинсталировать XAMPP и т.п.

    Иконка XAMPP удобно сидит в трее и при щелчке левой кнопки мыши открывает панель управления (XAMPP Control Panel).

    9. Запускаем модули Apache и MySQL (кнопки Start), набираем в браузере localhost (или жмем Admin напротив модуля Apache):


    [​IMG]

    10. При первом запуске откроется страница приветствия, выбираем один из предложенных языков:

    [​IMG]

    11. Попадаем в веб-интерфейс XAMPP, здесь вы можете ознакомиться документацией, примерами в разделе Demos и т.д.:

    [​IMG]

    В разделе Security находятся настройки безопасности:

    [​IMG]

    Перейдя по указанной ссылке http://localhost/security/xamppsecurity.php, можно задать пароль для администратора баз данных MySQL и можно установить пароль на директорию XAMPP для ограничения доступа из локальной сети:

    [​IMG]

    Итак, мы установили и ознакомились с веб-сервером XAMPP, теперь настало время создать тестовую страницу и разместить наш проект.

    Для того чтобы создать новый сайт на локальном веб-сервере, необходимо создать папку с названием сайта в папке C:\xampp\htdocs\, например blog и создадим там тестовый php-скрипт с кодом:
    Code:
    <?php echo 'Hello world!'; ?>
    Сохраним как index.php. Структура папок:

    Переходим в браузере по адресу http://localhost/blog/ и, если все сделано правильно, видим приветствие «Hello world!», тем самым мы протестировали работоспособность сервера:

    [​IMG]

    Настройка виртуальных хостов

    Если мы хотим хранить свои проекты в другой папке (например, Мои документы) или локальная версия сайта должна работать при переходе по адресу www.blog.ru вам необходимо разобраться с настройкой виртуальных хостов, об этом и пойдет речь в данном подразделе.

    Предположим наш сайт должен храниться на диске C в папке my_projects (C:\my_projects), в браузере он должен открываться по адресу www.blog.local или blog.local.

    Создадим в папке my_projects папку с названием blog.local, в ней создадим папки www и logs. В папку www положим наш тестовый скрипт index.php.

    Вот так это будет выглядеть в файловой системе Windows:

    [​IMG]

    Теперь перейдем к настройке виртуальных хостов. Открываем в текстовом редакторе файл httpd-vhosts.conf, расположенный по следующему адресу: C:\xampp\apache\conf\extra.
     
  2. foozzi

    foozzi Member

    Joined:
    13 Apr 2010
    Messages:
    195
    Likes Received:
    13
    Reputations:
    5
    Продолжение



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

    Все что находится в файле httpd-vhosts.conf мы трогать не будем, а просто добавим наши хосты (просто скопируйте и вставьте в файл приведенный ниже код):
    Code:
    NameVirtualHost *:80
    
    <VirtualHost *:80>
        DocumentRoot "C:\xampp\htdocs"
        ServerName localhost
    </VirtualHost>
    <VirtualHost *:80>
        ServerAdmin [email protected]
        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
      <Directory "C:\my_projects\blog.local\www">
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
    </VirtualHost>
    Верхний виртуальный хост, выделен другим цветом, позволит нам по прежнему заходить на 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:

    Code:
    NameVirtualHost *:80
    
    <VirtualHost *:80>
        DocumentRoot "C:\xampp\htdocs"
        ServerName localhost
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerAdmin [email protected]
        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
      <Directory "C:\my_projects\blog.local\www">
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
    </VirtualHost>
    <VirtualHost *:80>
        ServerAdmin [email protected]
        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
      <Directory "C:\my_projects\site.local\www">
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
    </VirtualHost>
    Также не забываем добавить следующие строчки в файл hosts в папке Windows:
    127.0.0.1 site.local
    127.0.0.1 www.site.local

    Перезапускаем Apache и новый хост готов для работы.

    По аналогии можно добавить сколько угодно виртуальных хостов.

    Немного справочной информации относительно того, что мы добавляем в файл httpd-vhosts.conf:
    ServerAdmin [email protected] — 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 (менее информативно);

    <Directory "C:\my_projects\blog.local\www">
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

    Приведенная выше конструкция разрешает отображение всех файлов в указанной директории и назначает максимально возможные привилегии (без 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 с кодом:
    Code:
    <?php 
    
    define('DIR','c:/xampp/tmp/sendmail/'); 
    
    $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,$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; 
    } 
    ?>
    В моем случае предполагается получение писем в кодировке UTF-8, если вы хотите получать письма в в кодировке CP1251, то замените строчку:
    2. В файле php.ini (C:\xampp\php) заменяем строчку:
    Code:
    sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" 
    на строчку:
    Code:
    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
     
  3. DesCent

    DesCent Banned

    Joined:
    9 Jul 2010
    Messages:
    276
    Likes Received:
    51
    Reputations:
    16
    "Авторские статьи".
    Сам копипастил?
     
  4. foozzi

    foozzi Member

    Joined:
    13 Apr 2010
    Messages:
    195
    Likes Received:
    13
    Reputations:
    5
    сцыль дава откуда же я копипастил
     
  5. Dyxxx

    Dyxxx Elder - Старейшина

    Joined:
    16 Feb 2009
    Messages:
    107
    Likes Received:
    155
    Reputations:
    24
    о май гад >,<
    страшно представить описание установки простой связки апача с мускулом :D
    ты правда думаешь сложно найти источник? ты даже картинки не перезалил
    http://www.bormotuhi.net/showthread.php?t=9436 :(
     
    #5 Dyxxx, 20 Feb 2011
    Last edited: 20 Feb 2011
  6. kappa

    kappa New Member

    Joined:
    19 Jul 2010
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Я бы вообще посоветовал USB webserver использовать для Windows
     
  7. Lijzer

    Lijzer Member

    Joined:
    5 Nov 2010
    Messages:
    92
    Likes Received:
    8
    Reputations:
    4
    Ну как бы соглашусь с мембером выше на пару постов , что установка пхп+апач(нгинкс)+мускул+зенд = взорвет мозг читателю ... ))))