web-dev-qa-db-ja.com

Xamppアクセス禁止php

私はWindowsユーザーです。私はかなり長い間xamppを使用していますが、突然.phpファイルが動作しなくなりました!このエラーメッセージが表示されます。


アクセス禁止!

要求されたオブジェクトにアクセスする権限がありません。サーバーによって読み取り保護されているか、読み取り可能ではありません。

これがサーバーエラーだと思われる場合は、ウェブマスターにお問い合わせください。

エラー403

localhost Apache/2.4.4(Win32)OpenSSL/0.9.8y PHP/5.4.16


Localhost/Practiceで.phpファイルのリストを確認できます(Practiceはファイルを保存したフォルダーです)。クリックするとファイルが開きます。しかし、ファイル内の「送信」ボタンをクリックすると、このエラーが発生します。助けてください! xamppを1.8.1から1.8.2に更新しましたが、それでも同じ問題が解決しません!

47
NirAv JaIn

以下のこのコードを試して、仮想ホスト構成に追加してください。次の行をhttpd-vhosts.confファイルに追加します。

<Directory "c:/<path-to-projects>/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted
</Directory>

この方法で同じ問題を修正しました。それが役に立てば幸い。

104
Tho Vo

ubuntuのオペレーティングシステムを使用している場合は、/ Practiceフォルダのchmodをチェックして、読み取り/書き込み許可を変更します

ターミナルを押してショートカットキーCtrl+Alt+T Gotoを押します

$ cd/opt/lampp/htdocs /

chmodコマンドを使用して、フォルダーの読み取り、書き込み、実行の許可を変更します。

たとえば、フォルダー名はプラクティスであり、フォルダー/ opt/lampp/htdocs/practiceのパスです

タイプコマンド

$ Sudo chmod 777 -R Practice

chmodおよび777とは何ですか?このリンクをご覧ください http://linuxcommand.org/lts0070.php

11
rahuldm

これを解決する方法は、最初にエラーログを正しくセットアップすることでした。

<VirtualHost *:80>
    DocumentRoot "D:/websites/test/"
    ServerName test.dev
    ErrorLog "D:/websites/test/logs/error.log"
    CustomLog "D:/websites/test/logs/access.log" common
    <Directory D:/websites/test/>  
        AllowOverride none
        Require all granted  
    </Directory>
</VirtualHost>

このエラーが「D:/ websites/test/logs /」にログインした後、ログフォルダーを自分で作成してください。エラーログに記録された正確なエラーは

AH01630:サーバー構成によりクライアントが拒否されました:

このリンク を使用して解決策を修正するように指示しました

Require all granted 

必要とされている。上の私のサンプルサンプルコードは、ところで問題を修正します。

5
Hammad Khan

私はubuntu 16.04を使用してxamppを使用しています-それは私のためにうまく機能しています

<VirtualHost *:80>
    DocumentRoot "/opt/lampp/htdocs/"
    ServerAdmin localhost
    <Directory "/opt/lampp/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
3
Raj Kumar

Xamppフォルダーxampp/Apache/conf/extra/httpd-xampp.c­onfに移動します

最後の段落を編集します。

#close XAMPP sites here 
.
.
.
Deny from all
.
.

#close XAMPP sites here 
.
.
.
Allow from all
.
.

またはこのビデオをご覧ください: http://www.youtube.com/watch?v=ZUAKLUZa-A

3
Florian Braun

Htdocsフォルダーをxamppフォルダーの外に移動すると、この問題が発生しました。これを行う場合、httpd.confのドキュメントルートを変更する必要があります。 https://stackoverflow.com/a/1414/3543329 を参照してください。

1
MrMadsen

私にとって、それは次のように即座に解決されました

  1. C:\ xampp\Apache\conf\extraに移動します
  2. ファイルhttpd-xampp.conf内の編集
  3. 次のようにファイルを編集します。

cont + fで次の行を見つけます。

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>

ローカルのみを変更---->すべて許可されるため、このようになります

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>

この後、localhostはエラーの表示を停止し、管理パネルを表示します。私はこのソリューションをビデオで見つけました: https://www.youtube.com/watch?v=MvYyEPaNNhE

1
miberg81

同じ問題がありました。だから私は覚えていた。昨日、htttp-xampp.confでこのコードをコメントしました

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
#        AllowOverride AuthConfig
#        Require local
#        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>

だから、ローカルホストをローカルに要求するので、同じネットワーク上の他のシステム(LAN/WIFI)を使用してローカルホストにアクセスできます。

だから私はそれを次のようにします

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
        AllowOverride AuthConfig
#        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>

そして今、私のローカルマシンで動作し、ローカルホストは同じLAN/WIFI上の他のシステムを使用してアクセスできます。

0
Seetpal singh

私の場合、DrupalインスタンスをサーバーからXAMPPのlocalhostにエクスポートしました。それは明らかにファイルとディレクトリの所有権を正当化せず、Apacheは上記のエラーを投げていました。

これは、最初はファイルとディレクトリの所有権です。

enter image description here

ファイルの読み取り権限とディレクトリの実行権限を付与するには、すべてのユーザーが読み取り、書き込み、実行できるようにします。

Sudo chmod 777 -R

しかし、これは理想的なソリューションではありません。これはサーバーに移行され、セキュリティの抜け穴になる可能性があるためです。

このブログにはスクリプトが記載されています。 https://www.drupal.org/node/244924

#!/bin/bash

# Help menu
print_help() {
cat <<-HELP
This script is used to fix permissions of a Drupal installation
you need to provide the following arguments:

  1) Path to your Drupal installation.
  2) Username of the user that you want to give files/directories ownership.
  3) HTTPD group name (defaults to www-data for Apache).

Usage: (Sudo) bash ${0##*/} --drupal_path=PATH --drupal_user=USER --httpd_group=GROUP
Example: (Sudo) bash ${0##*/} --drupal_path=/usr/local/Apache2/htdocs --drupal_user=john --httpd_group=www-data
HELP
exit 0
}

if [ $(id -u) != 0 ]; then
  printf "**************************************\n"
  printf "* Error: You must run this with Sudo or root*\n"
  printf "**************************************\n"
  print_help
  exit 1
fi

drupal_path=${1%/}
drupal_user=${2}
httpd_group="${3:-www-data}"

# Parse Command Line Arguments
while [ "$#" -gt 0 ]; do
  case "$1" in
    --drupal_path=*)
        drupal_path="${1#*=}"
        ;;
    --drupal_user=*)
        drupal_user="${1#*=}"
        ;;
    --httpd_group=*)
        httpd_group="${1#*=}"
        ;;
    --help) print_help;;
    *)
      printf "***********************************************************\n"
      printf "* Error: Invalid argument, run --help for valid arguments. *\n"
      printf "***********************************************************\n"
      exit 1
  esac
  shift
done

if [ -z "${drupal_path}" ] || [ ! -d "${drupal_path}/sites" ] || [ ! -f "${drupal_path}/core/modules/system/system.module" ] && [ ! -f "${drupal_path}/modules/system/system.module" ]; then
  printf "*********************************************\n"
  printf "* Error: Please provide a valid Drupal path. *\n"
  printf "*********************************************\n"
  print_help
  exit 1
fi

if [ -z "${drupal_user}" ] || [[ $(id -un "${drupal_user}" 2> /dev/null) != "${drupal_user}" ]]; then
  printf "*************************************\n"
  printf "* Error: Please provide a valid user. *\n"
  printf "*************************************\n"
  print_help
  exit 1
fi

cd $drupal_path
printf "Changing ownership of all contents of "${drupal_path}":\n user => "${drupal_user}" \t group => "${httpd_group}"\n"
chown -R ${drupal_user}:${httpd_group} .

printf "Changing permissions of all directories inside "${drupal_path}" to "rwxr-x---"...\n"
find . -type d -exec chmod u=rwx,g=rx,o= '{}' \;

printf "Changing permissions of all files inside "${drupal_path}" to "rw-r-----"...\n"
find . -type f -exec chmod u=rw,g=r,o= '{}' \;

printf "Changing permissions of "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
cd sites
find . -type d -name files -exec chmod ug=rwx,o= '{}' \;

printf "Changing permissions of all files inside all "files" directories in "${drupal_path}/sites" to "rw-rw----"...\n"
printf "Changing permissions of all directories inside all "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
for x in ./*/files; do
  find ${x} -type d -exec chmod ug=rwx,o= '{}' \;
  find ${x} -type f -exec chmod ug=rw,o= '{}' \;
done
echo "Done setting proper permissions on files and directories"

そして、コマンドを呼び出す必要があります:

Sudo bash /Applications/XAMPP/xamppfiles/htdocs/fix-permissions.sh --drupal_path=/Applications/XAMPP/xamppfiles/htdocs/rkmission --drupal_user=daemon --httpd_group=admin

私の場合、Apacheを実行しているユーザーは「デーモン」です。 localhostを介してphpファイルでこのphpスクリプトを実行するだけで、ユーザーを識別できます。

<?php echo exec('whoami');?>

以下は、Drupalの適切なファイル権限を持つ適切なユーザーです。

enter image description here

サーバーに戻された後、元に戻す必要があるかもしれません!

0

動作を停止する前に、仮想ホスト上の何かを変更しましたか?

この行をxampp/Apache/conf/extra/httpd-vhosts.confに追加します

<VirtualHost localhost:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerAdmin localhost
    <Directory "C:/xampp/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
0
Chinedu
A. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
B. <Directory />
    AllowOverride none
    Require all denied
</Directory>

次と置換:

A. LoadModule vhost_alias_module modules/mod_vhost_alias.so
B:
<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

FromE:\ xamp ** Apache\conf/httpd.conf **

0
user1476842