Если ваш сайт не открывается, то проверьте работу служб веб-сервера. Зайдите в панель управления ISPmanager по ссылке
https://<IP_вашего_сервера>:1500/ispmgr или https://<IP_вашего_сервера>/manager/ispmgr или https://<IP_вашего_сервера>/ispmgr
В панели управления ISPmanager зайдите в раздел «Мониторинг и журналы» — «Службы». Проверьте, что около служб nginx и httpd включены лампочки, в противном случае выделите нужную службу и нажмите кнопку «Старт».
Если не удается включить эти службы через ISPmanager, то подключитесь к серверу по ssh и запустите веб-сервер командами консоли, приведенными ниже в таблице.
Команда запуска веб-сервера
Запустить Web-cервер Apache
FreeBSD: /usr/local/etc/rc.d/apache22 start Debian/Ubuntu: systemctl start apache2 Centos: systemctl start httpd
Запустить Web-cервер Nginx
FreeBSD: /usr/local/etc/rc.d/nginx start Debian/Ubuntu/Centos: systemctl start nginx
Веб-сервер Apache
При запуске Apache возможны следующие ошибки, которые отобразятся в командной строке.
bad user name
apache2: bad user name usertest
Эта ошибка означает, что пользователь usertest не существует, однако это имя прописано в конфигурационном файле Apache в директивах SuexecUserGroup или AssignUserID. Эти директивы содержат информацию о владельце домена и в зависимости от версии Apache используется одна из них:
Apache-mpm-ITK использует AssignUserIDApache-mpm-Prefork использует SuexecUserGroup.
Чтобы узнать вашу версию Apache, выполните команду
apache2ctl -V | grep -i 'Server MPM'
или
apachectl -V | grep -i 'Server MPM'
В соответствующей вашей версии Apache директиве нужно указать существующего пользователя либо закомментировать строки, добавив символ # в начало строки. Ниже приведен пример конфигурационного файла Apache, если вы решили закомментировать строки, то символ # нужно ставить в начале каждой строки блока VirtualHost.
<VirtualHost 127.0.0.1:80 > ServerName domain.ru CustomLog /var/www/httpd-logs/1.rootina.fvds.ru.access.log combined DocumentRoot /var/www/user/data/www/1.rootina.fvds.ru ErrorLog /var/www/httpd-logs/domain.ru.error.log ServerAdmin webmaster@domain.ru ServerAlias www.domain.ru SuexecUserGroup usertest user AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml AddType application/x-httpd-php-source .phps php_admin_value open_basedir "/var/www/user/data:." php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ru" php_admin_value upload_tmp_dir "/var/www/user/data/mod-tmp" php_admin_value session.save_path "/var/www/user/data/mod-tmp" </VirtualHost>
Перезапустите веб-сервер после внесения изменений.
Syntax error
Syntax error on line 310 of /etc/apache2/apache2.conf: Invalid command 'helpers', perhaps misspelled or defined by a module not included in the server configuration
Это сообщение о синтаксической ошибке, допущенной в указанном файле и указанной команде. Откройте файл с ошибкой, в данном примере это /etc/apache2/apache2.conf, но в вашем случае это может быть любой другой файл, используемый Apache. Найдите в файле строку с ошибкой (в примере это 310 строка) и неправильно написанную команду (в примере - helpers). Исправьте ошибку либо закомментируйте строку, поставив знак # в ее начало.
Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration
Проверьте, установлен ли PHP на сервере, при помощи команды
php -v
При положительном результате вы получите следующий ответ:
PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
Далее проверьте, подключен ли 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 запись имеет вид:
<IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule>
в случае Apache-ITK:
<IfModule itk.c> LoadModule php5_module modules/libphp5.so </IfModule>
Если вы получили в результате выполнения команды ответ
/usr/local/etc/apache22/httpd.conf:#LoadModule php5_module
то это значит, что модуль 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 при помощи команды:
ls /etc/httpd/modules/libphp5.so
При положительном ответе системы вы получите ответ:
# ls /etc/httpd/modules/libphp5.so /etc/httpd/modules/libphp5.so
Это означает, что библиотека есть, и вам нужно выполнить настройку файла /etc/httpd/conf.d/php.conf, как описано выше.
Если библиотеки PHP на сервере нет, то выполните установку PHP командой:
yum install php
Обратите внимание, что если PHP все же установлен, а вы все-равно выполняете эту команду, то результате может быть выполнена установка новой версии PHP!
Перезапустите веб-сервер Apache после внесения изменений.
Server reached MaxClients setting
server reached MaxClients setting, consider raising the MaxClients setting
Ошибка заключается в том, что был превышен лимит одновременных подключений к серверу (сайт загружает больше пользователей, чем прописано в конфигурационном файле). Измените этот лимит в соответствующем файле.
Для FreeBSD это
/usr/local/etc/apache22/extra/httpd-mpm.conf
Для Debian/Ubuntu это
/etc/apache2/apache2.conf
Версия Apache | <IfModule mpm_itk_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients <Нужное значение> MaxRequestsPerChild 0 </IfModule> |
Apache Prefork | <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients <Нужное значение> MaxRequestsPerChild 0 </IfModule> |
Для Centos это
/etc/httpd/conf/httpd.conf
Версия Apache | <IfModule itk.c> StartServers 8 MinSpareServers 8 MaxSpareServers 10 MaxClients <Нужное значение> MaxRequestsPerChild 1000 </IfModule> |
Apache Prefork | <IfModule prefork.c > StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients <Нужное значение> MaxRequestsPerChild 0 </IfModule> |
Оптимальное <Нужное значение> параметра MaxClients рассчитывается по формуле:
MaxClients=(M-30%)/H,
где М - объем оперативной памяти на сервере, Н - память, которую требует служба httpd.
Например, пусть при 2 Гб оперативной памяти (М=2Гб=2048Мб) httpd занимает 35 Мб. Тогда по формуле (2048-30%)/35=40,96~41. MaxClients=41 - это оптимальное значение, которое гарантирует нормальную работу сервера.Перезапустите веб-сервер Apache после внесения изменений.
Out of memory
Fatal error: Out of memory
Ошибка возникает, если на сервере не хватает оперативной памяти для загрузки сайта. Можно уменьшить значение MaxClients, как описано выше, но это одна из возможных причин нехватки памяти. Нужен детальный анализ причины возникновения этой ошибки.
Веб-сервер Nginx
При запуске Nginx возможны следующие ошибки, которые отобразятся в консоли.
Restarting nginx: nginx: [emerg] unknown directive "Basic" in /etc/nginx/nginx.conf:13 nginx: configuration file /etc/nginx/nginx.conf test failed
Unknown directive
Ошибка возникает, если в конфигурационном файле указана неизвестная директива. Путь к файлу указан в ошибке, в данном примере это /etc/nginx/nginx.conf. Зайдите в эту директорию, откройте nginx.conf и исправьте ошибку либо закомментируйте строку. В данном примере нужно найти 13 строку указанного файла, в ней найти неизвестную директиву “Basic” и исправить ошибку. Чтобы закомментировать строку, поставьте в ее начале знак #.
Could not build the server_names_hash
nginx: [emerg] could not build the server_names_hash, you should increase either server_names_hash_max_size: 512 or server_names_hash_bucket_size:64
Если возникла такая ошибка, то нужно уменьшить длину доменного имени или количество имен серверов, поскольку эти величины ограничены значениями параметров. Можно также увеличить значение этих параметров:
server_names_hash_bucket_size 128; server_names_hash_max_size 1024;
Не доступен IP адрес(bind() to failed)
nginx: [emerg] bind() to 128.11.11.11:80 failed (49: Can't assign requested address)
Эта ошибка говорит о том, что не доступен IP-адрес, который указан в конфигурационном файле. В данном примере это 128.11.11.11, которого на самом деле не существует ни на одном интерфейсе сервера. Зайдите в конфигурационный файл Nginx (/etc/nginx/nginx.conf), найдите секцию server и исправьте некорректный IP-адрес. Если домен с таким адресом не найден в nginx.conf, то создайте домен через панель ISPmanager.