3

Centos 6.5 で問題が発生しました。

[2012 年 12 月 28 日月曜日 12:10:52] [a] [クライアント 127.0.0.1] (13) 許可が拒否されました: /srv/www/website/.htaccess pcfg_openfile: htaccess ファイルを確認できません。読み取り可能であることを確認してください

基本的に、私は真新しいサーバーを構築し、すべてのWebサイトを /var/www ではなく /srv/www フォルダーに移行しようとしていました. .

私がしたこと:

1) 新しいグループを追加しました (groupadd developers)

2) ユーザー a (gid 501)、root、apache、nobody を上記のグループに追加 (usermod -G develoeprs a && usermod -G develoeprs apache && usermod -G develoeprs root && usermod -G develoeprs nobody)

3)すべてのフォルダーとファイルを /srv/www にコピーしました

4) /srv/www 全体の所有権を apache:developers に変更 (chown -R apache:developers /srv/www)

5) モードを変更して、/srv/www がグループで読み取り可能/書き込み可能/検索可能になるようにしました (chmod -R 2775 /srv/www)

6) /etc/sysconfig/httpd の末尾に「umask 002」を追加して、グループ書き込み可能モードで実行するようにしました。

7) 仮想ホストを追加し、/etc/httpd/conf.d/vhosts.conf に追加しました (サービス httpd configtest は OK をスローします)。

NameVirtualHost *:80
NameVirtualHost *:443

SSLStrictSNIVHostCheck off

<VirtualHost *:443>
    ServerAdmin webmaster@domain.ext
    DocumentRoot /srv/www/test
    ServerName test.domain.com
    ServerAlias test.domain
    SSLEngine on
    SSLCertificateFile /etc/httpd/certs/domain.com/server.crt
    SSLCertificateKeyFile /etc/httpd/certs/domain.com/server.key
    <Directory /srv/www/test>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

8) サーバーを再起動しました 9) SSL 証明書のパスワードを要求するため、httpd を手動で開始しました。それ以外の場合、自動起動は失敗します (再起動後に自動的に起動する方法を調べる必要があります)。

上記のエラー メッセージが引き続き表示されます。

次に、apache ユーザーの /etc/passwd のホーム フォルダーを /srv/www (サーバーの再起動) に変更しようとしましたが、まだ喜びはありません。つまり、アクセス許可が拒否されました。古い /var/www フォルダーの名前を変更し、/var/www に /srv/www へのシンボリック リンクを作成しました。もう 1 つの試みは、root:root、apache:apache、および :developers の両方のグループに戻ることでした。

/srv/www/ [動作していません]

drwxr-xr-x. 2 ルート ルート (cgi-bin、エラー、html、アイコン)

drwxrwsr-x. 5 人の apache 開発者 (他のすべての Web サイト フォルダー)

-rwxrwsr-x. 1 Apache 開発者 (すべてのファイル)

/srv/

drwxrwsr-x. Apache開発者4人www

/var/www [動作中]

drwxr-xr-x. 2 ルート ルート (cgi-bin、エラー、html、アイコン)

drwxrwxr-x. 3 人の apache 開発者 (他のすべての Web サイト フォルダー)

-rwxrwxr-x. 1 Apache 開発者 (すべての Web サイト ファイル)

次に、自分の Web サイトのフォルダーの 1 つを /var/www にコピーし、/etc/httpd/conf.d/vhosts.conf のパスをポイントするとすぐに、正常に動作し始めます!

/SRV/WWW フォルダで機能しない理由を知っている人はいますか??

4

2 に答える 2

7

私はついに問題の根底にたどり着きました。これは、ユーザーのファイル アクセスを制御するために通常使用されるファイル アクセス許可やアクセス制御リスト (ACL) などの基本的な従来の随意アクセス制御 (DAC) メソッドを上書きする SELinux ポリシーが原因です。

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

$ setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

$ setenforce Permissive

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Centosの SELinux に関する詳細情報。Permissive モードに切り替えるとすぐに、/srv/ が機能し始めました。

何を、なぜこれを行っているかがわかっている場合は、次の行を変更して、/etc/selinux/config で SELinux を永久に無効にすることができます。

SELINUX=enforcing

SELINUX=disabled

サーバーを再起動すると、永久に無効にする必要があります。

注: Disabled から Permissive または Enforcing モードに切り替える場合は、システムを再起動してファイルシステムのラベルを変更することを強くお勧めします。

于 2014-01-30T22:58:47.847 に答える
0

ユーザー「apache」がフォルダー「/src」を通過できることは確かですか? フォルダ "/src" の所有者と権限は?

于 2014-01-20T12:33:02.743 に答える