/ var / wwwおよびwordpressの正しい権限


41

LAMPサーバーをセットアップし、SSH経由で、ネットワーク内(IPアドレス経由)およびdyndnsを使用して外部からWebブラウザーから "it works"ページにアクセスできます。

/ var / www / wordpress1 / var / www / wordpress2などのサブディレクトリにあるWordpressプロジェクトがいくつかあります。WPをセットアップするためにブラウザからこれらのサブディレクトリにアクセスすることはできません。ブラウザ上のコンテンツ。ブラウザで403 Forbiddenエラーが表示されます。

これは権限の問題だと思います。許可の適切な設定を教えてください:

  1. 開発者と私に読み取り/書き込みを許可します。
  2. WPのセットアップを許可し、その処理を実行する
  3. 訪問者がWeb経由でサイトにアクセスできるようにします。

また、サブフォルダーは実際には別の内部hddのフォルダーへのsimlinksであることに言及する必要があります。

total 12
drwxr-xr-x  2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 root root   43 2012-07-11 20:45 admin_media ->     /root/django_src/django/contrib/admin/media
-rw-r--r--  1 root root  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 root root   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 root root   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

以下は使用した結果です chown -R www-data:www-data /var/www

total 12
drwxr-xr-x  2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root     root     4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 www-data www-data   43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r--  1 www-data www-data  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 www-data www-data   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 www-data www-data   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

ブラウザ経由でアクセスできません。


コマンドの出力を投稿してくださいls -la /var/www
サーチャーロ

その情報を質問に入れてください!
ホルヘカストロ

OK、それは...コードを投稿する方法を覚えておくことは、私にとって第二を取った
dpbklyn

chown -R www-data:www-data /var/www
わかりました

2
あなたの問題は、リンクを使用していることだと思います。Apacheはリンクをたどりません。あなたがすることは、それらのファイルを/ var / wwwに移動し、virtualhostsを使用するようにApacheを設定することです。help.ubuntu.com/10.04/serverguide/httpd.htmlを参照してください。使用/hdd/web/wordpressする場合は、Apache(ルートディレクトリ)を適切に構成する必要があります。リンクを使用するようにApacheを構成できますが、お勧めしません。help.ubuntu.com/community/WordPress
Panther

回答:


81

まず、ユーザー名がwww-dataグループに含まれていることを確認する必要があります。そうでない場合は、www-dataグループとしてユーザー名を追加できます

sudo adduser $USER www-data

その後、/ var / wwwの所有権をユーザー名に変更する必要があります

sudo chown $USER:www-data -R /var/www

次のステップでは、一般的なプラクティスとして、セキュリティ上の理由で許可を777(rwxr-xr-x)に変更する必要があります。許可を777に変更することはお勧めしません

sudo chmod u=rwX,g=srX,o=rX -R /var/www

関連する特定の権限のためのワードプレスlaravelまたは他のフレームワーク、そしてあなたは、それぞれのドキュメントを読むことができます。

それが役に立てば幸い...


1
私のために動作しませんでした、私は使用するために追加sudo chown www-data:www-data -R mywordpressdirectory/
ルイ14年

所有権を変更した後、権限も変更する必要があります。許可を755に変更しましたか?
変態14年

1
彼はでしたchmod。彼は(WWW-データが所有する新しいファイルを保持する。)スティッキービットと755に権限を変更しています
ザカリー漢

私が見つけることができる最高の説明、短くて甘い。ありがとう。
バナゴ

1
したがって、WordPressには書き込み権限がないため、管理パネルからプラグイン/テーマなどをインストール/削除することはできません。
イゴールスコルディン16

3

どうやらこれはUbuntuサーバーガイドで推奨されている方法です:

第11章Webサーバー。

1.4。書き込み許可の共有

複数のユーザーが同じディレクトリに書き込めるようにするには、共有するグループに書き込み権限を付与する必要があります。次の例では、グループ「webmasters」に/ var / www / htmlへの共有書き込み権限を付与します

www-dataを使用します「webmasters」をグループに置き換えるだけで、もちろんグループにユーザーを追加してください。

sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;

私はちょうどMacデスクトップからDreamweaverでテストし、ファイルなどのファイルをアップロードおよび置換しましたが、1つの例外を除いて正しい権限を保持します。ローカルユーザーはwww-dataとともに新しいファイルの所有者になりますが、 htmlディレクトリの所有権はルートとして保持されますが、ローカルユーザーが編集できます。

$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root  www-data 11535 May 28 09:58 index.html

これが物事を片付け、疲労を和らげることを願っています。私はいつもこの状況に疲れていたのを知っていますが、今では私には明らかです。

ああ、私はあなたのftpにアクセスするために鍵でsftpを使用することを強くお勧めします。私にとってはうまく機能し、PureFTPや他の安全でない方法でファイルをウェブサイトに配信する必要はありません。Digital Oceanサイトには、サーバーをsshキーで保護するためのチュートリアルがいくつかあります。

LinuxサーバーでSSHキーベース認証を構成する方法


1)ファイルにsetgidビットを残します。ユーザーがファイルを実行可能にして実行できる場合、奇妙に見えますが、何もせず、セキュリティの問題への扉が開かれます。ただし、ファイルのsetgidに満足している場合は、complex findを単にに置き換えますsudo chmod -R g=srwX /var/www/html
手本

2)find -exec chmodファイルごとに個別のプログラムが生成されます。これは時間がかかり、多くのファイルがある場合はシステムに不要な圧力をかけます。ソリューション:sudo find /var/www/html -type f -print0 |sudo xargs -0 chmod g=rw。xargsは、できるだけ多くのファイルパスをの単一インスタンスにフィードしようとしますchmod
手本

0

Apacheがために実行権限を持っていることを確認してください/hdd/web/media/hdd/web/wordpress

実行:

chmod o+x /root /root/site /root/site/about

さらに、ファイルシステム上のディレクトリへのアクセスを許可するようにApacheを構成する必要があります。これは、システム管理者がapache構成ファイル(httpd.conf)にディレクティブを挿入することで実行する必要があります。

実際のディレクトリはWebルート内にあるため、アクセス可能でなければなりませんが、FollowSymLinksがディレクトリに対して有効になっていない可能性があります-これもディレクティブに追加する必要があります。

http://httpd.apache.org/docs/2.0/mod/core.html#directoryを参照してください


すべてに感謝します...私は最も抵抗の少ない道を行くことに決めました...シンボリックリンクを削除しました。すべてが完璧に機能します。
dpbklyn

0

周り読むUbuntuのためのインスタレーションガイド ..

chown -R www-data /usr/share/wordpress

ファイルを解凍する代わりに、この方法でインストールする方が簡単かもしれません /var/www

https://help.ubuntu.com/community/WordPress ...

ワードプレスはApache上で実行されます...右?そのようにしたい場合は、doを@metamorphとして表示し、apache2で次のhttpd.confように許可を与えます。

<VirtualHost *:80>
        ServerName site
        ServerName site.domain
        DocumentRoot /srv/www/wordpress.site

        DirectoryIndex index.php

</VirtualHost>

その後default-server.conf

<Directory "/srv/www/wordpress.site">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

段階的にhttps://help.ubuntu.com/community/WordPressを実行するのが最善かもしれません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.