HTTP-сервер Perl & Apache: Невозможно связать MLDBM, когда скрипт cgi выполняется с сервера, но все в порядке, когда он выполняется из командной строки.Зачем? - PullRequest
0 голосов
/ 17 июня 2010

пожалуйста, помогите!Я действительно схожу с ума от этой проблемы!

У меня есть Perl-скрипт CGI, и он всегда завершается ошибкой в ​​следующей строке при выполнении с сервера Apache HTTP:

tie %db, 'MLDBM', "$data_path/$db_name.db", O_RDONLY, 0640 or die $!

и ошибкаОтказано в доступе:

Ошибка программного обеспечения:

Отказано в доступе в / var / www / cgi-bin / rich / pages / display line 381.

Для справкиПожалуйста, отправьте письмо веб-мастеру (root @ localhost), сообщив об этом сообщении об ошибке и указав время и дату ошибки.

Но при запуске из командной строки это работает без проблем.

Я гарантировал, что каталоги и файл для связывания имеют правильные разрешения.

Так что еще я пропустил?В каких конфигурациях в httpd.conf Apache я могу ошибаться?По общему признанию, у меня не было никакого предыдущего опыта работы с HTTP-сервером Apache, так что это мой первый опыт игры с ним.Тем не менее, я не раз читал руководства, чтобы найти вещи, в которых могу ошибаться, но ничего не заметил.Но я могу ошибаться, конечно.

Спасибо !!

1 Ответ

0 голосов
/ 17 июня 2010

Проверено ли, что $data_path и $db_name содержат то, что, по вашему мнению, они делают?

Является ли $data_path абсолютным путем, который не зависит от личности активного пользователя или домашнего каталога?

Что показывает ls -l $data_path/$db_name.db для владельца и прав доступа к файлу?

Я никогда не сталкивался (или не слышал) о том, что в apache не позволило бы процессу CGI иметь разрешение на открытие файлов, поэтомуЯ очень сомневаюсь, что это проблема конфигурации Apache.Скорее всего, он либо ищет неправильный файл, либо права доступа к файлу неверны для пользователя, который apache запускает процесс CGI как.

...