0
我配置了cgi-bin并试图运行C++目标文件,但不是在浏览器上显示结果,而是下载了可执行文件。C++可执行文件从浏览器下载而不是显示结果
步骤我都遵循:
步骤中的public_html和配置的public_html的cgi-bin。在终端
- $ sudo的运行以下命令a2enmod CGI
- $ sudo的a2enmod cgid进行
- $ sudo的a2enmod USERDIR
- $ sudo的服务的Apache2重启
- $的mkdir〜/的public_html
- $ CD 〜/ public_html
- $ mkdir cgi-bin
- $ cd/etc/apache2
- $ sudo的VIM网站可用/ 000-default.conf
- 添加下面的文本文件:
ScriptAlias /cgi-bin/ /home/*/public_html/cgi-bin/
<Directory "/home/*/public_html/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
SetHandler cgi-script
Order allow,deny
Allow from all
</Directory>
- $ sudo的服务的Apache2重启
在此之后,我创建了一个C++文件 与此代码
#include <iostream>
using namespace std;
int main()
{
cout << "Content-type:text/html \n\n";
cout << "Hello World - First CGI Program";
return 0;
}
编译和使用该
g++ -o example example.cpp
当我运行它在浏览器 http://localhost/~username/public_html/cgi-bin/example
的例子对象文件得到下载,而不是显示在浏览器中的结果链接它。
这看起来像是[配置'cgi-bin'的简单步骤](https://linuxconfig.org/simple-cgi-and-apache-examples-on-ubuntu-linux),它可能有你的答案。 –
(请原谅我的意见删除!)或许问题是可执行位不是为所有用户设置的 - 'chmod a + x example'是否有所作为?或者它已经是'rwxrwxr-x'之类的吗? –
是的,它是权限问题,现在可执行文件在浏览器上正常工作。谢谢。 –