我自己配置了我的Apache,并尝试在虚拟主机上加载phpMyAdmin,但我收到:

403 Forbidden您没有访问该服务器的权限

我的httpd . conf

#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path.  If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
# with ServerRoot set to "C:/Program Files (x86)/Apache Software Foundation/Apache2.2" will be interpreted by the
# server as "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/foo.log".
#
# NOTE: Where filenames are specified, you must use forward slashes
# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
# If a drive letter is omitted, the drive on which httpd.exe is located
# will be used by default.  It is recommended that you always supply
# an explicit drive letter in absolute paths to avoid confusion.

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to point the LockFile directive
# at a local disk.  If you wish to share the same ServerRoot for multiple
# httpd daemons, you will need to change at least LockFile and PidFile.
#
ServerRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2"

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:80

Include conf/vhosts.conf

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module "c:/Program Files/php/php5apache2_2.dll"

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon

</IfModule>
</IfModule>

# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.example
#
ServerAdmin webmaster@somenet.example

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.somenet.example:80

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "logs/error.log"

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    CustomLog "logs/access.log" common

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    #CustomLog "logs/access.log" combined
</IfModule>

<IfModule alias_module>
    #
    # Redirect: Allows you to tell clients about documents that used to
    # exist in your server's namespace, but do not anymore. The client
    # will make a new request for the document at its new location.
    # Example:
    # Redirect permanent /foo http://www.somenet.example/bar

    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.

    #
    # ScriptAlias: This controls which directories contain server scripts.
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #
    ScriptAlias /cgi-bin/ "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin/"

</IfModule>

<IfModule cgid_module>
    #
    # ScriptSock: On threaded servers, designate the path to the UNIX
    # socket used to communicate with the CGI daemon of mod_cgid.
    #
    #Scriptsock logs/cgisock
</IfModule>

#
# "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

#
# DefaultType: the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value.  If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#
DefaultType text/plain

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig conf/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    #AddHandler cgi-script .cgi

    # For type maps (negotiated resources):
    #AddHandler type-map var

    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)
    #
    #AddType text/html .shtml
    #AddOutputFilter INCLUDES .shtml

    AddType application/x-httpd-php .php
</IfModule>

#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type.  The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
#MIMEMagicFile conf/magic

#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.somenet.example/subscription_info.html
#

#
# MaxRanges: Maximum number of Ranges in a request before
# returning the entire resource, or one of the special
# values 'default', 'none' or 'unlimited'.
# Default setting is to accept 200 Ranges.
#MaxRanges unlimited

#
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall is used to deliver
# files.  This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
#
#EnableMMAP off
#EnableSendfile off

# Supplemental configuration
#
# The configuration files in the conf/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server, or you may simply copy their contents here and change as
# necessary.

# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf

# Multi-language error messages
#Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
#Include conf/extra/httpd-autoindex.conf

# Language settings
#Include conf/extra/httpd-languages.conf

# User home directories
#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration
#Include conf/extra/httpd-info.conf

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf

# Various default settings
#Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
#       starting without SSL on platforms with no /dev/random equivalent
#       but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

PHPIniDir "c:/Program Files/php"

和vhosts.conf:

NameVirtualHost 127.0.0.1:80

<VirtualHost 127.0.0.1:80>
    DocumentRoot i:/projects/webserver/__tools/phpmyadmin/
    ServerName dbadmin.tools
</VirtualHost>

本文在Apache 2.2上创建虚拟主机帮助我(第9点)获得顶级虚拟主机目录的权限。

我简单地将这几行添加到vhosts.conf文件中:

<Directory I:/projects/webserver>
    Order Deny,Allow
    Allow from all
</Directory>

还有另一种方法可以解决这个问题。假设你想访问目录“subphp”存在于/var/www/html/subphp,你想访问它使用127.0.0.1/subphp,你收到这样的错误:

您没有权限访问此服务器上的/subphp/。

然后将目录权限从“None”更改为“access files”。命令行用户可通过chmod命令修改权限。


我得到了同样的错误,无法解决这个问题的时间。如果您使用的Linux发行版包含SELinux(例如CentOS),则需要确保为文档根文件正确设置了SELinux权限,否则将出现此错误。这是一组与标准文件系统权限完全不同的权限。

我碰巧使用了Apache和SELinux教程,但一旦您知道要寻找什么,似乎有很多教程。


我通过将用户添加到httpd.conf解决了这个问题。

# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
#User daemon
User my_username
Group daemon

A common gotcha for directories hosted outside of the default /var/www/ is that the Apache user doesn't just need permissions to the directory and subdirectories where the site is being hosted. Apache requires permissions to all the directories all the way up to the root of the file system where the site is hosted. Apache automatically gets permissions assigned to /var/www/ when it's installed, so if your host directory is directly underneath that then this doesn't apply to you. Edit: Daybreaker has reported that his Apache was installed without correct access permissions to the default directory.

例如,你有一台开发机器,你的站点目录是:

/username/home/Dropbox/myamazingsite/

你可能认为你可以逃避:

chgrp -R www-data /username/home/Dropbox/myamazingsite/
chmod -R 2750 /username/home/Dropbox/myamazingsite/

因为这会给Apache访问您站点目录的权限?这是对的,但还不够。Apache要求权限一直向上到目录树,所以你需要做的是:

chgrp -R www-data /username/
chmod -R 2750 /username/

显然,我不建议在不分析目录结构的情况下,就在生产服务器上对Apache提供完整的目录结构的访问。对于产品来说,最好保持默认目录或其他目录结构,仅用于保存web资产。

Edit2:正如u/chimeraha指出的那样,如果你不确定你在使用权限做什么,最好将你的站点目录移出你的主目录,以避免潜在地锁定你自己的主目录。


我知道这个问题已经解决了,但我碰巧自己解决了这个问题。

的原因

禁止您没有访问此服务器的权限

实际上是httpd.conf中apache目录的默认配置。

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory "/">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all          # the cause of permission denied
</Directory>

简单地将Deny from all更改为Allow from all就可以解决权限问题。

或者,更好的方法是在虚拟主机配置上指定单独的目录权限。

<VirtualHost *:80>
    ....

    # Set access permission
    <Directory "/path/to/docroot">
        Allow from all
    </Directory>

    ....
</VirtualHost>

但是,从Apache-2.4开始,访问控制使用新的模块mod_authz_host(从2.2升级到2.4)。因此,应该使用新的Require指令。

<VirtualHost *:80>
    ....

    # Set access permission
    <Directory "/path/to/docroot">
        Require all granted
    </Directory>

    ....
</VirtualHost>

如果你正在使用WAMP服务器,那么试试这个:

在任务栏上单击WAMP服务器图标 选择放在网上的选项 服务器将自动重启 然后尝试访问当地的网站


我只在一个特定的控制器上遇到了同样的问题——这真的很奇怪。我在CI文件夹的根目录中有一个文件夹,它与我试图访问的控制器具有相同的名称……因此,CI将请求定向到这个目录,而不是控制器本身。

在删除这个文件夹后(这是一个错误),一切都工作正常。

为了更清楚,下面是它的样子:

/ci/controller/register.php

/ci/register/

我必须删除/ci/register/。


检查你把文件放在哪里,不要把它们嵌套在文档文件夹中。

例如,我犯了一个错误,把我的代码放在文档文件夹中,这是行不通的,因为文档明确地只对你可用,而不是APACHE。尝试向上移动一个目录,您可能不会看到这个问题。

移动文件夹:

\用户/ YOURUSERNAME文档/代码

到这里: /用户/ YOURUSERNAME /代码


再来看看我在这个问题上的另一个贡献:

我已经配置了一个我不想配置的VirtualHost。我已经注释掉了包含vhost的行,它工作了。


(Windows和Apache 2.2.x配套)

“Forbidden”错误也是没有定义虚拟主机的结果。

正如Julien所指出的,如果你打算使用虚拟hosts.conf,那么转到httpd文件并取消以下行注释:

#Include conf/extra/httpd-vhosts.conf

然后在conf/extra/httpd-vhosts.conf中添加您的虚拟主机定义,并重新启动Apache。


Apache 2.4中的一些配置参数发生了变化。我在设置Zend Framework 2应用程序时也遇到过类似的问题。经过一番研究,下面是解决方案:

不正确的配置

<VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /path/to/zf2-tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory /path/to/zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny #<-- 2.2 config
        Allow from all #<-- 2.2 config
    </Directory>
</VirtualHost>

正确的配置

<VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /path/to/zf2-tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory /path/to/zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Require all granted #<-- 2.4 New configuration
    </Directory>
</VirtualHost>

如果您计划从Apache 2.2迁移到2.4,这里有一个很好的参考:http://httpd.apache.org/docs/2.4/upgrading.html


修改配置文件后,不要忘记重新启动所有服务。

我在上面浪费了三个小时的时间。


在Ubuntu 14.04上使用Apache 2.4,我做了以下工作:

在apache2.conf文件(在/etc/apache2下)中添加以下内容:

<Directory /home/rocky/code/documentroot/>
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted
</Directory>

并重新加载服务器:

sudo service apache2 reload

编辑:这也适用于OS X Yosemite与Apache 2.4。最重要的台词是

要求全部批准


我也有同样的问题,但由于我在apache上更改了路径到var/www之外的文件夹,我开始遇到问题。

我通过在var/www/html > home/dev/project中创建一个符号链接来修复它,这似乎是一种技巧,而无需更改任何权限…


如果您正在使用MAMP Pro,解决这个问题的方法是检查主机扩展选项卡下的索引复选框。

在MAMP Pro v3.0.3中,是这样的:


如果您正在使用CentOS和SELinux尝试:

sudo restorecon -r /var/www/html

查看更多信息:https://www.centos.org/forums/viewtopic.php?t=6834#p31548


试试这个,不要添加任何订单允许,拒绝和其他:

AddHandler cgi-script .cgi .py 
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Require all granted
    Allow from all
</Directory>

 

sudo a2enmod cgi
sudo service apache2 restart

我遇到了这个问题,我的解决方案是www-data没有拥有正确的文件夹,而是将它设置为一个用户拥有它。(我试图做一点花哨的,但错误的伎俩,让ftp发挥得很好。)

在运行:

chown -R www-data:www-data /var/www/html

机器又开始提供数据了。您可以通过的方式查看当前拥有该文件夹的人

ls -l /var/www/html

使用Apache 2.2

Order Deny,Allow
Allow from all

使用Apache 2.4

Require all granted

从http://httpd.apache.org/docs/2.4/en/upgrading.html


你可以像下面这样修改你的alias.conf文件:

Alias /Quiz/ "h:/MyServer/Quiz/" 
 <Directory "h:/MyServer/Quiz/">
   Options Indexes FollowSymLinks
   AllowOverride all
   <IfDefine APACHE24>
     Require local
   </IfDefine>
   <IfDefine !APACHE24>
    Order Deny,Allow
    Deny from all
    Allow from localhost ::1 127.0.0.1
   </IfDefine>
 </Directory>

记住,在这种情况下要配置的正确文件不是phpMyAdmin别名中的httpd.conf,而是bin/apache/your_version/conf/httpd.conf。

看看下面这行:

DocumentRoot "c:/wamp/www/"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

确保它被设置为允许从所有…

如果不能,phpMyAdmin甚至可以工作,但根目录和它下面的其他文件夹不能工作。另外,记得重新启动WAMP,然后上线…

这解决了我的头痛。


在运行docker构建之前,我使用SSHFS从本地文件系统挂载VirtualBox客户机中的文件时遇到了这个问题。最后,“修复”是将所有文件复制到VirtualBox实例,而不是从SSHFS挂载内部构建,然后从那里运行构建。


工作方法(除非没有其他问题)

默认情况下,Apache不限制从IPv4(公共外部IP地址)访问。

受到限制的是'httpd.conf'中给出的命令。

替换所有

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

with

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

因此消除了对Apache的所有限制。

将Require local替换为Require all granting for C:/wamp/www/目录

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
    # Require local
</Directory>

这很荒谬,但是当我试图下载的文件不在文件系统中时,我得到了403 Forbidden。apache错误在这种情况下不是很准确,在我简单地把文件放在它应该在的地方之后,整个事情就工作了。


我使用Mac OS X,在我的情况下,我只是忘记在apache中启用php,我所需要做的就是取消/etc/apache2/httpd.conf中的一行注释:

LoadModule php5_module libexec/apache2/libphp5.so

详情请参考这篇文章。


我们已经启用了modsec,检查站点的错误日志中的modsec ID,然后在vhost(或。htaccess)中输入文件的位置匹配:

 <LocationMatch "/yourlocation/index.php">
    <IfModule security2_module>
        SecRuleRemoveById XXXXXXX
    </IfModule>
</LocationMatch>

这个解决办法不完全可行

我只是想更改我的公共目录www,从我的PC和Wifi连接的手机上访问它。我有Ubuntu 16.04。

So, first, I modified /etc/apache2/sites-enabled/000-default.conf and I changed the line DocumentRoot /var/www/html for my new public directory DocumentRoot "/media/data/XAMPP/htdocs" Then I modified /etc/apache2/apache2.conf, and I put the permissions for localhost, and my mobile, this time I used the IP address, I know it is not completely safe, but it's OK for my purposes. <Directory/> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from localhost 10.42.0.11 </Directory>


只是在这个不断增长的列表中添加另一个潜在的问题,我的问题(运行CentOS 6.8)是一个特定的虚拟主机,在另一个服务器上正常工作,问题原来是使用mod_rewrite的错误的.htaccess文件:

在.htaccess中,这会导致403错误: < IfModule mod_rewrite.c > RewriteEngine上 RewriteBase / < / IfModule >

添加FollowSymLinks作为第一行修复了这个问题: < IfModule mod_rewrite.c > + FollowSymLinks选项 RewriteEngine上 RewriteBase / < / IfModule >


权限错误

一些像我这样的新手用户在页面中设置了不正确的权限时(特别是“其他”用户没有读取权限)就会遇到这个问题。例如,假设您试图访问index.html,并得到上述错误。要修复,输入:

chmod o+r index.html

然后再次上传到服务器。错误消失了。


RiggsFolly在其他地方简单地回答了我这个问题:

在apache conf文件夹中编辑httpd-vhost.conf:

在目录嵌套中添加这一行:

Require ip 192.168.1

重新启动服务器,apache或Wamp或任何你拥有的。

就这样,现在你所有的HOME设备(ip范围192.168.1.xxx)都可以看到你的PC服务器了。注意,您只添加ip number的前3部分)。

如有问题,请退出防火墙进行测试。

要看到你的网络设备的ip号码,下载一个“ip扫描仪”软件(相当多的免费的),为PC或android从play商店获取。


    I changed 
    Order Deny,Allow
    Deny From All      in .htaccess to   " Require all denied "    and restarted apache but it did not help.

ubuntu中apache2.conf的路径为“/etc/apache2/apache.conf”

然后我在apache2.conf中添加了以下行,然后我的文件夹就正常工作了

    <Directory /path of required folder>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
       </Directory>

   and run  " Sudo service apache2 restart " 

我知道这个问题已经有几个答案了,但我认为有一个非常微妙的方面,虽然提到了,但在之前的答案中没有足够突出。

在检查Apache配置或文件权限之前,让我们做一个简单的检查,以确保组成你想要访问的文件完整路径的每个目录(例如,文档根目录中的index.php文件)不仅可读,而且web服务器用户还可以执行。

例如,假设你的文档根目录的路径是“/var/www/html”。你必须确保所有的“var”,“www”和“html”目录都是web服务器用户(可读)可执行的。在我的情况下(Ubuntu 16.04),我错误地从“html”目录中删除了“others”组的“x”标志,因此权限看起来像这样:

drwxr-xr-- 15 root root 4096 Jun 11 16:40 html

正如你所看到的,web服务器用户(在这种情况下,“其他人”权限适用)没有对“html”目录的执行访问权,这正是问题的根源。发出后:

chmod o+x html

指挥部,问题解决了!

在解决这个问题之前,我已经尝试了这篇文章中的所有其他建议,由于这个建议隐藏在一个我几乎是偶然发现的评论中,我认为在这里突出并扩展它可能会有所帮助。