我花了 3-4 天的时间创建了具有不同 PHP 版本的虚拟主机。我希望主网站在 上运行PHP 7
(我使用了PHP 7.4
),子域名在 上运行PHP 5.6
。子域名网站太旧,不支持最新版本的 PHP。
但是,我已设法通过fcgi
方法安装了两个 PHP 版本(7.4 和 5.6),并能够配置以在两个版本中运行两个网站。我已检查 PHP 信息,它运行正常。
现在,我正在努力为这些网站启用 SSL。我使用了 Cloudflare,但问题是域名没有响应https
。在谷歌搜索后,我为 SSL 创建了另一个虚拟主机文件/etc/apache2/sites-available
,并输入了如下代码。但不起作用。
在我尝试安装自签名证书并在虚拟主机文件中使用其证书后。这也不起作用。我按照此文档获取自签名证书。 https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04
笔记:非 SSL URL 运行正常。问题出在 SSL URL 上。
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName dev.example.com
DocumentRoot /var/www/dev.example.com
# DirectoryIndex index.php
SSLEngine on
# default SSL certificate
# SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
# SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# self signed certificate
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
<Directory "/var/www/dev.example.com">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<FilesMatch \.php$>
# For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/dev.example.com_error.log
CustomLog ${APACHE_LOG_DIR}/dev.example.com_access.log combined
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>