Установка и настройка русского web-сервера Apache
Сегодня в русском Internet существует проблема различных кодировок. Не все пользователи могут воспользоваться, например, cp-1251. Есть два выхода: выкладывать текст в нескольких кодировках или установить русский Apache.
Web-сервер Apache распространяется бесплатно. Имеется, практически, на всех ftp-архивах. Что касается версии. Я совету взять версию не ниже 1.3.3rusPL26_5.
Для установки из полного архива — раскройте полученный архив с помощью программы tar:
tar xzvf имя_архива
Запустите
затем
затем
Сервер установится в директорию /usr/local/apache
Все файлы конфигурации сервера находятся в каталоге /usr/local/apache/etc. Файл httpd.conf – это файл конфигурации демона web-сервера, файл srm.conf предназначен для конфигурирования ресурсов web-сервера, файл access.conf определяет возможности, которые будут предоставлены пользователям при обращении к тем каталогам, к которым у сервера есть доступ. Каждая запись содержит имя переменной и, через пробел, ее значение.
Переменные, определяемые в файле httpd.conf
AccessConfig – местонахождение файла access.cong
AgentLog – файл регистрации активности пользователей
ErrorLog – местонахождение файла регистрации ошибок
Group – идентификатор группы, с правами доступа которой работает сервер в режиме демона
IdentityCheck – осуществляет аутентификацию удаленных пользователей
MaxClients – ограничивает общее количество клиентов, которые могут одновременно устанавливать соединение с системой.
MaxRequestsPerChild – количество запросов, которые каждому порожденному процессу разрешено обработать до своего завершения
PidFile – файл, в котором сервер должен записывать свой идентификатор процесса
Port – порт, через который поступают запросы
ResourceConfig – местонахождение файла srm.conf
ServerAdmin – адрес электронной почты администратора. Сервер записывает его в некоторые документы, например, в сообщения об ошибке сервера
ServerName – определяет хост имя машины. Допустим хост вашей машины vasya.ru и вам хочется, чтобы к серверу обращались по адресу www.vasya.ru – определение переменно должно быть www.vasya.ru
ServerRoot – каталог, в котором хранятся файлы конфигурации, ошибок и регистрации сервера.
ServerType – тип сервера (автономный или работающий под управлением inet.) Аавтономный – сервер работает постоянно. Под управление inet – сервер запускается при наличии запросов и останавливается при их отсутствии
StartServers – начальное количество серверных процессов
TimeOut – число секунд, отводимых на ожидание запроса от пользователя. Если запрос за это время не поступает, соединение разрывается
TransferLog – путь к файлам регистрации
TypesConfig – местонахождения файла конфигурации MIME
User – идентификатор пользователя, с правами которого работает сервер
Одна из преимуществ Apache – это то, что на обращение по разным именам к машине он может открывать соответственные виртуальные директории. При использовании виртуальных хостов переменная ServerName должна быть закомментарена (# в начале строки) и основной хост прописан, как виртуальный.
Синтаксис:
<VirtualHost виртуальный.хост.машины> NameVirtualHost виртуальный.хост.машины ServerAdmin адрес@администратора.ru DocumentRoot /каталог/в котором/хранятся/файлы/конфигурации ServerName виртуальный.хост.машины ErrorLog /местонахождение/файла/регистрации/ошибок TransferLog файл регистрации активности пользователей </VirtualHost>
Переменные, определяемые в файле srm.conf
AccessFileName – имя файла, содержащего информацию, необходимую для управления доступом (по умолчанию .htaccess)
AddDescription – краткое описание, добавляемое к файлу в создаваемых сервером индексных файлах
Alias имя_псивдонима – создает псевдонимы для различных путевых имен
DirectoryIndex – имена индексных файлов для web-сервера
DocumentRoot – исходный каталог, в который направляется клиентские запросы
ScriptAlias имя_псевдонима – определяет, какие каталоги содержат сценарии сервера (ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin)
UserDir – имя каталога, который добавляется к начальному каталогу пользователя при получении URL запроса в виде ~user
Директивы для файла access.conf
<Directory путевое_имя>директивы</Directory> — определяет каталог, для которого задаются директивы
Директивы:
Options список_возможностей – опции для указания каталогов(используются в директивах Directory или Limit)
Список возможностей:
All – включает все директивы
ExecCGI – выполняет сценарии CGI
FollowSymLinks – включает символические ссылки
Indexes – позволяет включать в html-файл другие файлы, в том числе и программы, подлежащие выполнению
None – блокирует все возможности
SymLinksIfOwnerMatch – проверяет идентификатор (ID) пользователя перед использованием символических ссылок
AllowOverride список_возможностей – определяет опции, которые могут быть отмечены в файлах .htaccess
All – неограниченный доступ
FileInfo – активизирует директивы AddType и AddEncoding
Limit – активизирует директиву Limit
None – доступ не разрешен
Options – активизирует директиву Options
<Limit></Limit> — управляет доступом к Web-серверу при помощи следующих обозначений;
all – относится ко всем хостам
allow from список_хостов – разрешается доступ хост-машинам, перечисленным в списке
deny from список_хостов — запрещается доступ хост-машинам, перечисленным в списке
order опции – порядок, в котором обрабатывается список запретов и разрешений (например, order deny, allow)
requires [group/user] список – требуется аутентификация с помощью файла AuthUserFile
Я опишу сдесь только основные настройки. Все переменные описываются в файле httpd.conf и в версии сервера не ниже PL22.
CharsetDefault имя_кодировки – определяет, в какой кодировке находятся на сервере. Эту переменную можно описывать в VirtualHost.
<VirtualHost any.domain.ru> CharsetSelectionOrder CharsetDefault windows-1251 # например </VirtualHost>
CharsetByPort имя_кодировки номер_порта — директива позволяет связать номер TCP-порта с кодировкой. Например если вы впишите
Listen 8101 CharsetByPort koi8-r 8101
и введете в браузере http://host.name:8101/имя_файла то документ отошлется вам в кодировке koi-8.
Для запуска нужно запустить следующий файл: /путь/серверу/apache/sbin/apachectl start
Для остановки: /путь/серверу/apache/sbin/apachectl stop
Для дополнительной информации введите: /путь/серверу/apache/sbin/apachectl —help
www.internet-technologies.ru
Установка веб-сервера Apache
В прошлый раз мы разобрались с тем, что такое web-сервер. Самым популярным на сегодняшний момент является
Приступим!
Так как проект расчитан на начинающих веб разработчиков, то для простоты настройки и установки ПО мы будем программировать под Windows. По мере набора опыта, вы легко сможете “переехать” на *nix платформу.
Итак, для начала нам необходимо скачать последнюю версию дистрибутива Apache (4.6 Mb). На момент написания этой заметки – это версия 2.2.10. К моменту прочтения этого текста, ваша версия может быть более новой, но это не меняет сути. Каких-либо коренных отличий быть не должно.
Находим на странице раздел “Apache HTTP Server 2.2.10 is the best available version” (лучшая доступная версия) и там выбираем дистрибутив для Windows – “Win32 Binary without crypto (no mod_ssl) (MSI Installer)” ( установочный файл без поддержки SSL, т.к. для наших уроков SSL нам не понадобиться):
Итак, мы скачали установочный файл apache_2.2.10-win32-x86-no_ssl.msi. Запускаем установщик:
Просто нажимаем Next.
Принимаем лицензионное соглашение и нажимаем Далее.
На этом этапе заполняем поля, так как указано на картинке. Эти данные прописываются в конфигурационный файл и могут быть в дальнейшем отредактированы.
Выбираем типичную установку и нажимаем Далее.
Я настоятельно рекомендую вам установить Apache именно в эту папку (она предлагается по умолчанию). Следующие уроки будут посвящены установке и настройке PHP и MySQL. Я буду ориентироваться именно на этот путь установки Apache. Так что, если после
Подготовка к установке завершена. Нажимаем Install и ждем пока завершиться установка.
Поздравляю, установка Apache завершена!
Если у кого-то возникли трудности в установке – пишите в комментариях. Я постараюсь помочь.
afirewall.ru
Установка и отладка веб-сервера для сайта в UBUNTU
2 years ago | 12.0K
Настройка веб-сервера для локального веб-сайта в Ubuntu является не простой задачей, но как это делать должен знать любой профессиональный веб-разработчик.
LAMP – что это
LAMP – это сочетание технологий Linux, Apache, MySQL, PHP, которые используются программистами для запуска интернет ресурсов, как личной разработки, так и проектов, функционирующих на известных CMS.
Как установить APACHE
Apache представляет собой веб-сервер с открытым исходным кодом. Его функционирование может быть описано следующим образом: На любой из поступающих запросов, данный сервер выдает ответ соответствующий запросу.
Другими словами говоря, обратившись к человеку с каким-то вопросом, он может, как дать ответ, так и нет. Однако, задав человеку вопрос, на который он дать ответ не в силах, прозвучит ответ: не знаю. Аналогичным образом функционирует и Apache, например, сервер покажет 404 ошибку, если вы обращаетесь к несуществующей странице.
Установка Apache производится посредством команды через терминал:
sudo apt-get install apache2
Если вы совсем новичок в Linux/Ubuntu, вы можете пройти курс Linux/GIT и вы получите базовые знания по командам Linux, а также научитесь работать с контролем версий кода GIT и сервисом BitBucket.
По завершению установки, следует проверить правильность функционирования веб-сервера. Сделать это можно при помощи введения ip адреса сервера в любом из существующих браузеров. В случае, если пользователь производил установку Apache локально, к примеру, на домашний ПК, ему следует ввести в браузере следующие цифры: 127.0.0.1. После этого должна будет отобразиться страница приветствия Apache.
Как установить PHP
fructcode.com
Установка веб-сервера Apache на Windows для 1С
Если вам необходим доступ в 1С из браузера в сети Интернет либо запуск в режиме тонкого клиента (что не требует лицензии 1С на рабочем месте пользователя) можно установить веб-сервер на компьютер или сервер с базой по этой инструкции.
Дистрибутив установки проверен на Windows 7 64x и на Windows Server 2008 R2. Для начала скачиваем и распаковываем в папку C:\Apache24\ архив:
https://www.apachelounge.com/download/VC11/binaries/httpd-2.4.25-win32-VC11.zip
Ставим Visual Studio:
https://www.microsoft.com/en-us/download/details.aspx?id=30679
Запускаем командную строку для установки службы:
Вводим команду для установки службы Apache:
cd C:\Apache24\bin — переходим в папку с файлом
httpd.exe -k install — устанавливаем службу
Если появилась ошибка (или похожая с крякозябрами):
(OS 10048) Only one usage of each socket address (protocol/network address/port) is normally permitted. : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Проверяем занят ли порт в той же командной строке:
netstat -aon | findstr 0.0:80
Если порт чем то занят будет отображено статус LISTENING по протоколу TCP:
Выясняем чем занят, пишем команду:
for /f «tokens=1,2,3,4,5*» %i in (‘netstat -aon ^| findstr «:80» ^| findstr /i listening’) do echo %j %l & @tasklist | findstr %m
Как правило этот порт занят скайпом. В настройках скайп Дополнительно => Соединение снимаем галочку «Для дополнительных входящих соединений следует использовать порты 80 и 443»:
Видим сообщение, что необходимо перезапустить скайп:
Перезапускаем скайп и пробуем установить снова через ту же командную строку:
cd C:\Apache24\bin
httpd.exe -k install
Видим сообщение о том, что служба успешно установлена (The Apache 2.4 service is successfully installed):
На Windows Server 2008 R2 появилась вот такая ошибка при установке, но служба Apache была установлена:
Теперь добавим монитор служб Apache (C:\Apache24\bin\ApacheMonitor.exe) в автозагрузку Windows и запустим его:
Открываем Apache Service Monitor в трее, видим зеленый значок рядом с названием Apache 2.4 и проверяем работу в браузере. Переходим по адресу localhost и видим надпись It works!:
В Windows Server 2008 R2 значок у меня был красный, это означает, что служба не запустилась. В моем случае помогла остановка службы SQL Server Reporting Services (от установленного Microsoft SQL Server 2008 R2) и запуск службы Apache через монитор:
После перезагрузки служба запустилась корректно.
Чтобы ваш веб-сервер 1С был виден в локальной сети, нужно установить статический IP адрес для сетевой карты компьютера-сервера. После этого открыть для редактирования файл C:\Apache24\conf\httpd.conf и поменять в нем строку на Listen ваш статический ip:80:
Также нужно зайти в Брандмауэр => Дополнительные параметры => Правила для входящих подключений и создать правило для порта 80 по протоколу TCP «Разрешить подключение» для всех профилей.
Теперь можно публиковать базы 1С на веб-сервере, запуск из окна браузера 1С Управление торговлей 11 будет выглядеть так:
workandrelax.ru
Установка LAMP (apache+php+mysql) в CentOS 7
Сегодня займемся поднятием одной из наиболее востребованных ролей любого linux сервера, которые занимают в этом функциональном сегменте лидирующую роль. Настройка web сервера CentOS 7 на базе связки популярного http сервера apache, интерпретатора php и сервера баз данных mysql, или коротко — установка lamp. Данная связка является самой популярной конфигурацией на сегодняшний день среди веб хостинга. Хотя последнее время ей на пятки наступает та же компания, но на базе nginx, возможно уже и опередила, точных данных у меня нет на этот счет.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .
Данная статья является частью единого цикла статьей про сервер Centos.
Web сервер на CentOS 7
Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache, интерпретатора языка программирования php и сервера баз данных mysql. Познакомимся немного с каждым из них:
- Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
- PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
- Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Последнее время я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.
Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:
Процессор | 2 ядра |
Память | 8 Gb |
Диск | 150 Gb SSD |
Это кастомная настройка параметров. Они не оптимальны по цене, но мне были нужны именно такие.
Хочу сразу уточнить, что разбираю базовую дефолтную настройку. Для улучшения быстродействия, повышения надежности и удобства пользования нужно установить еще несколько инструментов, о чем я расскажу отдельно. В общем случае для организации веб сервера будет достаточно того, что есть в этой статье.
Если у вас еще нет сервера, то вам надо выполнить установку CentOS 7. А если сервер уже установлен, то не забудьте его настроить. Рекомендую обратить внимание именно на настройку, так как там много полезной информации, которую в рамках этой статьи я не даю — обновление системы, настройка фаервола, установка редактора и многое другое.
Настройка apache в CentOS 7
В CentOS служба apache называется httpd. Когда я только знакомился с этим дистрибутивом, мне было непривычно. В Freebsd и Debian, с которыми я до этого работал служба веб сервера называлась apache, хотя где-то я замечал, кажется во фрюхе, что файл конфигурации имеет имя httpd.conf. До сих пор я не знаю, почему распространились оба эти названия. Был бы рад, если бы со мной кто-то поделился информацией на этот счет в комментариях.
Теперь приступим к установке apache. В CentOS 7 это делается очень просто:
# yum install -y httpd
Добавляем apache в автозагрузку:
# systemctl enable httpd
Запускаем apache в CentOS 7:
# systemctl start httpd
Проверяем, запустился ли сервер:
# netstat -tulnp | grep httpd tcp6 0 0 :::80 :::* LISTEN 21586/httpd
Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу http://ip-address и увидеть картинку:
Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:
/web | раздел для размещения сайтов |
/web/site1.ru/www | директория для содержимого сайта |
/web/site1.ru/logs | директория для логов сайта |
Создаем подобную структуру:
# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -R apache. /web
Дальше редактируем файл конфигурации apache — httpd.conf по адресу /etc/httpd/conf. Первым делом проверим, раскомментированна ли строчка в самом конце:
IncludeOptional conf.d/*.conf
Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. Создаем там файл site1.ru.conf:
# mcedit /etc/httpd/conf.d/site1.ru.conf
<VirtualHost *:80> ServerName site1.ru ServerAlias www.site1.ru DocumentRoot /web/site1.ru/www <Directory /web/site1.ru/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog /web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log common </VirtualHost>
Перезапуск apache в centos
Теперь делаем restart apache:
# systemctl restart httpd
Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log. Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html следующего содержания:
# mcedit /web/site1.ru/www/index.html
<h2>Апач настроен!</h2>
# chown apache. /web/site1.ru/www/index.html
Дальше в винде правим файл hosts, чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:
192.168.1.25 site1.ru
где 192.168.1.25 ip адрес нашего веб сервера.
Теперь в браузере набираем адрес http://site1.ru. Если видим картинку:
значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd, а лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log.
Сразу же обращу ваше внимание на настройку ротации логов виртуальных хостов. Частенько бывает, что если сразу не настроишь, потом забываешь. Но если сайт с хорошей посещаемостью, то логи будут расти стремительно и могут занять очень много места. Лучше настроить ротацию логов веб сервера сразу же после создания. Сделать это не сложно.
Чтобы настроить ротацию логов виртуальных хостов, необходимо отредактировать файл /etc/logrotate.d/httpd. Он создается во время установки apache и включает в себя настройку ротации стандартного расположения логов. А так как мы перенесли логи каждого виртуального хоста в индивидуальную папку, необходимо добавить эти папки в этот файл:
# mcedit /etc/logrotate.d/httpd
/web/*/logs/*.log /var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript }
Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке /web будут ротироваться по общему правилу.
В принципе, простейший веб сервер уже готов и им можно пользоваться. Но вряд ли сейчас найдутся сайты со статическим содержимым, которым достаточно поддержки только html. Так что продолжим нашу настройку.
Если вам необходимо организовать работу сайта по протоколу https, то воспользуйтесь руководством по настройке ssl в apache.
Установка php в CentOS 7
Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:
# yum install -y php
И следом еще несколько полезных компонентов. Установим популярные модули для php:
# yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
Выполним перезапуск apache:
# systemctl restart httpd
Создадим файл в директории виртуального хоста и проверим работу php:
# mcedit /web/site1.ru/www/index.php
<?php phpinfo(); ?>
# chown apache. /web/site1.ru/www/index.php
Заходим по адресу http://site1.ru/index.php
Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.
Где лежит php.ini
После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для все виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:
# mcedit /etc/httpd/conf.d/site1.ru.conf
Добавляем в самый конец, перед </VirtualHost>
php_admin_value date.timezone 'Europe/Moscow' php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M
Для применения настроек нужно сделать restart apache. Теперь в выводе phpinfo можно увидеть изменение настроек.
Обновление до php 5.6 в CentOS 7
В нашем примере мы установили на CentOS 7 php 5.4 из стандартного репозитория. А что делать, если нам нужна более новая версия, например php 5.6? В таком случае нужно выполнить обновление php.
Для этого подключим remi репозиторий:
# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7*.rpm
Теперь обновляем php 5.4 до php 5.6:
# yum --enablerepo=remi,remi-php56 install php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
Перезапускаем apache:
# systemctl restart httpd
И идем смотреть вывод phpinfo — http://site1.ru/index.php
Отлично, мы обновили php до версии 5.6.
Установка MySQL в CentOS 7
Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.
Устанавливаем mariadb на CentOS 7:
# yum install -y mariadb mariadb-server
Добавляем mariadb в автозапуск:
# systemctl enable mariadb.service
Запускаем mariadb:
# systemctl start mariadb
Проверяем, запустилась или нет:
# netstat -tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22276/mysqld
Обращаю внимание, что она даже в системе отображается как сервис mysqld. Теперь запускаем стандартный скрипт настройки безопасности:
# /usr/bin/mysql_secure_installation
Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.
Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.
Перезапуск mariadb/mysql в CentOS 7:
# systemctl restart mariadb
На этом все. Базовый функционал web сервера на CentOS 7 настроен.
Если вам нужен phpmyadmin воспользуйтесь моим подробным руководством по установке и настройке phpmyadmin на centos 7.
Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.
Онлайн курс «DevOps практики и инструменты»
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по .Помогла статья? Есть возможность отблагодарить автора
serveradmin.ru
Установка Apache HTTP Server 2.2.22
Главная страница / Документация / Инструментарий веб-разработчика /Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.
Авторы: Виктор Волков, Иван Шумилов
Содержание:
Сайт разработчика: http://www.apache.org/
Дистрибутив (Apache 2.2 Win32 Binary): http://www.apachelounge.com/download/
Прямая ссылка: httpd-2.2.22-win32.zip
Вот он – великий и ужасный. Сгубивший на своём веку множество начинающих веб-разработчиков, сложивших головы на настройке его конфигурационных файлов. 🙂 Но мы с вами люди, крепких нервов и стальных желудков — поэтому, поехали.
Начальная установка и настройка
Распакуйте архив дистрибутива в каталог C:\Apache2.
Откройте в текстовом редакторе файл «C:\Apache2\conf\httpd.conf», являющийся основным конфигурационным файлом сервера Apache.
Ну а теперь держитесь. Женщинам, старикам и детям просьба – дальше не читать. За психическое состояние людей, дочитавших статью до конца – авторы ответственности не несут. 🙂
Правка файла httpd.conf
- Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ «#») данную строку:
LoadModule rewrite_module modules/mod_rewrite.so - Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
LoadModule php5_module «C:/php/php5apache2_2.dll» - Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
PHPIniDir «C:/php» - Найдите и раскомментируйте строку:
ServerName www.example.com:80
Отредактируйте ее следующим образом установив изначальное имя сервера:
ServerName localhost:80 - Найдите строку:
DocumentRoot «c:/Apache2/htdocs»
Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):
DocumentRoot «C:/apache» - Найдите данный блок:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
И замените его на нижеследующий:
<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory> - Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:
<Directory «c:/Apache2/htdocs»>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> - Найдите блок:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Замените его на:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.php
</IfModule> - Найдите строку:
ErrorLog «logs/error.log»
Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
ErrorLog «C:/apache/error.log» - Найдите строку:
CustomLog «logs/access.log» common
Замените на:
CustomLog «C:/apache/access.log» common - Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml - Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps - И, наконец, найдите и раскомментируйте строки:
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-default.conf
Теперь откройте файл «C:\Apache2\conf\extra\httpd-vhosts.conf» и произведите в нем следующие изменения.
Существующие блоки примеров виртуальных хостов необходимо удалить, и вставить только нижеследующее:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot «C:/apache/localhost/www»
ServerName localhost
ErrorLog «C:/apache/localhost/error.log»
CustomLog «C:/apache/localhost/access.log» common
</VirtualHost>
Сохраните изменения и закройте файл «httpd-vhosts.conf»
Настройка конфигурационныйх файлов завершена, теперь необходимо установить сервис Apache2.2.
Установка сервиса Apache2.2 в картинках
Запускаем командную строку и вводим в ней «C:\Apache2\bin\httpd.exe -k install» Вот что мы должны увидеть при успешной установке сервиса Apache2.2. Если все прошло успешно, движемся дальше — устанавливаем ручной запуск сервиса Apache2.2 для чего проходим путь: «Start» («Пуск») → «Control Panel» («Панель управления») → «Administrative Tools» («Администрирование») → «Services» («Службы»), в открывшемся окне управления служб выбираем строку «Apache2.2» и делаем на ней двойной щелчок, после чего во вкладке «General» («Общие») выбираем ручной запуск сервиса — «Startup type: Manual» («Тип запуска: вручную»). Это необходимо сделать для того, чтобы лишние службы не загружали систему. Учитывая, что домашний компьютер используется не только для веб-разработок, но и для многих других нужд, ручной запуск и остановка, непостоянно используемых сервисов, является наиболее приемлемым.
Создание структуры каталогов виртуальных хостов
В корне диска необходимо создать каталог «apache» — в нем будут лежать ваши виртуальные хосты (домены), глобальный файл журнала ошибок «error.log» (создается программой при первом запуске, автоматически), глобальный файл доступа «access.log» (создается автоматически). В каталоге «apache» создаем еще одну пустую папку — «localhost», в которой, в свою очередь, создаем папку «www», именно в последней и надо будет держать наше добро в виде локальных скриптов. Такая, казалось бы странная структура каталогов, продиктована схожей схемой построения каталогов в системах Unix, и призвана упростить в дальнейшем ее понимание и использование.
Пример создания виртуального хоста
При необходимости установки собственных виртуальных хостов сделайте следующее:
Откройте файл «httpd-vhosts.conf», и создайте в нём блок, примерно, следующего содержания:
<VirtualHost *:80>
# Папка, в которой будет корень вашего хоста.
DocumentRoot «C:/apache/test.ru/www»
# Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.
ErrorLog «C:/apache/test.ru/error.log»
# Файл журнала доступа к хосту.
CustomLog «C:/apache/test.ru/access.log» common
</VirtualHost>
Затем в каталоге «apache», создайте папку «test.ru» (прямо так, с точкой), в которой, в свою очередь, создайте папку «www».
Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
127.0.0.1 test.ru
127.0.0.1 www.test.ru
Теперь запустите сервер Apache выполнив в командной строке «C:\Apache2\bin\httpd.exe -k start», откройте браузер, введите в адресной строке «test.ru» или «www.test.ru» и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста («www.test.ru», если таковой существует), только закомментировав либо удалив строку: «127.0.0.1 www.test.ru», в вышеупомянутом файле «hosts».
Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/
Остановить работу Apache можно выполнив в командной строке «C:\Apache2\bin\httpd.exe -k stop». При необходимости перезагрузить Apache, выполните в командной строке «C:\Apache2\bin\httpd.exe -k restart».
Установка и настройка веб-сервера Apache – завершена.
Создание пакетных файлов для запуска и остановки сервисов
Согласитесь, что вручную редактировать файл «hosts» при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла «hosts» мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.
При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла «hosts» и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.
Файл vhosts-off.txt (может содержать одну единственную строку):
127.0.0.1 localhost
Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:
127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru
В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла «hosts», и stop-webserver.bat – для остановки сервисов и очистки файла «hosts».
Файл запуска start-webserver.bat:
@echo off
echo.
if not exist C:\apache\vhosts-on.txt goto no_vhosts
echo Create virtual hosts:
copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET start Apache2.2
NET start MySQL
Файл остановки stop-webserver.bat:
@echo off
echo.
if not exist C:\apache\vhosts-off.txt goto no_vhosts
echo Restore hosts file:
copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET stop Apache2.2
NET stop MySQL
В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла «hosts», просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.
Одновременно с сервисами удобно запускать программу Apache Monitor, отображающую в системном лотке состояние сервера Apache, для чего можно создать еще один пакетный файл «start-webserver-monitor.bat», содержание которого аналогично файлу «start-webserver.bat» с добавлением в самый конец следующей строки:
start «» «C:\Apache2\bin\ApacheMonitor.exe»
Теперь для запуска всего инструментария вам понадобится запустить файл «start-webserver-monitor.bat», или «start-webserver.bat», а для остановки «stop-webserver.bat». При желании вы можете переименовать эти файлы, переместить их в любое другое место из папки «C:\apache», либо создать на данные файлы ярлыки, например, на рабочий стол.
php-myadmin.ru
Ручная установка Apache и PHP на Windows Server 2012/2008
В этой статье мы рассмотрим процесс установки Apache 2.4.x и PHP 5.6.x на стандартной 64-разрядной версии Windows Server 2012/2008.
Бинарные версии Apache Windows Server в исходном репозитории недоступны, и мы вынуждены обратиться к сторонним дистрибутивам, таким как apachehaus.com. Я использую версию httpd-2.4.20-x64-vc11-r2.zip, которую можно скачать здесь. Она скомпилирована с помощью VC ++ 2012 (VC11). Убедитесь, что сервер установлен с применением VC11 64bit. Иначе могут возникнуть ошибки, такие как отсутствие необходимых модулей, или Apache не будет запускаться. Его можно загрузить прямо с зеркала Microsoft. Двоичные файлы PHP можно скачать отсюда. Я использую php-5.6.22-Win32-VC11-x64.zip, который скомпилирован с помощью vc11.
Установка Apache
Сначала загрузите последнюю версию Apache HTTP Server win32 и извлеките файлы в удобное место, например «C:Apache». Если Apache установлен в «C: Program Files Apache2.2», скрипты cgi и PHP могут некорректно находить пути к файлам из-за пробелов в именах каталогов.
В этом примере мы создадим каталог Apache. Используя «Блокнот», откройте файл httpd.conf. Этот файл находится в подкаталоге /conf. Обратите внимание, что в конфигурационных файлах Apache в полных путях к файлу должны использоваться слэши «/».
Теперь можно попробовать установить Apache на Windows7. Откройте командную строку и перейдите в каталог «c:Apache bin» и введите команду httpd -k install:
c:Apachebin>httpd -k install Installing the 'Apache2.4' service The 'Apache2.4' service is successfully installed. Testing httpd.conf.... Errors reported here must be corrected before the service can be started. httpd: Syntax error on line 39 of C:/Apache/conf/httpd.conf: ServerRoot must be a valid directory
Из приведенного выше фрагмента кода видно, что служба была установлена, но с ошибкой. Корневой каталог сервера нужно исправить до запуска службы, если значение каталога установки по умолчанию было изменено (по умолчанию используется значение /Apache2.4). В данном случае это / Apache:
Define SRVROOT "/Apache" ServerRoot "${SRVROOT}"
После этого дважды кликните по исполняемому файлу монитора Apache Server или через командную строку введите start / stop / restart the service. Примеры команд для CMD приведены в следующем фрагменте кода:
c:Apachebin>httpd -k start c:Apachebin>httpd -k restart c:Apachebin>httpd -k stop The 'Apache2.4' service is stopping. The 'Apache2.4' service has stopped.
Если при запуске сервера Apache PHP Windows выводится сообщение об ошибке (приведено ниже), проверьте, запущен ли уже процесс httpd, выполняется процесс IIS и прослушивается порт 80. IIS является установленным по умолчанию веб-сервером, он настроен на порт 80:
c:Apachebin>httpd -k start (OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address [::]:80 (OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address 0.0.0.0: 80 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs
Если в данный момент IIS запущен, его можно отключить через «Диспетчер серверов». В командной строке введите «services.msc». Найдите службу «web publishing platform», дважды кликните по ней мышью, чтобы открыть свойства службы и остановите ее. Чтобы запретить ее запуск при следующей перезагрузке, можно поменять тип запуска на ручной. Кроме этого, если на сервере установлен Skype, он также конфликтует с портом 80.
После того, как Apache был запущен и все настройки были заданы верно, при переходе по адресу http://localhost/ в любом браузере должна отображаться стандартная страница http или просто сообщение ”It works”.
Установка PHP
Сначала загрузите двоичные файлы PHP и разархивируйте их в папку «C:php». Затем переименуйте файл c:phpphp.ini-development в php.ini. Откройте его и измените значения нескольких переменных.
Измените значение переменной «extension_dir» на “C:phpext”. По умолчанию она закомментирована или для нее установлено значение «/ext«. Также можно включить в php.ini необходимые расширения, удалив символ «;» в начале строки:
;extension=php_mbstring.dll ;extension=php_exif.dll extension=php_mysql.dll extension=php_mysqli.dll
Кроме этого нужно задать для переменной sessions.save_path папку временных файлов Windows (то есть C:Temp).
Каталоги PHP и Apache также необходимо добавить для переменных путей среды. Откройте Панель управления — Система и безопасность — Местоположение системы и добавьте “;C:php; C:Apachebin” в конец списка «Системные переменные пути» и нажмите «ОК», чтобы сохранить изменения.
Перед перезапуском службы Apache Windows необходимо указать в файле httpd.conf модули PHP. Добавьте следующие строки в конец файла httpd.conf под раздел «LoadModule»:
LoadModule php5_module "c:/php/php5apache2_4.dll" AddType application/x-httpd-php .php PHPIniDir "C:/php"
Также нужно добавить «index.php» в раздел DirectoryIndex в файле httpd.conf, как показано ниже:
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
После внесения изменений сохраните файл httpd.conf и закройте его.
Чтобы изменения вступили в силу, необходимо перезапустить службу Apache. Сделать это можно через монитор Apache Service или из командной строки — «httpd -k restart«.
Создайте новую страницу «index.php» в папке C:Apachehtdocs и поместите в нее любой php-код. Например, я использовал следующий код:
После сохранения изменений в файле откройте в браузере http://localhost/index.php, и если все в порядке вы увидите страницу phpinfo.
Мы завершили установку Apache PHP на Windows Server 2012. В файлах httpd.conf и php.ini многие модули отключены или закомментированы. Их можно включить, удалив комментарии и перезапустив службы Apache. Для доступа к сайтам / страницам из внешней сети убедитесь, что к файлу httpd.exe разрешен публичный доступ в Панель управления — Система и безопасность — Брандмауэр Windows — Разрешенные приложения.
Данная публикация представляет собой перевод статьи «Installing Apache and PHP manually in Windows server 2012/2008» , подготовленной дружной командой проекта Интернет-технологии.ру
www.internet-technologies.ru