使用Apache CGI运行Python文件时遭遇404错误求助
Apache CGI运行Python脚本出现404错误的解决方法
1. 修正重复冲突的Directory配置
你在apache2.conf中重复定义了/var/www/cgi-bin的目录配置,第二个Options All会覆盖第一个的ExecCGI设置,同时Apache 2.4已弃用Order allow,deny和Allow from all,换成Require all granted。将配置合并修正为:
<Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Require all granted AddHandler cgi-script .py </Directory>
2. 确保ScriptAlias映射正确
Apache需要通过ScriptAlias将URL中的/cgi-bin/映射到服务器本地目录,检查apache2.conf或/etc/apache2/sites-available/000-default.conf中是否存在以下配置,没有则添加:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
3. 修复文件与目录权限
404错误也可能是Apache用户(www-data)无法访问目标文件或目录导致:
- 设置cgi-bin目录权限:
sudo chmod 755 /var/www/cgi-bin - 给Python脚本添加执行权限:
sudo chmod +x /var/www/cgi-bin/hello.py - 变更目录与文件的所有者为Apache运行用户:
sudo chown -R www-data:www-data /var/www/cgi-bin
4. 启用CGI模块
确认Apache已启用cgi模块,未启用则执行:
sudo a2enmod cgi
执行后重启Apache服务:
sudo systemctl restart apache2
5. 验证文件路径
最后确认脚本确实存放在指定目录:
ls /var/www/cgi-bin/hello.py
若输出文件路径则说明位置正确,否则检查文件是否放错目录。
内容的提问来源于stack exchange,提问作者Saul Solis
相关产品推荐
相关产品推荐

