Debian SqueezeボックスでApache 2.2を使用してMoodle 2.4.8(ビルド:20140113)を実行しています。ユーザー(管理ユーザーも)が特定の設定を変更するたびに(つまりユーザーの追加)、または特定のコースにアクセスする(この場合はMath 9)、ページに503エラーが表示されます。致命的なエラー:$ CFG-> datarootは書き込み可能ではありません。管理者はディレクトリのアクセス許可を修正する必要があります!終了します。
/config.php
ファイルを確認すると、/var/moodledata2
が所有するwww-data www-data
にパスが設定されており、Moodleドキュメントに権限が並んでいます。
これは週の初めには断続的でしたが、今では一定になっています。使用可能な空き領域がたくさんあります(以下を参照)。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 83G 37G 42G 48% /
tmpfs 2.0G 0 2.0G 0% /lib/init/rw
udev 2.0G 224K 2.0G 1% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/md1 939M 35M 857M 4% /boot
/dev/md3 822G 355G 426G 46% /var
/dev/md4 917G 72G 799G 9% /var/moodledata2
# cat config.php
<?php // Moodle configuration file
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = 'mysqli';
$CFG->dblibrary = 'native';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'moodle2';
$CFG->dbuser = 'root';
$CFG->dbpass = '<removed>';
$CFG->prefix = 'mdl_';
$CFG->dboptions = array (
'dbpersist' => 0,
'dbsocket' => 0,
);
$CFG->wwwroot = 'http://example.com/moodle2'; // <removed>
$CFG->dataroot = '/var/moodledata2';
$CFG->admin = 'admin';
$CFG->directorypermissions = 0777;
$CFG->passwordsaltmain = '<removed>';
require_once(dirname(__FILE__) . '/lib/setup.php');
// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!
#
何をすべきか迷っています。アクセス許可は、そのあり方(www-dataがすべてを所有し、/var/moodledata2
フォルダーへの完全なアクセス権を持っている)が論理的であるように見えます。次のステップは何ですか?
編集:明らかなテクニックの1つに言及するのを忘れました。特定の問題の詳細については、サーバーおよびプログラムのエラーログを参照してください。フロントエンドを介してユーザーに表示されるエラーは、多くの場合、意図的に一般化されています。
問題を解決するには、プログラムをデバッグして、失敗したプロセスで使用されているファイルを見つけます(または開発者に直接尋ねるのが最も簡単な方法かもしれません)。 phpプログラムをデバッグする効率的な方法の1つは、phpeclipseなどのプログラムにロードすることです。問題の原因となっているファイルを特定したら、個別に問題を確認します。破損の問題や、正しい所有権または許可を持つプログラムによってファイルが作成されない問題に遭遇する可能性があります。
このリンクは、デバッグの開始に役立つ場合があります。 http://www.ibm.com/developerworks/library/os-debug/
また、データディレクトリに作成された新しいファイルに正しい権限と所有権があることを確認してください。データディレクトリの制限が厳しすぎるため、実行中のスクリプトに新しいデータを作成するための適切な権限がないため、スクリプトがサーバー上に新しいデータを作成できないことがあります。
これは私のステップ1:上記のどれもうまくいかない、またはあまりにも気難しいと思われる場合は、本番サイトをテストサーバーに移動して、できるかどうかを確認してください問題を再現します。サーバー構成とプログラムの問題を切り分けるために、別のオペレーティングシステム構造に移動できる場合はさらに良いでしょう。
この後、Centos 7でも同じエラーが発生しましたlinuxコマンド、正常に動作しています!
setenforce 0