从Fedora 39升级到41后CGI脚本tie行为异常求助
Fedora 39升级至41后Apache CGI脚本无法读取DB_File数据库的问题
将系统从Fedora 39升级到41后,我的Apache服务器(版本httpd-2.4.63-1.fc41.x86_64)出现异常。服务器使用userdir虚拟主机,在权限为755的public_html目录下运行CGI脚本,且已配置SSL。我尝试关闭SELinux排查问题,但异常仍然存在。
我有一个名为simpletest.cgi的测试脚本(升级前可正常运行):
require DB_File; print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>CGI Test Script</TITLE></HEAD>\n"; print "<BODY>\n"; print "Test\n"; tie %dbase, 'DB_File', "/<fullpath>/data/billyard_clean.db" or die "Can't open file: $!<br>\n"; print "(" . $dbase{"I14.NAME"} . ")<br>\n"; print "\n</BODY>\n</HTML>\n"; exit;
该脚本在命令行和Apache服务器中的运行结果不一致:
- 在脚本所在目录执行
perl -w simpletest.cgi,可得到预期输出:
Content-type: text/html <HTML><HEAD><TITLE>CGI Test Script</TITLE></HEAD> <BODY> Test (Andrew Philip /Billyard/)<br> </BODY> </HTML>
- 通过浏览器访问
https://<address>/~user/cgi-bin/simpletest.cgi时,代码在数据库tie行终止,仅输出:
<HTML><HEAD><TITLE>CGI Test Script</TITLE></HEAD> <BODY> Test
查看/var/log/httpd/ssl_error_log日志,发现错误信息为Read-only file system。我已确认SELinux处于关闭状态,且脚本在Apache下的运行用户与命令行执行时的用户一致。
恳请各位提供解决建议?
内容的提问来源于stack exchange,提问作者jaf0faj
相关产品推荐
相关产品推荐

