2014-11-01 103 views
0

我正在建立一个基于CentOS 6.5的Apache V 2.2,并使用mod_ssl建立VPS。php未通过ssl解析

我的问题是PHP不解析通过SSL提供的页面。我/etc/httpd/conf.d/ssl.conf样子:

LoadModule ssl_module modules/mod_ssl.so 
Listen 443 
SSLPassPhraseDialog builtin 
SSLSessionCache   shmcb:/var/cache/mod_ssl/scache(512000) 
SSLSessionCacheTimeout 300 
SSLMutex default 

SSLRandomSeed startup file:/dev/urandom 256 
SSLRandomSeed connect builtin 
SSLCryptoDevice builtin 

<VirtualHost _default_:443> 
ErrorLog logs/ssl_error_log 
TransferLog logs/ssl_access_log 
LogLevel warn 
SSLEngine on 
SSLProtocol all -SSLv2 
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW 
SSLCertificateFile /etc/ssl/certs/example.crt 
SSLCertificateKeyFile /etc/ssl/certs/example.key 
SSLCertificateChainFile /etc/ssl/certs/chain.txt 

<Files ~ "\.(cgi|shtml|phtml|php3?)$"> 
    SSLOptions +StdEnvVars 
</Files> 
<Directory "/var/www/cgi-bin"> 
    SSLOptions +StdEnvVars 
</Directory> 
LoadModule ssl_module modules/mod_ssl.so 
Listen 443 
SSLPassPhraseDialog builtin 
SSLSessionCache   shmcb:/var/cache/mod_ssl/scache(512000) 
SSLSessionCacheTimeout 300 
SSLMutex default 
SetEnvIf User-Agent ".*MSIE.*" \ 
     nokeepalive ssl-unclean-shutdown \ 
     downgrade-1.0 force-response-1.0 
CustomLog logs/ssl_request_log \ 
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 
<Directory /var/www/example.com/public_html> 
     AllowOverride All 
     </Directory> 
     DocumentRoot /var/www/example.com/public_html 
     ServerName example.com 
</VirtualHost> 

任何想法会导致PHP不能解析通过SSL?

回答

0

所以我想出了我的问题是什么,也许这可以帮助别人。所以我的SSL Vhost是AllowOverride All,而我的非ssl Vhost是AllowOverride None。

当通过虚拟主机的AllowOverride启用了.htaccess文件中的所有设置,.htaccess文件有一条线是造成PHP失败:“AddHandler的应用程序/ X的httpd-PHP5 .PHP”

这是不正确,并在php.conf中覆盖正确的配置:“AddHandler php5-script .php”