当使用php5自带的file_get_contents方法来获取远程文件的时候(在我的自动化测试框架中有类似调用需求),有时候会出现file_get_contents(): failed to open stream: HTTP request failed!这个警告信息。 解决的方法都是修改php.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On 这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。 但是有些还是会有这个警告信息,想用完美的解决还差一步,还得设置php.ini里面的user_agent,php默认的user_agent是 PHP,我们把它改成Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.0)来模拟浏览器就可以了,user_agent=”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)” #ErrorDocument 404 /404/404.html #ErrorDocument 403 /404/403.html Order allow,deny Deny from all LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so LoadModule filter_module modules/mod_filter.so Listen 443 DocumentRoot "E:\phpStudy171228\WWW" ServerName www.wzrzys.com ServerAlias wzrzys.com SSLEngine on # 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile cert/public.pem # 证书私钥配置 SSLCertificateKeyFile cert/214400101740964.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile cert/chain.pem Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted ③、在最后添加下面4条语句,开启http强制转https,如果需要http和https都支持可不加。 RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{REQUEST_URI} !^/tz.php RewriteRule (.*) https://%{SERVER_NAME}/$1 [R] 2、ssl.conf的配置文件需要修改的地方如下: ①、DocumentRoot “/var/www/html” (去掉注释‘#’) ②、ServerName kormee.freenat.club (去掉注释并改成自己的域名) ③、SSLEngine on ④、SSLCertificateFile /etc/httpd/conf/ssl/full_chain.pem (full_chain.pem证书文件路径) ⑤、SSLCertificateKeyFile /etc/httpd/conf/ssl/private.key(private.key证书文件路径) ------------------------------- # General setup for the virtual host DocumentRoot "C:/wamp64/www/houtai"//修改成自己的 ServerName www.fdsfd.com:443//修改成自己的 ServerAdmin admin@localhost.com ErrorLog "C:/wamp64/bin/apache/apache2.4.41/logs/error.log"//修改成自己的 TransferLog "C:/wamp64/bin/apache/apache2.4.41/logs/access.log"//修改成自己的 SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on SSLCertificateFile C:/wamp64/bin/apache/apache2.4.41/conf/ssl/0000234_fdsfd.com_public.crt//修改成自己的 SSLCertificateKeyFile C:/wamp64/bin/apache/apache2.4.41/conf/ssl/0000234_fdsfd.com.key//修改成自己的 SSLCertificateChainFile C:/wamp64/bin/apache/apache2.4.41/conf/ssl/0000234_fdsfd.com_chain.crt//修改成自己的 这个中间还有很多的代码和注释,不要随便添加和删除 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 这个时候保存文件后,重新启动apache,发现还是不能启动,不要着急,还回到这个文件中,找到SSLCertificateFile "SRVROOT/conf/server.crt",注释掉,再找到SSLCertificateKeyFile"SRVROOT/conf/server.crt",注释掉,再找到SSLCertificateKeyFile"{SRVROOT}/conf/server.key,注释掉,再找到SSLCertificateChainFile “${SRVROOT}/conf/server-ca.crt”,注释掉,要是已经注释了就不用了,这个时候保存文件,重新启动所有服务,就可以启动成功,外放也可以用https访问自己备案好的域名了。在文件中注意自己的文件路径和“/”,本人亲测,希望能帮到大家。 ----------------------------------------- 2021.2.23 17:55 将日志文件按照每天生成一个 Windows系统下配置方法: 在apache的配置文件httpd.conf中找到 ErrorLog logs/error_log CustomLog logs/access_log common 修改为: ErrorLog "|c:/myfiles/Apache24/bin/rotatelogs.exe c:/myfiles/Apache24/logs/error_%Y_%m_%d.log 86400 480" CustomLog "|c:/myfiles/Apache24/bin/rotatelogs.exe c:/myfiles/Apache24/logs/access_%Y_%m_%d.log 86400 480" common oss 8d6qlDNhEC8RzbqX GzHvcQxyNijUhb2L3YOjHmm5UROcqU http://update2.aegis.aliyun.com/download/install/2.0/windows/AliAqsInstall.exe 实时会话“AegisFileSession”的备份文件已达到其最大大小。因此,在有可用空间之前,无法将事件记录到此会话。以实时模式启动跟踪会话,但没有任何实时使用者时,常常会导致此错误。