我将我的Apache安装程序更改为工作模式,suexec和fcgid,如本教程中所述: https ://wiki.hetzner.de/index.php/Apache_PHP5_fcgi_und_SuExec。
几乎一切正常。 我写了一个脚本,它为我设置了一切,并创build了证书,并使用ssl创build了vHostconfiguration。
您可以在下面看到一个典型的文件。 当我访问端口80上的服务器,一切工作正常。 当我通过https访问它时,使用来自pad.dblx.io的正确证书,而是显示默认vHost(dblx.io)的内容。
我现在正在search几个小时的错误,但找不到configuration错误。
你可以帮我吗?
cat /etc/apache2/sites-available/pad.dblx.io
<VirtualHost *:80> ServerAdmin xxx ServerName pad.dblx.io ServerAlias pad.dblx.io *.pad.dblx.io SuexecUserGroup xxx xxx AddHandler fcgid-script .php DocumentRoot "/var/www/pad.dblx.io/www" DirectoryIndex index.htm index.html index.php <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory "/var/www/pad.dblx.io/www"> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/pad.dblx.io/php-fcgi/php-fcgi-starter .php AllowOverride All Order allow,deny allow from all </Directory> LogLevel warn ErrorLog /var/www/pad.dblx.io/logs/error.log CustomLog /var/www/pad.dblx.io/logs/access.log combined ServerSignature On </VirtualHost> <VirtualHost *:443> ServerAdmin xxx ServerName pad.dblx.io ServerAlias pad.dblx.io *.pad.dblx.io SuexecUserGroup xxx xxx AddHandler fcgid-script .php DocumentRoot "/var/www/pad.dblx.io/www" DirectoryIndex index.htm index.html index.php <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory "/var/www/pad.dblx.io/www"> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/pad.dblx.io/php-fcgi/php-fcgi-starter .php AllowOverride All Order allow,deny allow from all </Directory> SSLEngine On SSLCertificateFile /var/www/pad.dblx.io/certs/pad.dblx.io.crt SSLCertificateKeyFile /var/www/pad.dblx.io/certs/pad.dblx.io.key LogLevel warn ErrorLog /var/www/pad.dblx.io/logs/error.log CustomLog /var/www/pad.dblx.io/logs/access.log combined ServerSignature off </VirtualHost>
cat / etc / apache2 / sites-available / default
<VirtualHost _default_:80> ServerAdmin xxx ServerName dblx.io ServerAlias dblx.io v220110896656016.yourvserver.net SuexecUserGroup xxx xxx AddHandler fcgid-script .php DocumentRoot "/var/www/dblx.io/www" DirectoryIndex index.htm index.html index.php <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory "/var/www/dblx.io/www"> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/dblx.io/php-fcgi/php-fcgi-starter .php AllowOverride All Order allow,deny allow from all </Directory> LogLevel warn ErrorLog /var/www/dblx.io/logs/error.log CustomLog /var/www/dblx.io/logs/access.log combined ServerSignature On </VirtualHost> <VirtualHost _default_:443> ServerAdmin xxx ServerName dblx.io ServerAlias dblx.io *.dblx.io SuexecUserGroup xxx xxx AddHandler fcgid-script .php DocumentRoot "/var/www/dblx.io/www" DirectoryIndex index.htm index.html index.php <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory "/var/www/dblx.io/www"> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/dblx.io/php-fcgi/php-fcgi-starter .php AllowOverride All Order allow,deny allow from all </Directory> SSLEngine On SSLCertificateFile /var/www/dblx.io/certs/dblx.io.crt SSLCertificateKeyFile /var/www/dblx.io/certs/dblx.io.key LogLevel warn ErrorLog /var/www/dblx.io/logs/error.log CustomLog /var/www/dblx.io/logs/access.log combined ServerSignature On </VirtualHost>
cat /etc/apache2/ports.conf
NameVirtualHost *:80 Listen 80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. NameVirtualHost *:443 Listen 443 SSLStrictSNIVHostCheck off </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
您的configuration为Apache正在侦听的所有IP的端口443指定了两个虚拟主机configuration。
如果没有TLS SNI,则不能有多个与NameVirtualHost指令相匹配的虚拟主机,并希望它工作。
如果您的设置不支持TLS服务器名称指示,那么您实际上仅限于每个IP一个TLS证书。
您将需要决定通过HTTPS来提供哪个站点,获取涵盖两者的证书并启用TLS SNI,或者获取更多IP,以便每个站点都拥有自己的IP。
在任何情况下,如果你要“添加更多的IP”路由,你可能会更好地指定这样的IP和端口:
<VirtualHost aaa.bbb.ccc.ddd:443> ... </VirtualHost>
如果你打算去SNI路线, 这个Apache维基页面可能值得一看。
我find了答案。
我创build了一个用于dblx.io的vHost,并将其复制到/ etc / apache2 / sites-available / default。
我忘了在SSL部分中删除通配符* .dblx.io作为ServerAlias。 这似乎导致了错误。 我改变了它现在工作:)
谢谢你的帮助。