xreaにMediaWikiをインストールしても、セーフモードのため、そのままでは画像のアップロードがうまくいきません。ネットを検索しても、CGIモードで動かすという方法が見つかったのですが、それでは、動作が遅くなってしまい、実用的ではないように思います。
解凍したフォルダ内を検索してみると、includes/GlobalFunctions.phpにwfMkdirParentsという関数があり、これがディレクトリを作成するグローバルな関数のようです。
function wfMkdirParents
のなかにある
$ok = mkdir( $dir, $mode, true ); // PHP5 <3
if( !$ok ) {
//PHP doesn't report the path in its warning message, so add our own to aid in diagnosis.
trigger_error( __FUNCTION__ . ": failed to mkdir \"$dir\" mode $mode", E_USER_WARNING );
}
という部分があり、ここでPHPからmkdirしているので、ここをPHPからFTP経由でmkdirをすればうまくいくはず。
上の$okから始まる行から、}までの行をコメントアウトします。
下のコードをコメントアウトした上か下に書き込みます。xxxxは各自で書き換える必要がある部分です。
// FTPのディレクトリは、public_htmlがルートにあるので、
// $dirで受け取ったディレクトリから、先端を削らなくてはならない
$dir2 = str_replace("/virtual/xxxx", "", $dir);
// FTP接続に必要な情報。
$ftp_server="s229.xrea.com";
$ftp_user_name="xxxx";
$ftp_user_pass="xxxx";
// 接続してmkdirしたあと、chmodします。
$conn_id = ftp_connect($ftp_server);
@ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_mkdir($conn_id, $dir2);
ftp_chmod($conn_id, 0777, $dir2);
ftp_close($conn_id);
以上です。
コメント