Я использую Debian 7 Wheezy и Apache 2.2.22, и я настраиваю виртуальные хосты для ряда веб-сайтов на своем VPS. Я успешно настроил директивы VirtualHost для одного из сайтов, но второй постоянно выдает в Firefox «Страница проблем с загрузкой». Я бегал configtest
и он подтвердил, что весь мой синтаксис верен, и я проверил все разрешения. Все во втором домене в значительной степени скопировано / вставлено из первого, поэтому я не уверен, в чем проблема, поскольку нет записей в /var/log/apache2/error.log
кроме того, где я перезагрузил конфигурации:
/# cat /var/log/apache2/error.log
[Thu May 29 01:19:00 2014] [notice] Graceful restart requested, doing restart
[Thu May 29 01:19:00 2014] [info] Init: Seeding PRNG with 656 bytes of entropy
[Thu May 29 01:19:00 2014] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Thu May 29 01:19:00 2014] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(253): shmcb_init allocated 512000 bytes of shared memory
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(272): for 511920 bytes (512000 including header), recommending 32 subcaches, 133 indexes each
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(306): shmcb_init_memory choices follow
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(308): subcache_num = 32
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(310): subcache_size = 15992
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(312): subcache_data_offset = 3208
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(314): subcache_data_size = 12784
[Thu May 29 01:19:00 2014] [debug] ssl_scache_shmcb.c(316): index_num = 133
[Thu May 29 01:19:00 2014] [info] Shared memory session cache initialised
[Thu May 29 01:19:00 2014] [info] Init: Initializing (virtual) servers for SSL
[Thu May 29 01:19:00 2014] [info] mod_ssl/2.2.22 compiled against Server: Apache/2.2.22, Library: OpenSSL/1.0.1e
[Thu May 29 01:19:00 2014] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u9 mod_ssl/2.2.22 OpenSSL/1.0.1e mod_perl/2.0.7 Perl/v5.14.2 configured -- resuming normal operations
[Thu May 29 01:19:00 2014] [info] Server built: Mar 4 2013 22:05:16
[Thu May 29 01:19:00 2014] [debug] prefork.c(1023): AcceptMutex: sysvsem (default: sysvsem)
Я обеспечил включение каждого виртуального хоста с помощью a2ensite {sitename.conf}
без ошибок и там.
Ниже представлено содержимое файлов конфигурации ...
/etc/apache2/apache2.conf
# Global configuration
#
LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
##
## Server-Pool Size Regulation (MPM specific)
##
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
# graceful restart. ThreadLimit can only be changed by stopping
# and starting Apache.
# ThreadsPerChild: constant number of worker threads in each server process
# MaxClients: maximum number of simultaneous client connections
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
# event MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxClients: maximum number of simultaneous client connections
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
#
AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
DefaultType None
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel debug
# Include module configuration:
Include mods-enabled/*.load
Include mods-enabled/*.conf
# Include list of ports to listen on and which to use for name based vhosts
Include ports.conf
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
#
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
<Directory "/var/www">
Order allow,deny
Allow from all
Require all granted
</Directory>
# Include generic snippets of statements
Include conf.d/
# Include the virtual host configurations:
Include sites-enabled/*.conf
NameVirtualHost *:80
/etc/apache2/sites-available/site1.net.conf
<VirtualHost *:80>
ServerName site1.net
ServerAlias site1.net *.site1.net
DocumentRoot "/var/www/site1"
ErrorLog "/var/www/site1/logs/error.log"
CustomLog "/var/www/site1/logs/access.log" vhost_combined
<Directory "/var/www/site1">
Options None
AllowOverride All
Order allow,deny
Allow from all
Satisfy Any
</Directory>
</VirtualHost>
/etc/apache2/sites-available/site2.com.conf
<VirtualHost *:80>
ServerName site2.com
ServerAlias site2.com *.site2.com
DocumentRoot "/var/www/site2"
ErrorLog "/var/www/site2/logs/error.log"
CustomLog "/var/www/site2/logs/access.log" vhost_combined
<Directory "/var/www/site2">
Options None
AllowOverride All
Order allow,deny
Allow from all
Satisfy Any
</Directory>
</VirtualHost>
Я также пробовал установить NameVirtualHost, например:
Listen 80
NameVirtualHost 23.88.121.82:80
NameVirtualHost 127.0.0.1:80
и директивы VirtualHost:
<VirtualHost 23.88.121.82:80>
...
</VirtualHost>
для обоих сайтов, но это также приводит к сбою первого сайта.
Мне интересно, нужно ли мне настраивать отдельные IP-адреса для каждого сайта, возможно? У меня есть еще 2 адреса IPv4 и 3 адреса IPv6, если это будет иметь значение. Кроме того, по большому счету, мне нужно будет включить SSL для первого сайта. Я читал, что мне нужно просто имитировать директивы для прослушивания порта 80, только на порту 443, и убедиться, что mod_ssl включен?
РЕДАКТИРОВАТЬ: Я только что сбежал apache2 -t
чтобы таким образом протестировать файлы конфигурации и получить ошибку: apache2: bad user name ${APACHE_RUN_USER}
. Тем не мение, apachectl configtest
возвращается Syntax OK
. Однако нигде больше нет упоминаний об ошибках с мьютексом. Я был почти уверен, что если бы произошла ошибка с пользователем, под которым должен был работать apache, сервер вообще не запустился бы ...
РЕДАКТИРОВАТЬ 2: Перезапуск apache исправил ошибку неверного имени пользователя.
Оказывается, возникла проблема с настройками DNS, и вся конфигурация Apache верна. : /