Как установить локальный сервер apache. Apache - установка и настройка

Apache - наиболее используемый интернет-сервер на линукс системах. Интернет-сервера используются для выдачи интернет-страниц по запросу клиентских компьютеров. Клиенты обычно запрашивают и просматривают интернет-страницы используя приложения интернет-браузеров, таких как Firefox, Opera, Chromium или Mozilla.

Пользователи вводят единообразный указатель ресурсов (URL) для определения интернет-сервера по его полностью квалифицированному доменному имени (FQDN) и пути до требуемого ресурса. Например, чтобы увидеть домашнюю станицу интернет-сайта Ubuntu, пользователь должен ввести только FQDN:

Www.ubuntu.com

SymLinksIfOwnerMatch - Следует по символическим ссылкам если целевой файл или каталог имеет того же владельца, что и ссылка.

Настройки httpd

Этот раздел раскрывает некоторые основные конфигурационные настройки сервиса httpd .

LockFile - инструкция LockFile устанавливает путь к блокирующему файлу (lockfile) когда сервер скомпилирован с опцией USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT. Он должен сохраняться на локальном диске. Стоит оставить значение по умолчанию если только каталог журналов не расположен на NFS ресурсе. В противном случае исходное значение стоить изменить на каталог локального диска с правами на чтение только для root.

PidFile - инструкция PidFile устанавливает файл, в который сервер записывает ID своего процесса (pid). Этот файл должен быть доступен на чтение только root. В большинстве случаев этот параметр стоит оставить без изменений.

User - инструкция User устанавливает userid (ID пользователя), используемый сервером для ответа на запросы. Эта настройка определяет права доступа сервера. Любые файлы, недоступные этому пользователю, также будут недоступны для посетителей вашего сайта. По умолчанию используется пользователь «www-data».

Group - инструкция Group аналогична директиве User. Group устанавливает группу под которой сервер будет отвечать на запросы. Значение по умолчанию также «www-data».

Модули Apache2

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

Ubuntu компилирует Apache2 с возможностью динамической загрузки модулей. Конфигурационные директивы могут быть включены по условию присутствия соответствующего модуля в блоке .

Вы можете установить дополнительные модули Apache2 и использовать их с вашим интернет сервером. Например, запустите следующую команду в терминале для установки модуля авторизации MySQL:

Sudo apt-get install libapache2-mod-auth-mysql

Ищите дополнительные модули в каталоге /etc/apache2/mods-available.

Используйте утилиту a2enmod для включения модуля:

Sudo a2enmod auth_mysql sudo service apache2 restart

Аналогично a2dismod выключит модуль:

Sudo a2dismod auth_mysql sudo service apache2 restart

Настройка HTTPS

Модуль mod_ssl добавляет важную возможность для сервера Apache2 - возможность шифрованных соединений. Таким образом, когда ваш браузер соединяется с использованием SSL , используется префикс https:// в начале адреса URL в строке навигации.

Модуль mod_ssl доступен в пакете apache2-common. Выполните следующую команду в терминале для включения этого модуля:

Sudo a2enmod ssl

Настройки по умолчанию для HTTPS находятся в файле /etc/apache2/sites-available/default-ssl. Чтобы Apache2 предоставлял HTTPS, также требуются файлы ключа и сертификата. Изначальная настройка HTTPS использует сертификат и ключ, созданные пакетом ssl-cert. Они подходят для тестирования, но должны быть заменены на сертификат, соответствующий вашему сайту или серверу. Для информации по созданию ключей и получению сертификатов смотрите раздел Сертификаты .

Для настройки Apache2 для HTTPS введите следующее:

Sudo a2ensite default-ssl

Каталоги /etc/ssl/certs и /etc/ssl/private используются по умолчанию. Если вы установили сертификат и ключ в другие каталоги, убедитесь что изменили соответственно опции SSLCertificateFile и SSLCertificateKeyFile.

С Apache2, теперь настроенным на HTTPS, перезапустим сервис для разрешения новых настроек:

Sudo service apache2 restart

В зависимости от того как вы выпускали свой сертификат, вам может потребоваться ввести кодовую фразу при старте Apache2.

Вы можете получить доступ к страницам защищенного сервера набрав https://your_hostname/url/ в адресной строке вашего браузера.

Права разделения записи

Чтобы более одного пользователя имели право записи в один и тот же каталог, необходимо дать право записи группе, которая их объединяет. Следующий пример предоставляет права на запись в каталог /var/www для группы «webmasters».

Sudo chgrp -R webmasters /var/www sudo find /var/www -type d -exec chmod g=rwxs "{}" \; sudo find /var/www -type f -exec chmod g=rws "{}" \;

Если доступ должен быть предоставлен более чем одной группе на каталог, используйте Списки управляемого доступа (ACL).

В этой статья я расскажу о том как настроить локальную среду разработки своими руками. Конечно, можно пользоваться уже готовыми решениями, например и иже с ним. Но, посмотрите на комментарии к и . То Денвер не устанавливается, то Apache не запускается, то не известно куда Денвер попрятал базы данных.

К тому же, на сервере хостинг-провайдера стоит не пакет разработки, а родные дистрибутивы Apache, MySQL и PHP. Буквально на днях я столкнулся с ситуацией, когда создаваемый сайт нормально работал в установленной и сконфигурированной в ручную среде разработки, а под Денвером не работал вообще.

В уже готовой среде разработки очень часто не хватает гибкости настроек. Конфигурационные файлы попрятаны в одному Денверу известные места.

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

Я подробно опишу процесс установки и настройки сервера Apache на локальный компьютер. Это позволит избавиться от магического трепета перед принципами работы сайта с сервера хостинг-провадера.

Кроме этого, установим и настроим PHP . В случае ручной загрузки дистрибутива с сайта разработчика я могу быть уверен в том, что качаю полную версию пакета, ту, которая нужна именно мне. И ситуация с необходимостью доустановки модулей, откинутых автором дистрибутива готовой среды разработки, возникнуть не может. Автором среды разработки отныне являюсь я сам.

Установка и настройка MySQL . Точно такая же ситуация. Автор - я сам.

Пару слов для новичков. Зачем вообще нужна среда локальной разработки. Если вы разрабатываете сайт, который будет состоять из нескольких статических HTML-страниц, то среда разработки - это всего-на-всего удобство при просмотре сайта в браузере в процессе отладки. Удобно заходить на разрабатываемый сайт по доменному имени. Вот кажется и все преимущества.

В случае разработки динамического сайта (применение php-скриптов и MySQL-баз данных), а так же при работе с движками, локальная среда разработки - это необходимость. Т.к., в этом случае, вам нужен инструмент, обрабатывающий php-скрипты и SQL-запросы.

Ну что же, поехали!

Установка Apache

Я обещал избавить вас от магического трепета перед принципами загрузки сайта с сервера хостинг-провайдера в вашем браузере. Сейчас я это сделаю.

Сервер - это ничто иное, как мощный компьютер, на жестком диске которого хранятся файлы вашего сайта. Обычно такой компьютер работает под управлением Unix-подобных систем. На этом компьютере запущена программа, которая называется Apache . При обращении к 80-му порту сервера, программа Apache выдаст обратившемуся компьютеру HTML-код и графические файлы, хранящиеся на жестком диске. Браузер компьютера пользователя примет полученные данные и оформит их в привычную нам страницу сайта.

На жестком диске сервера может находится сразу несколько сайтов. Все они распределены по папкам с уникальными именами (в этом случае сайты называются виртуальными хостами ). Apache настроен таким образом, что при обращении к 80-му порту с определенным URL-адресом сайта, точно знает какие данные и из какой папки нужно отправить обратившемуся компьютеру.

Вот и вся магия. Когда я только начал разбираться с интернет-технологиями, подобный ответ на мой вопрос «да как же все-таки работают сайты», который я вычитал в одной из книг, расставил в моей голове все по своим местам, чему я был очень рад. Надеюсь кто-то из уважаемых читателей был обрадован сейчас не меньше чем я в свое время.

Теперь я расскажу, как установить и настроить Apache на локальном компьютере.

После установки и настройки Apache, в браузер можно будет ввести придуманное вами доменное имя, которое будет поставлено в соответствие разрабатываемому на локальном компьютере сайту, и локальный сервер выдаст браузеру запрашиваемый HTML.

Шаг 1. Скачиваем Apache.

На следующем экране обязательно установите галочку в пункте Include Bin Directory in Windows PATH :

Если вы этого не сделаете, то PHP не сможет найти нужный ему файл и будет ругаться.

Нажимаем Next. В следующем окне нам нужно указать пароль администратора баз данных. Укажите что-то легкозапоминающееся. Потом, подключаясь к базам данных, вам понадобится вводить этот пароль:

На этом процесс задания директив для настройки завершен и можно приступать к их применению:

Теперь нашу локальную среду разработки можно считать установленной. Остается ее настроить.

Настройка Apache и настройка PHP

Во-первых где-нибудь на жестком диске нужно создать папку, в которой будут храниться все проекты.

У меня это папка www в корне диска «С ».

Шаг 1. Разрешение доступа Apache к папе www на жестком диске.

Теперь в настройках Apache мне нужно указать путь к этой папке и разрешить доступ.

Для этого нужно открыть в любом текстовом редакторе основной файл конфигурации Apache. Это файл .

В файле ищем блок инструкций:

AllowOverride None Options None Order allow,deny Allow from all

Ниже этого блока вставляем следующие инструкции:

AllowOverride All # Options None Options Indexes FollowSymLinks Order allow,deny Allow from all

Тем самым мы разрешили доступ Apache к папке www в корне жесткого диска.

Шаг 2. Создаем место для хранения файлов сайта.

В папке www необходимо создать папку с именем нашего сайта (например moysite ). В папке moysite создаем еще две папки: www - для хранения файлов сайта и logs - сюда Apache будет автоматически записывать ошибки, связанные с работой сервера и информацию о подключениях к сайту.

Так как обычно работа ведется с несколькими сайтами (т.е. в папке www корня жесткого диска, может находится несколько проектов: moysite , moysite1 , noviysite и т.д.) , доступными по разным локальным URL, то нужно настроить работу Apache с виртуальными хостами .

Для этого в файле конфигурации C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf необходимо подключить файл дополнительной конфигурации виртуальных хостов .

Ищем в файле httpd.conf строку #Include conf/extra/httpd-vhosts.conf . Процесс подключения файла дополнительной конфигурации виртуальных хостов заключается в удалении символа решетка (#) перед этой строкой.

#Include conf/extra/httpd-vhosts.conf

Include conf/extra/httpd-vhosts.conf

Дело в том, что в настройках Apache символом решетка (#) обозначается закомментированная строка, которая не участвует в конфигурации сервера.

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

В конце файла необходимо добавить следующий блок:

ServerName moysite.loc DocumentRoot "C:/www/moysite/www" ErrorLog "C:/www/moysite/logs/error.log" CustomLog "C:/www/moysite/logs/access.log" common

Пункт ServerName задает URL, по которому будет осуществляться доступ из браузера локального компьютера к разрабатываемому сайту, файлы которого находятся в папке C:/www/moysite/www . Файл C:/www/moysite/logs/error.log будет содержать информацию об ошибках в работе сайта, а файл C:/www/moysite/logs/access.log - информацию о подключениях.

Шаг 3. Перенаправление запросов на локальный сервер.

Последний шаг - это перенаправление запросов на локальный сервер. Нам нужно сообщить Windows о том, что при запросе в браузере URL moysite.loc его должен обработать наш локальный Apache. Для этого открываем файл C:\WINDOWS\system32\drivers\etc\host в любом текстовом редакторе и в конце дописываем одну строчку: 127.0.0.1 moysite.loc .

Вот и все, теперь перезапускаем Apache, кликнув левой клавишей по иконке рядом с часами и выбрав пункт Restart .

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

Наводим лоск

Если при разработке проекта вы применяете ЧПУ , то необходимо включить модуль mod_rewrite.so в файле основной конфигурации Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf .

Включение модуля осуществляется простым раскомментированием строки LoadModule rewrite_module modules/mod_rewrite.so

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so


Использование укороченных тегов. Некоторые ленивые программисты вместо полного кода ..., в начале php-скрипта, используют укороченную форму ... Для включения укороченных тегов необходимо настроить файл конфигурации PHP C:\Program Files\PHP\php.ini :

Short_open_tag = Off

Short_open_tag = On

Обращаю ваше внимание, уважаемый читатель, на тот факт, что в настройках PHP символ; предназначен для комментирования строки.

Вот и все с настройкой локальной среды разработки. Теперь, для создания нового виртуального хоста (например noviysite.loc ) нужно проделать всего четыре простых шага:

1. В папке C:\www\ создать новую папку noviysite , внутри которой создать папку www и logs .

2. В файле настройки виртуальных хостов Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf указать настройки для нового виртуального хоста noviysite.loc :

ServerName noviysite.loc DocumentRoot "C:/www/noviysite/www" ErrorLog "C:/www/noviysite/logs/error.log" CustomLog "C:/www/noviysite/logs/access.log" common

3. В файле C:\WINDOWS\system32\drivers\etc\hosts указать перенаправление для нового виртуального хоста на локальный сервер: 127.0.0.1 noviysite.loc

4. Перезапустить Apache, кликнув левой клавишей по значку рядом с часами и выбрав пункт Restart .

P. S.: Естественно в папке C:\www\noviysite\www должны лежать файлы сайта, которые и будут отображаться в браузере при вводе URL noviysite.loc/... .

В случае, если вводится только доменное имя noviysite.loc из папки C:\www\noviysite\www будет загружаться файл index.html (таким образом настроен Apache по умолчанию и именно данный файл является автоматически-запускающимся при вводе лишь доменного имени).

Поскольку, в последнее время, большое распространение получили динамические сайты, написанные на языке PHP, то стартовый файл будет носить имя не index.html , а index.php . Для того, чтобы на ряду с index.html при вводе лишь доменного имени автоматически запускался еще и index.php нужно внести небольшие изменения в файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf :

Находим блок директив DirectoryIndex index.html . После директивы DirectoryIndex index.html нужно дописать через пробел index.php , чтобы получилось вот так: DirectoryIndex index.html index.php .

Хочу заметитье, что в этом случае Apache будет сначала искать файл index.html и пытаться запустить его, а потом уже index.php .

В случае, если папка с сайтом не содержит файла index.html или index.php (а в ней находится файл с именем kakoeto_imya.html ), то набор URL noviysite.loc в браузере ничем хорошим не закончится (Apache не найдет файлов, которые захочет запустить по умолчанию). Для запуска файла из папки сайта с именем kakoeto_imya.html необходимо набрать URL noviysite.loc/kakoeto_imya.html .

Возникает законный вопрос: Каким образом администрировать базы данных MySQL, если phpMyAdmin нет?
Ответом на этот вопрос является программа HeidiSQL и .

На сладкое

После прочтения данной статьи, я надеюсь, у вас возникла ясность в вопросе «как работает сайт с сервера хостинг-провайдера», а так же «как самому установить и настроить Apache, PHP и MySQL». Теперь не грех выпить чашечку кофейка и посмотреть забавный видеоролик.

Выражаю благодарность отличному программисту Павлу Красько

за помощь в написании данной статьи.

Я посвятил проблеме установке локальной среды разработки на компьютер под управлением Windows. Если, после прочтения статьи, локальную среду запустить не удалось - очень рекомендую посмотреть видеоурок.

Ниже я написал инструкцию как на на локальном компьютере с Windows 7 — настроить сервер Apache и установить на него PHP, MySql и phpMyAdmin.

Установка Apache

Скачиваем дистрибутив с сервером Apache с сайта http://httpd.apache.org/download.cgi . Выбираем версию 2.2.22 и скачиваем установщик для windows. На домашнем компе вам вряд ли понадобится SSL, выбираем — «Win32 Binary without crypto (no mod_ssl) (MSI Installer) «.

Перед установкой отключите скайп, или в настройках скайпа отключите использование 80-го порта, так как это будет помешать установке.

Устанавливаем Apache запуская файл инсталяции. Все шаги при установке — стандартные.

Нажимаем Next.

Соглашаемся с лицензией.

Воводим данные во все три текстовых поля. Можно ввести несуществующий домен типа test.test или example.com. Эти данные нужны для создания базового конфигурационного файла. Под текстовыми полями одна из самых важных настроек - установить Apache как службу или как обычную программу. Выбираем «for All Users, on port 80, as a Service - Recommended» - установить как службу.

Выбираем Custom (выборочная установка).

Выбор компонентов и места установки. Можно оставить все значения по умолчанию.

Жмем Install.

Завершаем установку.

Установка завершена. В трее появится значок Apache, с помощью которого можно быстро остановить/запустить.

Проверяем работоспособность. Зайдите в браузере по адресу http://localhost/ ю Если все сделано правильно вы увидите надпись «It Works!». Поздравляю, первый шаг закончен успешно.

Примечание.

Рекомендую сразу включить поддержку ЧПУ ссылок, для этого раскомментируйте строку LoadModule rewrite_module modules/mod_rewrite.so в файле httpd.conf . Он находится в папке conf в месте куда у вас установился Apache.

Было так:
{codecitation}#LoadModule rewrite_module modules/mod_rewrite.so{/codecitation}

Должно стать так:
{codecitation}LoadModule rewrite_module modules/mod_rewrite.so{/codecitation}

Здесь и в дальнейшем, раскомментировать — значит убрать знак комментария — #, который находится в начале строки.

Продолжение следует.





Внимание!
Не важно, ставите вы сервер только для тестирования скриптов или как рабочую версию, вы должны знать, что сразу после установки и запуска сервера он станет доступен за пределами вашего компьютера. Даже если у вас нет белого ip к вам смогут зайти другие клиенты вашего провайдера внутри сети.
Сразу после установки сервер не имеет никаких защит, все открыто и все без паролей, в самом лучшем случае сломают ваш сервер, а в худшем могут затереть все файлы на компьютере, в том числе и сам windows.
По этой причине, после установки сервера заблокируйте доступ к серверу с помощью сетевого экрана или других подобных программ. После всех настроек можно будет открыть доступ.

В данной статье я расскажу как установить сервер apache и все необходимые компоненты под windows всех версий, в том числе и VISTA (32 и 64).
Устанавливать сервер apache на windows скорее всего вы будете на домашний компьютер, так как во всех других случаях на windows навряд ли придется ставить, поэтому я буду упоминать, что установка идет именно на домашний компьютер.
Этот вариант установки и настройки подойдет не только для тестирования скриптов, но и для запуска рабочего сервера.

Если вы решили ставить рабочий сервер дома (не для тестирования), то вам потребуется:

1. Белый IP (внешний или уникальный или выделенный). Конечно есть сервисы, которые умеют через свой ip направлять трафик на ваш динамический или даже серый IP, но для нормального сервера это не подойдет.
Белый IP приобретается у своего провайдера за дополнительные деньги.

2. ДНС сервер. Чтобы связать ваши доменные имена с вашим сервером вам потребуется ДНС сервер. В домашних условиях содержать ДНС нет никакого смысла, так как для этого есть бесплатные сервисы.
Если ваш регистратор домена не предоставляет услуги ДНС, тогда можете воспользоваться бесплатным сервисом xname.org
. Настраивать ДНС лучше всего после установки сервера.

Приступаем к установке сервера.
Для установки всего, что нужно возьмем - готовый набор всех необходимых компонентов сервера.
XAMPP очень полезная вещь. Это набор состоящий из apache , php , mysql , ftp сервера , sendmail , perl и много другого. Во все эти компоненты не внесено изменений(либо очень незначительные), так как XAMPP только установщик, это не самостоятельный сервер.
После установки получим полноценный сервер, такой же, как если бы устанавливали каждый компонент вручную.

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

Комментарии

18.02.2010 виктор
У меня тоже дома такой сервер стоит.
Купил нетбук за 10 тыщ, и тупо воткнул в него xampp, именно так как тут написано.
И стоит вот уже третий месяц, электричества практически не жрет(около 20 ват), канал интернета 5 мегабит, сайты просто летают.
И зачем надо арендовать эти выделенные сервера или VDS.......

18.02.2010 виктор
забыл добавить, пять сайтов находятся на этом ноутбуке, общая посещаеомость 3 тыщи в сутки

07.06.2010 Кирилл
А Денвер и ХАМПП - это принципиально не одно и тоже?

07.06.2010 Админ
Кирилл, принципиально почти одно и тоже.
Только в денвере внесено много изменений в сервер из-за чего сервер в денвере работает не так как надо. В нем все адаптировано под удобную работу в windows.
Несколько раз пытался тестировать крупные скрипты в денвере, не получилось полностью отладить, так как работает совсем не так как ожидается.
В XAMPP никаких изменений в сервер не внесено, он лишь помогает установить все компоненты.

06.08.2010 vlad
пасибо за информацию

02.09.2010 Виктор
Спасибо вам большое за информацию очень помогла. Взял на заметку

12.09.2010 Андрей
Спасибо большое.Ведь есть же сайты где нормально,понятно и по русски написано.

P.S. / Админ,не забудь поправить,что апач не включается если в скайпе и тим вайфере занят порт 80./

12.09.2010 админ
Андрей, да, сам однажды наступил на эти грабли. Не мог понять, почему апач не работает по 80 порту.
Если у кого во время установки xampp говорит, что не прошел тест по 80 порту, смотрите в скайпе в настройках, возможно скайп занял этот порт.
Так же могут быть глюки и после установки.
В статью эту информацию добавлю попозже.

24.10.2010 Mikan
Доброго времени суток. Люди добрые помогите с таким вопросом. Есть большая сеть, хочу сделать внутренний веб сервер, попробовал xampp получилось все работает теперь проблема другого плана: как сделать что бы клиент из сети не писал в строке браузера ип адрес сервера что зайти на сайт. А вводил нормальный человеческий адрес к примеру даже такой www.primer.primer.ru ну что то подобное.

25.10.2010 вишня
Mikan, раз ты задаешь такие вопросы, значит эта большая сеть создана не тобой?
А раз она создана не тобой, то тебе надо обратиться к админам, которые рулят этой сетью, так как прописать домен можно только у них, и тогда домен будет виден внутри сети, если конечно админы захотят.
Ну а дальше уже в настройках виртуальных хостов xampp прописываешь этот домен и все....

А если есть белый ip, то проще купи домен, 200 рублей в год стоит и будет еще лучше, деньги то небольшие.

14.12.2010 Дмитрий
У меня один вопрос есть настройки для игрового сервера например для КС1.6
просто я поставил белый ip и мне надо настроить. Вот я вкл сервер и у меня пишит локальный ip а не инетовский мне надо как то настроить чтобы показывал инетовский ip и могли заходить на него... как это сделать???

14.12.2010 Виктор
Дмитрий, это не много другая тема.
Здесь настройка веб сервера, а не игрового.
Если конечно кто-то знает, может и подскажет, но думаю там парой фраз не отделаться.

18.12.2010 Константин
у меня все работает только как сделать чтобы мой сайт работал в интернете?

21.12.2010 Алексей
XAMMP рулит)))

23.12.2010 Виктор
Скажите, а можно ли хостить свой сайт с помощью ХАММР??? сайт сделан на платформе юкоза)) хочу чтобы диск D был для моего сайта как хостинг!!

24.12.2010 админ
Виктор, если у вас есть скрипт юкоза, можете хостить сайт.

24.12.2010
В смысле скрипт????? мне нужно закачивать фильмы на свой диск Д и чтоб через мой сайт люди смотрели их!! скрипт то зачем??

28.12.2010 Александр
Установил.
Сделал всё как вы сказали.
При запуске выдает что порт занят.
Всё проверил, порт свободен,
(использовал Windows Worms Doors Cleaner для проверки и поиска... также без результатов. Пожалуйста помогите...
(скриншот: http://imagepost.ru/images/419/21552347.jpg)

28.12.2010 Виталий
Александр, а что со скайпом? Пользуетесь?
Если да, то значит он занял 80 порт. Проверьте.
В настройках скайпа отключите использование 80 порта.

19.01.2011 андрей
Скажите уважаємий админ, а в xamp сендмаил ето только емулятори и они ничего на почту не отправляют или ето не емулятори?:

Apache - это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

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

После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* - настройки модулей
  • /etc/apache2/sites-available/* - настойки виртуальных хостов
  • /etc/apache2/ports.conf - порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

vi /eta/apache2/apache2.conf

Timeout - указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On - очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 - максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 - таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group - пользователь и группа, от имени которых будет работать программа.

HostnameLookups - записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel - уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include - все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:


Параметр значение

Здесь доступны такие основные опции:

AllowOverride - указывает нужно ли читать.htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All - разрешать все, None - не читать эти файлы.

DocumentRoot - устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options - указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All - разрешить все, FollowSymLinks - переходить по символическим ссылкам, Indexes - отображать содержимое каталога если нет файла индекса.

Require - устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied - всем запретить, Require all granted - всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order - позволяет управлять доступом к директории. Принимает два значения Allow,Deny - разрешить для всех, кроме указанных или Deny,Allow - запретить для всех, кроме указанных..ru.

Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах.htaccess они могут быть очень полезны.

У нас остался файл /etc/apache2/ports.conf:

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Настройка сервера Apache через htaccess

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

Важно заметить, что для того, чтобы сервер читал инструкции из.htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None , чтобы могли работать все настройки нужно AllowOverride All .

А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего.htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache - модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

sudo a2enmod имя_модуля

А отключить:

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

vi /etc/apache2/mods-available/deflate.load

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением.conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

vi /etc/apache2/mods-available/deflate.conf

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2enconf имя_модуля

a2disconf имя модуля

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

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

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

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName - основное имя домена
  • ServerAlias - дополнительное имя, по которому будет доступен сайт
  • ServerAdmin - электронная почта администратора
  • DocumentRoot - папка с документами для этого домена

Например:

vi /etc/apache2/sites-available/test.site.conf



Статьи по теме