FastCGI 使用 apache - 不是脚本或权限错误?
FastCGI using apache - not a script or wrong permission?
我为 apache 编译了我的 fcgi,如下所示:
g++ fcgistart.c -lfcgi
我有一个 a.out
并使用
为 apache 配置它
a2enmod fastcgi
现在我读了 manual
Any program assigned to the handler fcgid-script is processed using the FastCGI protocol;
这是否意味着二进制文件是一个脚本?坏蛋!反正我把 a.out
放到 /var/www/html
.
因为处理程序 (/etc/apache2/mods-enabled/fastcgi.conf) 绑定到 .fcgi
我将 a.out
复制到 a.fcgi
。现在我浏览到 http://localhost/a.fcgi
和 403-forbidden occourse.
xx@xx:/var/www/html$ ls -la
drwxr-xr-x 2 root root 4096 Feb 6 13:44 .
drwxr-xr-x 3 root root 4096 Feb 6 12:56 ..
-rwxr-xr-x 1 root root 8696 Feb 6 13:44 a.fcgi
-rwxr-xr-x 1 root root 8696 Feb 6 13:16 a.out
-rw-r--r-- 1 root root 11321 Feb 6 12:57 index.html
怎么了?
我知道了:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
是错误的,我不得不添加ExecCGI
选项:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html>
Options +ExecCGI
</Directory>
</VirtualHost>
我为 apache 编译了我的 fcgi,如下所示:
g++ fcgistart.c -lfcgi
我有一个 a.out
并使用
a2enmod fastcgi
现在我读了 manual
Any program assigned to the handler fcgid-script is processed using the FastCGI protocol;
这是否意味着二进制文件是一个脚本?坏蛋!反正我把 a.out
放到 /var/www/html
.
因为处理程序 (/etc/apache2/mods-enabled/fastcgi.conf) 绑定到 .fcgi
我将 a.out
复制到 a.fcgi
。现在我浏览到 http://localhost/a.fcgi
和 403-forbidden occourse.
xx@xx:/var/www/html$ ls -la
drwxr-xr-x 2 root root 4096 Feb 6 13:44 .
drwxr-xr-x 3 root root 4096 Feb 6 12:56 ..
-rwxr-xr-x 1 root root 8696 Feb 6 13:44 a.fcgi
-rwxr-xr-x 1 root root 8696 Feb 6 13:16 a.out
-rw-r--r-- 1 root root 11321 Feb 6 12:57 index.html
怎么了?
我知道了:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
是错误的,我不得不添加ExecCGI
选项:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html>
Options +ExecCGI
</Directory>
</VirtualHost>