+7 (495) 668-09-95

Knowledge base

Problems with Web Server

If your website does not open, check if the web server services are functioning normally. Go to the ISPmanager control panel using the following link:

https://<your_server_IP>/manager/ispmgr
or
https://<your_server_IP>/ispmgr
or
https://<your_server_IP>:1500/ispmgr

In the ISPmanager 5 control panel, go to the “System” ->  “Services” section. Check that “the lamps are on” next to the nginx (if available) and httpd services, otherwise select the required service and press the “Start” button .

For the ISPmanager4 control panel, go to “Tools” -> “Services”. Check that the lamps are yellow next to the lines of the Nginx and HTTP services, otherwise select the name of the service and press the “Start” button .

Also for this panel version, check the box for “Enable Integrated Http Server” in the “Settings” -> “Panel Address” section.

If you cannot enable these services via ISPmanager, connect to the server via ssh and start the web server using the console commands shown in the table below.

Web Server Start Command

To StartApache WebServer

FreeBSD: /usr/local/etc/rc.d/apache22 start
Debian/Ubuntu: /etc/init.d/apache2 start
Centos: /etc/init.d/httpd start

To StartNginx WebServer

FreeBSD: /usr/local/etc/rc.d/nginx start
Debian/Ubuntu/Centos: /etc/init.d/nginx start

Apache Web Server

When Apache is started, the following errors can occur, which will be displayed in the command line.

bad user name

apache2: bad user name usertest

This error means that the “usertest” (may be any other name) user does not exist, but this name is registered in Apache’s configuration file, in the SuexecUserGroup or AssignUserID directives. These directives contain information about the domain owner, and one of them is used depending on the Apache version:

Apache-mpm-ITK uses AssignUserID
Apache-mpm-Prefork uses SuexecUserGroup.

To find out your Apache version, execute the command:

apache2ctl -V | grep -i 'Server MPM'

or

apachectl -V | grep -i 'Server MPM'

In the directive that corresponds to your Apache version, enter an existing user or comment-out the lines adding the # symbol to the start of the line. Below is an example of Apache configuration file, if you have decided to comment-out the lines, the # symbol has to be placed in the beginning of each line in the VirtualHost block.

<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>

Restart the web server after the changes have been made.


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

This message indicates a syntax error that has been made in the given file and the given command. Open the file containing the error, in this example it is /etc/apache2/apache2.conf, but in your case it can be any other file used by Apache. Find the line with the error in the file (in the example it is line 310) and the misspelled command (in the example it is “helpers”). Correct the error, or comment out the line adding the # symbol to its beginning.

Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration

Check if PHP has been installed on the server, using the following command:

php -v

If the result is positive, you will get the following response:

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

Then check if the PHP module has been connected to the Apache web server, using the following commands:

Command

Response

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

For Debian\Ubuntu OS: the PHP module will be enabled only if it is situated in the directory shown in bold characters in the table above. For Centos OS: check that the PHP module has been added in the /etc/httpd/conf.d/php.conf file for your Apache version. In the case of Apache-Prefork, the entry will be written as:

<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>

In the case of Apache-ITK:

<IfModule itk.c>
   LoadModule php5_module modules/libphp5.so
</IfModule>

If you get the following response after executing the command:

/usr/local/etc/apache22/httpd.conf:#LoadModule php5_module

it means that the PHP module is added, but the line is commented-out. Go to the file indicated in the response (in this case it is /usr/local/etc/apache22/httpd.conf) and remove the # symbol.

If PHP has not been installed on the web server, install it using the commands shown below.

Operating System Command
FreeBSD cd /usr/ports/www/mod_php55; make install clean
Debian\Ubuntu apt-get install libapache2-mod-php5

For Centos OS, the PHP module does not need to be installed separately. Check if there is the PHP library on the server, using this command:

ls /etc/httpd/modules/libphp5.so

If the system’s answer is positive, you will get the following response:

# ls /etc/httpd/modules/libphp5.so
/etc/httpd/modules/libphp5.so

This means that the library exists, and you need to set up the /etc/httpd/conf.d/php.conf file as described above.

If there is no PHP library on the server, install PHP using this command:

yum install php

Note that if PHP is already installed, and you perform this command anyway, it can result in installing a new PHP version!

Restart the Apache web server after the changes have been made.

Server reached MaxClients setting

server reached MaxClients setting, consider raising the MaxClients setting

The error is that the limit of concurrent connections to the server has been exceeded (the website is being loaded by more users than allowed in the configuration file). Change this limit in a corresponding file.

For FreeBSD this is

/usr/local/etc/apache22/extra/httpd-mpm.conf

For Debian/Ubuntu this is

/etc/apache2/apache2.conf
Apache Version <IfModule mpm_itk_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients <RequiredValue>
MaxRequestsPerChild 0
</IfModule>
Apache Prefork <IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients <RequiredValue>
MaxRequestsPerChild 0
</IfModule>

For Centos this is

/etc/httpd/conf/httpd.conf
Apache Version <IfModule itk.c>
StartServers 8
MinSpareServers 8
MaxSpareServers 10
MaxClients <RequiredValue>
MaxRequestsPerChild 1000
</IfModule>
Apache Prefork <IfModule prefork.c >
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients <RequiredValue>
MaxRequestsPerChild 0
</IfModule>

The optimal <RequiredValue> of the MaxClients parameter is calculated according to the formula:

MaxClients=(M-30%)/H,

where М is the server’s RAM capacity, and Н is the memory required by the httpd service.

For example, let httpd occupy 35 Mb, while RAM is 2 Gb (М=2Gb=2048Mb). Then, by the formula, (2048-30%)/35=40.96~41. MaxClients=41 is the optimal value that guarantees normal functioning of the server.

Restart the Apache web server after the changes have been made.


Out of memory

Fatal error: Out of memory

This error occurs if the server does not have enough RAM to load the site. You can decrease the MaxClients value as described above, but this is one of the possible reasons for lack of memory. A detailed analysis of the reason causing this error to occur is required.

Nginx Web Server

When Nginx is started, the following errors may occur and be displayed in the console.

Restarting nginx: nginx: [emerg] unknown directive "Basic" in /etc/nginx/nginx.conf:13
nginx: configuration file /etc/nginx/nginx.conf test failed

Unknown directive

The error occurs if an unknown directive is found in the configuration file. The file path is shown in the error message, in this example it is /etc/nginx/nginx.conf. Go to this directory, open nginx.conf and correct the error or comment-out the line. In this example you have to find line 13 of the given file, find the unknown “Basic” directive in it, and correct the error. To comment-out the line, place the # symbol in the beginning of it.


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

If such an error has occurred, you have to decrease the domain name length or the number of server names, because these figures are limited by the parameter values. You can also increase the values of these parameters:

server_names_hash_bucket_size  128;
server_names_hash_max_size 1024;

IP is not available(bind() to failed)

nginx: [emerg] bind() to 128.11.11.11:80 failed (49: Can't assign requested address)

This error means that the IP address specified in the configuration file is unrouteable. In this example it is 128.11.11.11, which actually does not exist in any interface of the server. Go to the Nginx configuration file (/etc/nginx/nginx.conf), find the “server” section, and correct the bad IP address. If a domain with such an address has not been found in nginx.conf, create the domain via the ISPmanager panel.

Return to category