У меня странная проблема с запуском cgi из Apache.У меня есть следующий CGI:
#!"C:\xampp\perl\bin\perl.exe"
use File::Basename;
use Cwd 'chdir';
$DIR=dirname($0);
chdir $DIR;
print "Content-type: text/plain; charset=iso-8859-1\n\n";
#print $DIR;
$Result = `java -classpath . CONCATARR`;
print $result;
Этот CGI работает нормально из командной строки, но не из браузера.Из браузера java выдает следующую ошибку: Ошибка: не удалось найти или загрузить основной класс CONCATARR
Файл CONCATARR.class, конечно же, находится в папке cgi.Когда я распечатывал каталог, он тоже указывает на папку cgi.
В этом проблема, чтобы проверить это другим способом, я также сделал файл php:
<html> <head> <title>Test</title> </head>
<body> <?
chdir('C:/xampp/cgi-bin');
$output = shell_exec("java -classpath . CONCATARR");
echo $output;
?> </body> </html>
, который имеетта же проблема, работает нормально из командной строки, но не из браузера (та же ошибка).
Папка cgi-bin настроена в соответствии с рекомендациями руководства (фактически, выполняется cgi, сбой java ...), все файлы и папки внутри cgi-bin имеют права доступапосле прочтения и выполнения, службе Apache разрешено взаимодействие с рабочим столом.
Я пытался заставить его работать два дня и проверил десятки форумов, поэтому, вероятно, я пробовал больше вещей, которые сейчас не помню...
Любая помощь приветствуется.
Конфигурация: Windows Server 2008 R2, xammp.(Если для выяснения решения требуются дополнительные сведения, пожалуйста, спросите)
Изменить в ответ на первый ответ:
Спасибо за ответ, об этих трех вещахЯ думаю, у меня есть обложка их:
1: имя правильное и файл там, все с заглавными буквами.
2: .class имеет метод main, фактически он использовался ранее в системе iOS.Соответствующий .java этому классу начинается следующим образом:
import java.util.*;
import java.lang.*;
import java.net.URLDecoder;
class CONCATARR
{
public static void main( String args[] ) throws Exception
{
System.out.print("Content-type: text/xml\n");
System.out.print("Access-Control-Allow-Origin: *\n\n");
3: это файл httpd.conf (часть, касающаяся каталога cgi
ScriptAlias /cgi-bin/ "C:/xampp/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "C:/xampp/cgi-bin">
AllowOverride None
Options None FollowSymLinks
Order allow,deny
Allow from all
</Directory>
Файл ипапка имеет все права на чтение и выполнение для всех пользователей ...
Я что-то пропустил?