web-dev-qa-db-ja.com

Wordpressはファイルをアップロードできません

ここでチュートリアルを使用して、ローカルのApache2サーバーにLAMPスタックとWordpressをインストールしました。

  1. https://www.digitalocean.com/community/tutorials/how-to-install-linux-Apache-mysql-php-lamp-stack-on-ubunt

  2. https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-ubuntu-14-04

しかし、メディアファイル(画像/音声)をアップロードしようとすると、エラーが発生します。

The uploaded file could not be moved to wp-content/uploads/2015/01.

何が悪いのでしょうか?ユーザーをwww-dataグループに追加し、chown 'ディレクトリ/ var/www /も同様です。

4
goelakash

このスクリプトを使用して、wordpressパーミッションを修正できます。

#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro <mike [at] conigliaro [dot] org>
#
WP_OWNER=www-data # <-- wordpress owner
WP_GROUP=www-data # <-- wordpress group
WP_ROOT=$1 # <-- wordpress root directory
WS_GROUP=www-data # <-- webserver group

# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;

# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php

# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;

ファイルに保存して実行し、wpインストールディレクトリを渡します。

wget https://Gist.github.com/Adirael/3383404/raw/6c5446d56477426faeb709e5b807f00422acdea2/fix-wordpress-permissions.sh
chmod +x fix-wordpress-permissions.sh
Sudo ./fix-wordpress-permissions.sh /var/www/html

https://Gist.github.com/Adirael/3383404

13
sajjadG

うまくいけば、これはあなたの問題を解決し、何が起こっているのかを説明するのに役立ち、将来もあなたを助けますwordpress "ダッシュボード"に移動してファイルをアップロードすると、ファイルシステムへの変更を実行している "ユーザー" iswww-data(つまり、Apacheウェブサーバー経由のlibapache2-mod-php5)。したがって、wp-content/uploads/2015/01.を変更するには、www-dataeitherディレクトリへの書き込み権限を持っているか、またはownディレクトリを必要とします。これは、次のコマンドを実行することにより、フォルダーに自由なアクセス権を付与できることを意味します。

chmod -R 777 wp-content/uploads

注:最初にcdをwordpressディレクトリに移動する必要があります。現在フォルダーを所有していない場合は、Sudoを使用する必要があります。

しかし、私の経験では、これは問題になります。つまり、そのアクセス許可の問題を修正すると、wordpressが他のディレクトリにファイルを書き込もうとすると、より多くの問題が発生する可能性があります。それが更新されるとき、新しいプラグインなど。その場合、私は使用します:

Sudo chown -R www-data <wordpress-parent-directory>

www-dataがフォルダ全体を所有するようにします。

注:ローカルインストールではそれほど大したことではありませんが、実稼働サーバーに移動する場合は、アクセス許可に注意する必要があります。通常、Webサーバーに絶対的な最小アクセス許可を与えるだけです。

2
Michael Coleman

Wp-contentディレクトリは本当にあなたが思うところにありますか?

問題の記事によって/var/www/html/にディレクトリが作成されましたが、wordpressは、圧縮されたtarファイルから抽出したwordpressディレクトリの下にあることに気付きます。私の場合、別のディレクトリへのソフトリンクである/var/www/html/wordpress/wp-contentでした。この場所で特権と所有権を修正すると、うまくいきました。

0
garthoid