Доступ запрещен 403 ошибка в xampp

Я очень новичок в xampp. Я сделал новую установку xampp с помощью следующих команд.

sudo su
cd /tmp
wget bit.ly/1cmyrUo -O xampp-32bit.run
chmod 777 ./xampp-32bit.run
sudo ./xampp-32bit.run

Затем я создал файл perl, чтобы проверить, работает ли мой xampp. Следующее мое sample.pl содержимое файла.

#!usr/bin/perl
print "content-type:text/html\n";
print(header());
use CGI qw(:standard);
print(start_html());
print "Hello. I am ram";
print(end_html());

После копирования моего файла Perl из /home/vicky/desktop в /opt/lampp/cgi-bin,

Я запустил свой xampp с помощью следующей команды.

/opt/lampp/lampp start

Тогда я побежал мой sample.pl в localhost с помощью http://localhost/cgi-bin/sample.pl в моем браузере Mozilla. Я только что получил следующее окно.Окно ошибки 403

Я нашел только ответы, относящиеся к "новой ошибке концепции безопасности" и "проблеме с доступом к виртуальному хосту".

Я наткнулся на запрос аскубунту, ставку, аналогичную моей. У него не было ответов, но были некоторые комментарии. Один комментарий предложил изменить права доступа к файлу. Это направлено, чтобы получить помощь отсюда.

Он сказал, чтобы изменить разрешение каталога на 755 и разрешение файла на 644, чтобы решить этот вид проблемы. Когда я попытался это сделать, я узнал, что мой каталог cgi-bin уже имеет разрешение 755, и мой sample.pl было 644 разрешения. У меня сейчас нет решений.


PostScript: я приложил содержимое моего файла /opt/lampp/apache2/conf/httpd.conf. Надеюсь, что это поможет поставщикам ответов полностью понять мою проблему.

Alias /bitnami/ "/opt/lampp/apache2/htdocs/"
Alias /bitnami "/opt/lampp/apache2/htdocs"

<Directory "/opt/lampp/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory> 

4 ответа

Как я вижу из вашего вопроса, вы используете Apache 2.4.7, но ваш httpd.conf использует директиву Apache 2.2.

Согласно инструкции Apache 2.4:

Контроль доступа

В 2.2 управление доступом на основе имени хоста клиента, IP-адреса и других характеристик клиентских запросов осуществлялось с использованием директив Order, Allow, Deny и Satisfy.

В версии 2.4 такое управление доступом осуществляется так же, как и другие проверки авторизации, с использованием нового модуля mod_authz_host. Старые идиомы управления доступом должны быть заменены новыми механизмами аутентификации, хотя для совместимости со старыми конфигурациями предусмотрен новый модуль mod_access_compat.

Попробуйте это изменения:

<Directory "/opt/lampp/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory> 

Разрешить и запретить директиву контролирует, какие хосты могут или не могут получить доступ к области сервера, Require проверяет, авторизован ли аутентифицированный пользователь согласно определенному поставщику авторизации и указанным ограничениям. Требовать все предоставленные средства означает, что доступ разрешен безоговорочно, давайте посмотрим, кроме просто авторизации

Обновление после прочтения файла конфигурации:

Ваш файл конфигурации по умолчанию правильный. Проблема в неправильном шебанге в скрипте Perl.

Попробуй это:

  #!/usr/bin/perl

Также:

  chmod +x /opt/lampp/cgi-bin/yourScript.pl

Вот полезная ссылка о проблеме разрешения файла

Второе обновление

Изменить заголовок содержимого http:

  print "Content-type:text/html\n";

Этот заголовок прочитан apache.

У тебя apache работает как daemon Пользователь, проверьте, доступны ли для чтения все каталоги в пути к скрипту.

Попробуйте сменить владельца и группу для файлов на apache,

В Ubuntu пользователь apache - www-data, в терминале:

$ sudo chown -R www-data:www-data PUBLICFOLDER

И обновите браузер.

Чтобы решить эту проблему, вы должны обновить xampp до последней версии.

И снова запустите apache, он будет работать правильно.

$ cd /opt/lampp
$ sudo chmod 777 -R htdocs

И редактировать httpd.conf (с чем-то вроде sudoedit /opt/lampp/etc/httpd.conf) и изменить:

<Directory />
    AllowOverride none
    Require all denied
</Directory>

Для того, чтобы:

<Directory "/opt/lampp/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Другие вопросы по тегам