Помощь
Вход в личный кабинет
Регистрация клиента
Сообщить об ошибке
Неполадки в работе веб-сервера
Если ваш сайт не открывается, то проверьте работу служб веб-сервера. Зайдите в панель управления ISPmanager по ссылке
В панели управления ISPmanager 5 зайдите в раздел “Система” -> “Службы”. Проверьте, что около служб nginx и httpd “включены лампочки”, в противном случае выделите нужную службу и нажмите кнопку “Старт”.
Для панели управления ISPmanager4 зайдите в “Инструменты” -> “Сервисы”. Проверьте, что около строк со службами Nginx и HTTP лампочки жёлтого цвета, в противном случае выделите имя службы и нажмите кнопку “Запустить”.
Также для этой версии панели в разделе “Настройки” -> “Адрес панели” поставьте галочку “Включить встроенный http сервер”.
Если не удается включить эти службы через ISPmanager, то подключитесь к серверу по ssh и запустите веб-сервер командами консоли, приведенными ниже в таблице.
Команда запуска веб-сервера
Запустить Web-cервер Apache
Запустить Web-cервер Nginx
Веб-сервер Apache
При запуске Apache возможны следующие ошибки, которые отобразятся в командной строке.
bad user name
Эта ошибка означает, что пользователь usertest не существует, однако это имя прописано в конфигурационном файле Apache в директивах SuexecUserGroup или AssignUserID. Эти директивы содержат информацию о владельце домена и в зависимости от версии Apache используется одна из них:
Apache-mpm-ITK использует AssignUserID
Apache-mpm-Prefork использует SuexecUserGroup.
Чтобы узнать вашу версию Apache, выполните команду
В соответствующей вашей версии Apache директиве нужно указать существующего пользователя либо закомментировать строки, добавив символ # в начало строки. Ниже приведен пример конфигурационного файла Apache, если вы решили закомментировать строки, то символ # нужно ставить в начале каждой строки блока VirtualHost.
Перезапустите веб-сервер после внесения изменений.
Syntax error
Это сообщение о синтаксической ошибке, допущенной в указанном файле и указанной команде. Откройте файл с ошибкой, в данном примере это /etc/apache2/apache2.conf, но в вашем случае это может быть любой другой файл, используемый Apache. Найдите в файле строку с ошибкой (в примере это 310 строка) и неправильно написанную команду (в примере — helpers). Исправьте ошибку либо закомментируйте строку, поставив знак # в ее начало.
Проверьте, установлен ли PHP на сервере, при помощи команды
При положительном результате вы получите следующий ответ:
Далее проверьте, подключен ли PHP-модуль к веб-серверу Apache, при помощи команд:
FreeBSD
grep -R -i «LoadModule php5_module» /usr/local/etc/apache22/
# grep -R -i «LoadModule php5_module» /usr/local/etc/apache22/
/usr/local/etc/apache22/httpd.conf:LoadModule php5_module libexec/apache22/libphp5.so
Debian\Ubuntu
grep -R -i «LoadModule php5_module» /etc/apache2/
# grep -R -i «LoadModule php5_module» /etc/apache2/
/etc/apache2/mods-available/php5.load:LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
/etc/apache2/mods-enabled/php5.load:LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
Centos
grep -R -i «LoadModule php5_module» /etc/httpd/
# grep -R -i «LoadModule php5_module» /etc/httpd/
/etc/httpd/conf.d/php.conf.rpmsave: LoadModule php5_module modules/libphp5.so
/etc/httpd/conf.d/php.conf.rpmsave: LoadModule php5_module modules/libphp5-zts.so
/etc/httpd/conf.d/php.conf: LoadModule php5_module modules/libphp5.so
/etc/httpd/conf.d/php.conf: LoadModule php5_module modules/libphp5-zts.so
/etc/httpd/conf.d/php.conf: LoadModule php5_module modules/libphp5.so
Для ОС Debian\Ubuntu модуль PHP подключен только в случае загрузки его из директории, выделенной жирным шрифтом в таблице выше.
Для ОС Centos проверьте, что модуль PHP указан в файле /etc/httpd/conf.d/php.conf для вашей версии Apache. В случае Apache-Prefork запись имеет вид:
в случае Apache-ITK:
Если вы получили в результате выполнения команды ответ
то это значит, что модуль PHP прописан, но строка закомментирована. Зайдите в указанный в ответе файл (в данном случае это /usr/local/etc/apache22/httpd.conf) и уберите знак #.
Если PHP не был установлен на веб-сервер, выполните его установку приведенными ниже командами.
| Операционная система | Команда |
| FreeBSD | cd /usr/ports/www/mod_php55; make install clean |
| Debian\Ubuntu | apt-get install libapache2-mod-php5 |
В случае ОС Centos модуль PHP отдельно устанавливать не нужно. Проверьте, есть ли на сервере библиотека PHP при помощи команды:
При положительном ответе системы вы получите ответ:
Это означает, что библиотека есть, и вам нужно выполнить настройку файла /etc/httpd/conf.d/php.conf, как описано выше.
Если библиотеки PHP на сервере нет, то выполните установку PHP командой:
Обратите внимание, что если PHP все же установлен, а вы все-равно выполняете эту команду, то результате может быть выполнена установка новой версии PHP!
Перезапустите веб-сервер Apache после внесения изменений.
Server reached MaxClients setting
Ошибка заключается в том, что был превышен лимит одновременных подключений к серверу (сайт загружает больше пользователей, чем прописано в конфигурационном файле). Измените этот лимит в соответствующем файле.
Для FreeBSD это
Для Debian/Ubuntu это
| Версия Apache | StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients MaxRequestsPerChild 0 |
| Apache Prefork | StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients MaxRequestsPerChild 0 |
| Версия Apache | StartServers 8 MinSpareServers 8 MaxSpareServers 10 MaxClients MaxRequestsPerChild 1000 |
| Apache Prefork | StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients MaxRequestsPerChild 0 |
Оптимальное параметра MaxClients рассчитывается по формуле:
где М — объем оперативной памяти на сервере, Н — память, которую требует служба httpd.
Например, пусть при 2 Гб оперативной памяти (М=2Гб=2048Мб) httpd занимает 35 Мб. Тогда по формуле (2048-30%)/35=40,96
41. MaxClients=41 — это оптимальное значение, которое гарантирует нормальную работу сервера.
Перезапустите веб-сервер Apache после внесения изменений.
Out of memory
Ошибка возникает, если на сервере не хватает оперативной памяти для загрузки сайта. Можно уменьшить значение MaxClients, как описано выше, но это одна из возможных причин нехватки памяти. Нужен детальный анализ причины возникновения этой ошибки.
Веб-сервер Nginx
При запуске Nginx возможны следующие ошибки, которые отобразятся в консоли.
Unknown directive
Ошибка возникает, если в конфигурационном файле указана неизвестная директива. Путь к файлу указан в ошибке, в данном примере это /etc/nginx/nginx.conf. Зайдите в эту директорию, откройте nginx.conf и исправьте ошибку либо закомментируйте строку. В данном примере нужно найти 13 строку указанного файла, в ней найти неизвестную директиву “Basic” и исправить ошибку. Чтобы закомментировать строку, поставьте в ее начале знак #.
Could not build the server_names_hash
Если возникла такая ошибка, то нужно уменьшить длину доменного имени или количество имен серверов, поскольку эти величины ограничены значениями параметров. Можно также увеличить значение этих параметров:
Не доступен IP адрес(bind() to failed)
Источник
Как запустить Apache на Windows
Веб-сервер Apache – это служба, которая работает в фоне и у которой нет графического интерфейса. Эта служба устанавливается и запускается в командной строке.
Если вам нужен только веб-сервер без дополнительных модулей, то вы можете ограничиться базовой настройкой.
Настройка Apache на Windows
На самом деле, базовая настройка веб-сервера крайне проста – необходимо только правильно указать путь до папки, в которой помещены веб-сайты – этого будет достаточно для запуска веб-сервера.
Кстати, в конфигурационном файле уже прописаны значения многих параметров по умолчанию. К примеру, по умолчанию корневой директорией является c:/Apache24. Поэтому если папку Apache24 из скаченного архива вы разархивируете в корень диска C, то вы можете вообще без настройки запустить веб-сервер следующей командой:
И по адресу http://localhost увидите стандартную страницу веб-сервера, которая сообщает, что он работает:
Кстати, для открытия командной строки в Windows используйте сочетание клавиш Win+x и в открывшемся окне выберите Windows PowerShell (администратор).
Настройка веб-сервера выполняется посредством редактирования текстового файла, который размещён в папке Apache24\conf\ и называется httpd.conf.
Этот файл состоит из директив с определёнными значениями. Эти директивы регулируют поведение веб-сервера. Но больше чем директив в этом файле комментариев – они начинаются с решётки (#) – комментарии нужны для человека, который настраивает веб-сервер. Сам сервер строки начинающиеся с # просто игнорирует. Т.е. вы можете просто удалить их.
Этот файл содержит не все возможные директивы – многие из них здесь отсутствуют, поскольку не требуются для большинства задач. Даже в этой заметки мы рассмотрим не все доступные в файле настройки – если описание чего-то пропущено, значит просто не нужно это трогать.
Как уже было сказано, важно установить путь до папки с веб-сайтами. Если она установлена неправильно (например, отсутствует на компьютере), то веб-сервер не запуститься.
Думаю, вы уже обратили внимание, что веб-сервер отличается от других программ для Windows. Если вы знакомы с Linux или другими аналогичными операционными системами, вам должна быть знакома работа в консоли и редактирование текстовых файлов. Пути до файлов тоже записываются не совсем обычно для Windows. Сейчас главное уяснить два правила:
- используйте абсолютные пути до файла (которые начинаются с буквы диска, затем следуют все вложенные папки), а не относительные – у сервера свои правила интерпретации относительных путей, поэтому вы можете не понять друг друга;
- всегда используйте прямые слеши, а не обратные (т.е., «c:/apache» вместо «c:\apache»).
Итак, откройте файл Apache24\conf\httpd.conf любым текстовым редактором (хоть Блокнотом) и вот мы уже готовы к настройке веб-сервера.
Первой идёт директива ServerRoot – это верхняя директория дерева, в которой хранятся файлы конфигурации сервера и журналов. Не добавляйте слэш на конец пути папки.
Значение по умолчанию устанавливается двумя директивами:
Первая директива присваивает значение переменной SRVROOT, которое по умолчанию «c:/Apache24». Вторая директива присваивает значение переменной $ настройке ServerRoot.
ServerRoot — это та папка, в которой находятся все файлы веб-сервера – поменяйте значение на то, куда вы распаковали файлы веб-сервера. Это можно сделать используя конструкцию из двух переменных:
Либо если вы не планируете снова использовать переменную $
Директива Listen позволяет вам привязать Apache к определённому IP адресу и/или порту. Значение по умолчанию:
Оно означает, прослушивать 80 порт на любом IP адресе (т.е. любом сетевом интерфейсе), доступном в вашей системе. Вы можете указать конкретный IP адрес, который нужно прослушивать и, следовательно, на запросы с которого отвечать:
Можно указать несколько портов:
Или несколько IP и портов:
Вы можете использовать любые сочетания, главное правило – порт на указанном интерфейсе (IP) не должен быть занят другой программой.
Значение по умолчанию вполне подходит для локального веб-сервера – т.е. здесь можно просто ничего не менять.
Далее идёт большой список модулей. Некоторые их них отключены (строки закомментированы, т.е. начинаются с #), а некоторые включены.
На самом деле, всё действительно необходимое уже включено – и для работы большинства веб-сайтов менять ничего не нужно – особенно на локальном веб-сервере. Но есть одно исключение – модуль mod_rewrite по умолчанию отключён. Это очень популярный модуль, например, все ЧПУ (понятные для человека адреса страниц) делаются с помощью него. Вы можете его включить, для этого достаточно найти строку:
и раскомментировать её, т.е. заменить на:
Директива ServerAdmin содержит e-mail администратора, этот адрес электронной почты пишется на некоторых страницах веб-сервера, которые автоматически генерируются в случае возникновения ошибок. Подразумеваются, что по этому адресу можно связаться с администратором.
Директива ServerName – это то, как сервер сам себя идентифицирует (называет). Для локального веб-сервера поменяйте строку
запрещает доступ к файловой системе веб-сервера (пока это не разрешено явно) и запрещает использовать файлы .htaccess (пока это не разрешено явно).
Далее идёт довольно объёмная конструкция, но если удалить из неё комментарии, то получается следующее:
DocumentRoot – это директория, где по умолчанию находятся сайты. По умолчанию именно там ищутся все пришедшие на веб-сервер запросы. Укажите здесь путь до корневой папки в веб-документами. Конечный слэш писать не нужно.
Конструкция … нам уже встречалась. Но здесь указывается конкретная папка, для который делаются настройки. Эти настройки перезаписывают общие, которые указаны ранее.
Пути до папок в DocumentRoot и Directory не забудьте поменять на свои!
Обратите внимание, что для установки настроек вновь используется переменная $ , значение которой было присвоено в самом начале. Если использовать синтаксис с $ , то корневая папка документов должна обязательно находится в корневой папке сервера. Я настраиваю сервер по-другому — у меня исполнимые файлы отделены от файлов сайтов, поэтому вместо переменной, можно просто прописать пути до нужной папки с сайтами:
Директива Options включает разные опции. По умолчанию указаны опции Indexes и FollowSymLinks. Первая (Indexes) означает показывать индексные файлы, если запрос не содержит имени файла. Допустим, пользователь открывает адрес http://localhost/site/, то если в этой папке есть индексный файл (например, index.html или index.php), то будет показан этот файл. Понятно, что если сделан запрос на определённый файл, например, http://localhost/site/page.html, то будет показана запрошенная страница.
Вторая опция (FollowSymLinks) означает следовать символьным ссылкам. Это что-то вроде ярлыков в Windows. В Linux с помощью таких ссылок можно собрать в одном сайте файлы, размещённые в различных папках файловой системы. На самом деле, для начинающих администраторов сервера это не очень нужно.
Директива AllowOverride установлена на None, это означает запрет использовать файлы .htaccess. На своём сервере я разрешаю файлы .htaccess (нужны для mod_rewrite, ограничения доступа), поэтому я заменяю её значение на All, получается так:
А директива Require all granted открывает посетителям доступ для веб-документов.
Я уже упомянул индексные файлы, перечень индексных файлов устанавливается конструкцией:
Там всего один файл — index.html. Можно дописать любое количество своих собственных. Я меняю:
Другие настройки обычно не требуется менять для локального веб-сервера.
Источник