接続も容量も厳しい!サーバでWordPressを使う方法!

無料レンタルサーバは、無料で気軽に使えて便利!なのはいいのだが、環境状態が結構な申告な問題だったりする。

『容量が少ない』のは、もはや当たり前。
更には『接続時間が短く、すぐタイムリミットになる』なかなかの悪環境。

今回は例として『ぶっとびねっと(buttobi.net)』を使う。
このぶっとびねっと、一定の負荷がかかると『High load CGI detected.』と出て処理を停止するのだが、この処理停止ボーダーがかなり低い

インストール・使用共に、この状態がネックになってくる。
公式に『WordPressが使える』と書いてるのだけども……「嘘だろ!?」というレベル。
buttobi.net自体の管理画面で、インストール処理をしても、途中で止まってしまう。

意地でも使うための手順を、下記に記載しておく。
※2012年現在の状況。自己責任でどうぞ。

mod_rewrite使えないサーバでWordPressのパーマリンク構造モドキ』もよろしく

事前準備

DBを用意

buttobi.net管理画面に『マイデータベース(MySQL)』を作成ツールがあるので、それを使って作成する。

作ったら試しにログインしてみる。
 ID・DB名:『u_』+管理画面のログインID
 PASS:管理画面のログインPASS

ところが管理画面から『phpMyAdmin』から何度ログインしようと出来ない!
どうしてコレを見逃せるのか…開発側で確認して欲しかった…

まぁ、phpからは接続出来るので、安心してください…。

WordPressを設置

buttobi.net管理画面の『WordPress / phpBB3 簡単インストール』という自動インストール機能を使ってインストールする。
任せると、環境に適しているのであろうと思われる『WordPress2.7.1』が設置される。
FTPで確認すると、インストール時に指定したフォルダがあるのが、確認出来る。

そうrootディレクトリには作ってくれない。
複数入れられるほど、容量のないくせにねぇ…

そして何故か設置途中でエラーが起きて、設置が完了出来ない場合がある。
その際はFTPで接続して、直接サーバにUPする。

buttobi.netはPHP5なんだけど、PHP4でも使える『WordPress2.7.1』を推奨し設置したことには、きっと意味があるんじゃないかな…?と思うので、無難に『2.7.1』を入れる。
冒険するにしても『2.7系』がいいと思う。
もしかしたら、他のバージョンだとWordPress管理画面のインストーラー自体が、動かないかもしれない…
それくらい公式の管理画面を信じちゃいけないのが、無料フリーサーバというものである。

WordPressをrootディレクトリに移動

ここの項目は個人の判断に任せるのだけど、WordPressをrootディレクトリに移動する。

階層を直すには、FTPツールを使う。
 host:XXX.buttobi.net
 port:21
 protocol:FTP
※XXXは自分のサーバ環境に合わせる
※IDとPASSは管理画面のログインと同じ
※FTPでなければ繋がらない

合わせて『wp-config.php』を修正。

define ('WP_SITEURL', 'http://xxx.XXX.buttobi.net/【WordPressインストール時の設定ディレクトリ】');

となっているので、

define ('WP_SITEURL', 'http://xxx.XXX.buttobi.net');

ついでにリビジョンを停止しておく。

define('AUTOSAVE_INTERVAL', 43200 );
define('WP_POST_REVISIONS', false);

因みにDBのテーブル名は、先頭に『wpup_』とつく名前になっている。(通常は『wp_』)
なので『wp-config.php』も下記のように指定されている。

$table_prefix  = 'wpup_';

直してもいいが、それはそれで手間がかかるので、今回は直さない。

WordPressをインストール

http://xxx.XXX.buttobi.net/wp-admin/install.php
にアクセスし、インストールを起動する。

すると
『High load CGI detected.』
と出て、全てのテーブルを作成し切る前に、矯正終了する。

不足分のテーブルを追加しなくてはいけないが、管理画面から『phpMyAdmin』から何度ログインしようと出来ない!
公式のお知らせブログに『修整した』とあるが直っていない…
ローカルIPだけ通してる様子だから、もしかしたら気付いていないのかも知れない…

もう一度、下記インストールアドレスにアクセスする。
http://xxx.XXX.buttobi.net/wp-admin/install.php
するとインストール済みになる。

これでテーブル作成自体は成功。
ユーザとパスワードの設定に間違いはなく、PHPからDBにアクセス出来たという証明になる。

管理画面にログインしてみる。
http://xxx.XXX.buttobi.net/wp-admin/
出来ればラッキー! この時点で完了! おめでとう!

しかし、恐らくこの時点では、ログインできないと思う…
データが上手く入っていないのだもの…

PHPからMySQLにデータを登録する

管理画面にログインできないのは、ログインを始めユーザデータの一切が、満足に入っていないから!
なので、PHPでプログラムを組んで、必要な内容をMySQLのテーブルに登録する。
『phpMyAdmin』が使えれば問題ないのに…。

データ追加用PHPファイルを作成する

『_settingdata.php』等、テキトウな名前のphpファイルを作成。
内容は下記。

<?php
//////// ↓※この部分は都度変更※↓ ////////
$table = '【テーブル名】';
$sql = "【実行するSQL】";
//////// ↑※この部分は都度変更※↑ ////////

// DBへ接続(HOST,USER:PASS
//MySQL に接続する。
if( !$db = mysql_connect("localhost","【DBログインID】","【ログインPASS】") ){
	print "MYSQL接続失敗";
	exit;
}

// 使用DB指定
mysql_select_db("【DBログインID】",$db);

// SQL実行
$result = mysql_query("show tables;",$db);
show_me($result);

// SQL実行
if($sql)
{
	$result = mysql_query($sql,$db);
	show_me($result);
}

// SQL実行
if($table)
{
	$result = mysql_query("SELECT * FROM ".$table."",$db);
	show_me($result);
}

// 結果を保持するリソースを開放
mysql_free_result($result);

// DB接続切断
mssql_close($db);

function show_me($result)
{
	// テーブルの中身を表示
	print("<pre>");
	while($row = mysql_fetch_array($result)){
		print_r($row);
	}
	print("</pre>");

	// 件数
	print(mysql_num_rows($result)."件");
}
?>

『※この部分は都度変更※』
この部分で実行して欲しいSQLは下記2点。
実行すれば管理画面にログイン可能となる。
慎重に1個ずつ実行をオススメする。

実行SQL、1個目

$pass = '【wordpressログインPASS】';
$table = 'wpup_users';
$sql = "INSERT INTO ".$table." VALUES (1, '【wordpressログインID】', MD5('".$pass."'), 'admin', 'you@example.com', '', now(), '', 0, 'master');";

実行SQL、2個目

$table = 'wpup_usermeta';
$sql = "INSERT INTO ".$table." VALUES (1, 1, 'nickname', 'mastar'),
(2, 1, 'rich_editing', 'true'),
(3, 1, 'comment_shortcuts', 'false'),
(4, 1, 'admin_color', 'fresh'),
(5, 1, 'wpup_capabilities', 'a:1:{s:13:\"administrator\";b:1;}'),
(7, 1, 'plugins_last_view', 'active');";

※既にある場合、ID5の内容が『wp_capabilities』となっている可能性があるので『wpup_capabilities』になっているかチェックする。

もしログイン出来ない旨のエラーが出た場合

上記2つを実行したのに、ログインが出来ない場合は、書きを実行する。

$table = 'wpup_options';
$log = 'a:5:{s:13:"administrator";a:2:{s:4:"name";s:9:"管理人";s:12:"capabilities";a:30:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:6:"editor";a:2:{s:4:"name";s:9:"編集者";s:12:"capabilities";a:19:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"作者";s:12:"capabilities";a:8:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:9:"寄稿者";s:12:"capabilities";a:4:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:9:"協力者";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}';
$sql = "INSERT INTO ".$table."  (option_id, blog_id, option_name, option_value, autoload) VALUES (105, 0, 'wpup_capabilities', '".$log."', 'no');";

作成完了

編集する場合、腹立たしいことに、記事一覧を見るだけで『High load CGI detected.』が出ることがある。
記事へは記事IDを使い、URLを直接指定して、編集画面へ直接飛ぶことをオススメする。
http://xxx.XXX.buttobi.net/wp-admin/post.php?action=edit&post=【記事ID】
※post_typeがpageがページ、postが記事。

因みに
携帯対応(ガラケー対応)には、負荷と古var対応的に『mobile_eye』をオススメする。
※使い方はリンク先を参照してください。

コメント

タイトルとURLをコピーしました