WordPress×スクレイピングプログラム設置方法
ここでは、example.comというドメインと過程し、
ドメインの直下にWordPressがインストールされていることを前提にスクレイピングのプログラム設置方法を説明していきます。
プログラムを全てダウンロードし、WordPressのインストールディレクトリを同じ階層に各種プログラムを設置します
スクレイピングプログラム parthディレクトリ
初期設定
設置後、初期設定を行います。初期設定の内容は下記の項目の通り
- DBの設定
- simplehtml_1_5のパスを繋ぐ設定
- スクレイピング管理画面に必要なテーブルの自動生成
- ファイルの書き込み権限に関する設定
初期設定の項目がやや多いですが、難しいところはないと思います。
CakePHPで作られていますので、ほとんどがCakePHPのインストに関する事柄です。
DBの設定
スクレイピングプログラムにWordPressと同じDBの設定を書きます。
$testのarrayは未記入で放置でお願いします。
parth/app/config/database.php
class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'データベースログインユーザー', 'password' => 'パスワード', 'database' => 'データベース名', 'prefix' => '', 'encoding' => 'utf8', ); var $test = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'test_database_name', 'prefix' => '', //'encoding' => 'utf8', ); }
simplehtml_1_5のパスを繋ぐ設定
function files() { //simple_html_domへのファイルパス $simple_html_dom ='/home/hoge/simplehtmldom_1_5/simple_html_dom.php'; //スクレイピングプログラムの設置場所 サーバーのパスではなく、URLから見た絶対パス http://example.com/wordpress/parth (これ!) $parth ='/parth'; $this->controller->set('parth',$parth); return $simple_html_dom; } }
初期設定は以上で完了。スクレイピングプログラムの管理画面にアクセスします。
スクレイピング管理画面に必要なテーブルの自動生成
設置したスクレイピングプログラムの管理画面トップにアクセスします。
すると、エラー画面になります。
テーブルが存在しないために発生するエラーなので、必要なテーブルを自動で作成するためにこちらにアクセスします。
すると、管理画面のトップページに移動します。
一度/parth/sqls/にアクセスすると、スクレイピングに必要なテーブル構造にWordPressのDBが変更されるのです。
無事管理画面のトップが表示されたらテーブル生成の以下のファイルは必要ないので削除しましょう。
もしもそれでもMissing Table の表示が出る場合は Create Tableの権限がユーザーにはないのかもしれません。
phpMyAdminから以下のSQLを順に実行していきましょう。
CREATE TABLE IF NOT EXISTS `items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `url` varchar(255) DEFAULT NULL, `term_id` int(11) DEFAULT NULL, `tag` varchar(255) DEFAULT NULL, `tag2` varchar(255) DEFAULT NULL, `page` varchar(255) DEFAULT NULL, `encode` varchar(255) DEFAULT 'UTF-8', `full_path` varchar(255) DEFAULT NULL, `created` datetime DEFAULT NULL, `modified` datetime DEFAULT NULL, `count` int(11) DEFAULT '0', PRIMARY KEY (`id`), KEY `count` (`count`), KEY `term_id` (`term_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `tags` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `item_id` int(11) DEFAULT NULL, `tag` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `wp_posts` ADD `val` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , ADD INDEX (`val`); ALTER TABLE `wp_posts` ADD `item_id` INT NULL , ADD INDEX ( `item_id` ); ALTER IGNORE TABLE wp_posts ADD UNIQUE ( val );
ここまでやったところで、初めて管理画面にアクセスできます。
http://example.com/parth/
ファイルの書き込み権限に関する設定
何とか管理画面にアクセスできるようにはなったものの、ファイルの書き込み権限に関するエラーが出ると思います。
(Windowsでローカル環境 例えばXAMPPなどを利用している方はファイルの書き込み権限は何もしなくて大丈夫です。)
Warning (512): /home/example.com/public_html/parth/app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 281] Warning (512): /home/example.com/public_html/parth/app/tmp/cache/persistent/ is not writable [CORE/cake/libs/cache/file.php, line 281] Warning (512): /home/example.com/public_html/parth/app/tmp/cache/models/ is not writable [CORE/cake/libs/cache/file.php, line 281]
ファイルの書き込み権限に関するエラーが目立ちます。
ブラウザにもよりますが、文字コードの宣言よりも先に文字列があると文字化けします。
ファイルに書き込み権限を与えていく
FTPツールなどを利用して、ファイルの書き込み権限を変更していきます。
以下ディレクトリのパーミッション777
/home/example.com/public_html/parth/app/tmp/cache/ /home/example.com/public_html/parth/app/tmp/cache/persistent/ /home/example.com/public_html/parth/app/tmp/cache/models/
以下ディレクトリの中のファイルのパーミッションを666
以下はディレクトリの『中身のファイルのパーミッション』を666にして下さい。
/home/2chan.kaasan.biz/public_html/wordpress/parth/app/tmp/cache/models/ /home/2chan.kaasan.biz/public_html/wordpress/parth/app/tmp/cache/persistent/
全てのエラーが解消されたら以上でスクレイピングプログラムの設置が完了です。
次は認証の方法とPHPの実行時間の設定の変更です。