Я получаю доступ запрещен (ошибка 403) при настройке нового псевдонима - PullRequest
40 голосов
/ 14 декабря 2011

Я использую Windows 7 и недавно установленный XAMPP для создания среды разработки. Я не очень хорошо разбираюсь в серверной части, поэтому у меня возникают проблемы с настройкой псевдонима для проекта.

Пока работает XAMPP, и если я перехожу на localhost, я получаю страницу приветствия XAMPP. Я создал папку «alias» в папке «conf» моей установки apache. Там я добавил dev.conf со следующим содержимым:

<Directory "C:\Users\my_user\My%20Documents\Aptana%20Studio%203%20Workspace\project">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from 127.0.0.1
</Directory>

Alias /dev "C:\Users\my_user\My%20Documents\Aptana%20Studio%203%20Workspace\project"

Но потом, когда я иду в "localhost / dev", я получаю:

Доступ запрещен!

У вас нет прав доступа к запрошенному объекту. Это либо защищен от чтения или не читается сервером.

Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.

Ошибка 403

Я попытался поискать в Google и нашел другие похожие вопросы по SO, но я не могу понять это. Некоторые говорят, что вы должны указать, что у него есть права доступа, но в моем файле conf я указал, что нужно разрешить его с 127.0.0.1. Возможно, это связано с тем, что в моем пути есть пробелы (хотя некоторые поиски подсказали мне работу% 20). Мне удалось создать его в другой папке, скопировать, вставить рабочую, изменить псевдоним и путь, и он сломался, поэтому он говорит мне, что, вероятно, имеет к этому какое-то отношение.

Я посмотрел в своей папке журнала и нашел следующую строку:

[вт дек 13 14:59:20 2011] [ошибка] [клиент :: 1] клиент отклонен конфигурация сервера: C: / Users / my_user / My% 20Documents

Я не уверен, что оно обрезается, потому что сообщения об ошибках могут быть только определенной длины, но это определенно не тот путь, который я добавил в файле dev.conf, я надеюсь, что это может сделать это немного понятнее для некоторых, потому что Я очень расстроен, и я не уверен, что пытаться больше.

Ответы [ 7 ]

78 голосов
/ 16 ноября 2012

Я только что обнаружил ту же проблему с псевдонимами при установке Windows Xampp.

Чтобы устранить ошибку 403:

<Directory "C:/Your/Directory/With/No/Trailing/Slash">
   Require all granted
</Directory>

Alias /dev "C:/Your/Directory/With/No/Trailing/Slash"

Настройка Xampp по умолчанию должна подойти только с этим,У некоторых людей возникли проблемы с запрещением, помещенным в корневой каталог, поэтому отображение тега каталога на:

<Directory "C:/Your/Directory/With/No/Trailing/Slash">
   Allow from all
   Require all granted
</Directory>

помогло бы с этим, но в текущей версии Xampp (v1.8.1 на момент написания статьи)не требует этого.

Что касается проблемы с портом 80, Xampp включает удобную кнопку Netstat, чтобы узнать, что использует ваши порты.Запустите это и устраните конфликт, я думаю, это мог быть IIS, но я не уверен.

28 голосов
/ 04 июля 2013

Я использую XAMPP с Apache2.4, у меня была такая же проблема. Я хотел оставить папку xampp / htdocs по умолчанию, иметь возможность доступа к ней из locahost и иметь виртуальный хост для указания на мою область разработки ...

Полное содержание моего C:\xampp\apache\conf\extra\http-vhosts.conf файла ниже ...

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#

##NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host2.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"
    ##ServerName dummy-host2.example.com
    ##ErrorLog "logs/dummy-host2.example.com-error.log"
    ##CustomLog "logs/dummy-host2.example.com-access.log" common
##</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "C:\nick\static"
    ServerName dev.middleweek.co.uk
    <Directory "C:\nick\static">
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

Затем я обновил свой C:\windows\System32\drivers\etc\hosts файл вот так ...

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1   dev.middleweek.co.uk
127.0.0.1       localhost

Перезагрузите компьютер для правильной работы, откройте панель управления XAMPP и запустите Apache.

Теперь откройте свой пользовательский домен в браузере, в приведенном выше примере это будет http://dev.middleweek.co.uk

Надеюсь, это кому-нибудь поможет!

И если вы хотите иметь возможность просматривать списки каталогов под вашим новым виртуальным хостом, то отредактируйте свой блок VirtualHost в C:\xampp\apache\conf\extra\http-vhosts.conf, добавив в него «индексы опций», как это ...

<VirtualHost *:80>
    DocumentRoot "C:\nick\static"
    ServerName dev.middleweek.co.uk
    <Directory "C:\nick\static">
        Allow from all
        Require all granted
        Options Indexes
    </Directory>
</VirtualHost>

Ура, Ник

20 голосов
/ 29 декабря 2013

Этот вопрос старый, и хотя вам удалось заставить его работать, но я чувствую, что было бы полезно, если бы я пояснил некоторые из вопросов, которые вы подняли здесь.

Сначала о имени каталога с пробелами.Я играл с файлами конфигурации apache2 и обнаружил, что если в имени каталога есть место, заключите его в двойные кавычки и все проблемы исчезнут.Например ...

    NameVirtualHost     local.webapp.org
    <VirtualHost local.webapp.org:80>
        ServerAdmin a.mhawila@gmail.com
        DocumentRoot "E:/Project/my php webapp"
        ServerName local.webapp.org
    </VirtualHost>

Обратите внимание на то, как написана строка DocumentRoot.

Второй - это доступ, запрещенный из xampp.Я обнаружил, что в конфигурации xampp по умолчанию (..path к xampp / apache / httpd.conf) есть раздел, который выглядит следующим образом:

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

Измените его и сделайте так, как показано ниже.Сохраните файл, перезапустите apache из xampp, и это решит проблему.

    <Directory>
       Options Indexes FollowSymLinks Includes ExecCGI
       AllowOverride none
       Require all granted
    </Directory>
13 голосов
/ 14 декабря 2012

попробуйте

sudo chmod -R 0777 / opt / lampp / htdocs / testproject

6 голосов
/ 14 декабря 2011

Я наконец заставил его работать.

Я не уверен, что пробелы в пути ломали вещи, но я изменил рабочее пространство моей установки Aptana на что-то без пробелов.

Затем я удалил XAMPP и переустановил его, потому что подумал, что, может быть, где-то сделал опечатку, не заметив, и подумал, что должен работать с нуля.

Оказывается, в Windows 7 есть служба, которая использует порт 80, который блокирует apache отСтартовая (давая ей -1) ошибка.Поэтому я изменил порт, который слушает порт 8080, больше никаких конфликтов.

Наконец Я перезапустил свой компьютер , по какой-то причине XAMPP не нравится, когда я возлюсь с ini-файлами и просто перезагружаю apacheне делал трюк.

Во всяком случае, это был самый разочаровывающий день когда-либо, поэтому я действительно надеюсь, что мой ответ в конечном итоге поможет кому-то!

3 голосов
/ 01 марта 2016

Взлом виртуальных хостов Apache 2.4

1. В http.conf укажите порты, ниже «Listen»

Listen 80
Listen 4000
Listen 7000
Listen 9000
  1. В httpd-vhosts.conf

    <VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html"  
    ServerName hitesh_web.dev
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    
    <Directory "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html">
    Allow from all
    Require all granted
    </Directory>
    
    </VirtualHost>
    

    это 2-й виртуальный хост

    <VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "E:/dabkick_git/DabKickWebsite"
    ServerName  www.my_mobile.dev
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    
    <Directory "E:/dabkick_git/DabKickWebsite">
     Allow from all
     Require all granted
     </Directory>
    </VirtualHost>
    
  2. В файле hosts.ics Windows OS «C: \ Windows \ System32 \ drivers \ etc \ host.ics»

    127.0.0.1             localhost
    127.0.0.1             hitesh_web.dev
    127.0.0.1             www.my_mobile.dev
    127.0.0.1             demo.multisite.dev
    

4. Теперь введите ваши «доменные имена» в браузере, он будет пинговать конкретную папку, указанную в пути к корневому каталогу документов

5.Если вы хотите получить доступ к этим файлам в определенном порту, замените 80 в httpd-vhosts.conf номерами портов, как показано ниже, и перезапустите apache

   <VirtualHost *:4000>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html"
ServerName hitesh_web.dev
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common

<Directory "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html">
Allow from all
Require all granted
</Directory>

</VirtualHost>

это второй vhost

<VirtualHost *:7000>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "E:/dabkick_git/DabKickWebsite"
ServerName  www.dabkick_mobile.dev
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common

<Directory "E:/dabkick_git/DabKickWebsite">
Allow from all
Require all granted
</Directory>
</VirtualHost>

Примечание: для номера порта, заданного для виртуальных хостов, вы должны пропинговать в браузере как «http://hitesh_web.dev:4000/” или «http://www.dabkick_mobile.dev:7000/

6.После всех этих изменений вам необходимо сохранить файлы и перезапустить Apache соответственно.

1 голос
/ 18 октября 2014

Если вы установили модуль в Xampp (в Linux) через Bitnami и изменили настройки chown, убедитесь, что для группы пользователей /opt/lampp/apps/<app>/htdocs и tmp установлено значение daemon со всеми другими файлами и папками одного уровня chownот имени пользователя, которого вы установили как, например, cd /opt/lampp/apps/<app>, sudo chown -R root:root ., за которым следует sudo chown -R root:daemon htdocs tmp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...