web-dev-qa-db-ja.com

Apache2を使用したローカルホストでのアクセス禁止

これが私がやろうとしていることです。

Apacheに別のフォルダーを追加しようとしましたが、testing/index.htmlにアクセスしようとすると次のエラーが発生します。

アイデアは、すべての顧客に/home/neagoe/Work/InterWebs/Projects/[PROJECT NAME]/CustomerProjects/website/distのようなフォルダを用意したいということです。

Forbidden

You don't have permission to access /index.html on this server.
Apache/2.2.22 (Ubuntu) Server at testing Port 80

これが私が従ったステップです:

ステップ1:

Sudo chmod a+x /home/neagoe/Work/InterWebs/Projects/testing/CustomerProjects/website/dist

ステップ2:

Sudo chown -R www-data:www-data /home/neagoe/Work/InterWebs/Projects/testing/CustomerProjects/website/dist

Sudo chmod -R 775 /home/neagoe/Work/InterWebs/Projects/testing/CustomerProjects/website/dist

ステップ3:

Sudo adduser $USER www-data

ステップ4:

Sudo a2enmod userdir

ステップ5:

Sudo cp /etc/Apache/sites-available/default /etc/Apache/sites-available/testing

ファイル/etc/Apache/sites-available/testingを編集したので、次のようになります。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName testing
    DocumentRoot /home/neagoe/Work/InterWebs/Projects/testing/CustomerProjects/website/dist

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /home/neagoe/Work/InterWebs/Projects/testing/CustomerProjects/website/dist/ >
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${Apache_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

ステップ6:

ホスト( "/ etc/hosts")を編集したので、次のようになります。

127.0.0.1       localhost 
127.0.0.1       testing


# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

ステップ7:

Sudo a2ensite testing
Sudo service Apache2 restart

インターネットで約2時間検索しましたが、何が悪かったのかわかりません。上記と同じ手順で見つけたすべてのページ。

ここインターネットにも同様の質問があることは知っていますが、答えは、私が行ったディレクトリへのアクセス許可を変更することですStep2

これが本当に重複している場合は申し訳ありませんが、正しい答えを見つけることができませんでした。

ありがとうございました!

PS。 AskUbuntuでも聞いてみましたが、返事がなかったので、ここで頑張っています。

編集:

エラーログやアクセスログにはあまりありません。

access.log

::1 - - [10/Aug/2013:11:23:28 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22   (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:29 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:31 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:32 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:33 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:34 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:35 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
127.0.0.1 - - [10/Aug/2013:11:23:23 +0300] "POST /wordpress-testing/wp-cron.php?doing_wp_cron=1376123003.7026669979095458984375 HTTP/1.0" 200 705 "-" "WordPress/3.6; http://localhost/wordpress-testing"
::1 - - [10/Aug/2013:11:23:36 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:37 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
::1 - - [10/Aug/2013:11:23:38 +0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
127.0.0.1 - - [10/Aug/2013:11:31:32 +0300] "GET /index.html HTTP/1.1" 200 485 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"

そして最後の行は約200行繰り返されます。

error.log

1。この行は時々繰り返されます。

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525   /msql.so' - /usr/lib/php5/20100525/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[Sat Aug 10 13:06:42 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 configured -- resuming normal operations
[Sat Aug 10 13:07:36 2013] [notice] caught SIGTERM, shutting down
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/msql.so' - /usr/lib/php5/20100525/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[Sat Aug 10 13:07:37 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 configured -- resuming normal operations

2。そしてこれが主なエラーです。(数百行)

[Sat Aug 10 13:07:40 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied
3
N Alex

最終的なディレクトリにつながるすべてのディレクトリにApacheからアクセスできることを確認する必要があります。

/home/neagoe/Work/InterWebs/Projects/testing/CustomerProjects/website/dist

最も一般的には、ホームディレクトリ(/ home/neagoe)には、他のユーザーがアクセスできないようにするための750または700のアクセス許可があります。それはApacheにとって問題になります。

その場合は、chmod 755それ(最初にあなたの環境でそうすることにセキュリティリスクがあるかどうかを考えてください)またはchmod 750(この場合、ディレクトリを所有するグループにApacheを追加することを忘れないでください)。

1

/home/neagoe/Work/InterWebs/Projects/testing/CustomerProjects/website/dist/の上に、アクセス許可を上書きしているディレクトリがあります。ルートディレクトリを次のように変更してみてください

<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>

あなたがブロックされている場所を取り除くのを助けることができる望ましい解決策ではありませんが。次に、セキュリティと機能の許容可能なブレンドが得られるまで、ルートディレクトリでAllowステートメントとDenyステートメントを組み合わせて試してみます。

1
inetplumber