[開発進捗1]決算短信XBRLをデータベース化する
[開発進捗2]XBRLファイルを決算データ化する
[開発進捗3]XBRLファイルをBeautifulSoupで解析する
[開発進捗4]決算短信XBRLから決算情報を抽出する
四半期決算を分析するアプリをWordPressで作るの開発進捗の五回目です。
開発がひと段落したので、Xserver(WordPressサーバ)上でデータベースの作成までを構築します。
今回やる事は以下です。
- XserverにSSHで接続する
- XserverにFTPでファイル送信する
- XseverでPythonを実行する(Pythonパッケージをインストールする)
- WordPressのデータベース(MySql)に接続する
1.XserverにSSHで接続する
この点については公式の説明が丁寧で解かり易いのでここで説明する事はありません。
ちょっと心配していた箇所なのですが、説明通りの手順で全くつまづくことなくSSH接続できました。
2.XserverにFTPでファイル送信する
FTPについても公式の説明通りで何も迷わずに実行できました。ツールはFFFTPを使っています。
「サーバーパネル」>「FTPアカウント設定」>「FTPソフト設定」の情報を使ってFTP接続するだけです。
FTPアカウント設定を開くと、FTPアカウントの一覧が初期表示され、「現在、FTPユーザーIDはありません。」と書かれているのですが、気にしなくて良いみたいです。
3.XseverでPythonを実行する(Pythonパッケージをインストールする)
Xserverにはpythonが標準でインストールされているので、特に何もしなくても実行できますが、pythonパッケージのインストールには工夫が必要でした。
一般利用者向けのレンタルサーバはみんなそうだと思うのですが、root権限が無いので、pythonのパッケージをインストールする場所へ書き込みする権限がないみたいです。
その為、普通に「pip install [package_name]」を打つと、以下の何言ってるんだかさっぱりわからないエラーがでました。
Command “/usr/bin/python -u -c “import setuptools, tokenize;__file__=’/tmp/pip-install-jJDBxA/bs4/setup.py’;f=getattr(tokenize, ‘open’, open)(__file__);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, __file__, ‘exec’))” install –record /tmp/pip-record-K0h0zl/install-record.txt –single-version-externally-managed –compile” failed with error code 1 in /tmp/pip-install-jJDBxA/bs4/
打つべきは、
pip install [package_name] –user
です。–userは、ログインユーザの書込出来る場所にパッケージをインストールしてくれるオプションらしいです。使えれば何でもいいので、詳しい事は解かりません。ハイフンは2本です。
XBRLをパースするのに必須だったbeautifulsoup4もこれでインストールできました。
4.Wordpressのデータベース(MySql)に接続する
WordPress用のデータべースに自作のテーブルやプロシージャを作成したいので、MySqlへの接続を行う必要があります。
接続情報はXserverのサーバパネルのMySQL設定というところからもある程度わかるのですが、パスワードは書かれてないです。(初期構築時に照会されたはずですが)
WordPressがそもそもこの必要情報をすべて持ったコンフィグファイル(wp-config.php)を持っているので、そこをコピペするのが早かったです。そこをcatとかで覗きます。
cat /ワードプレスのホームディレクトリパス/public_html/wp-config.php
もうそのまま、
/** WordPress のためのデータベース名 */
/** MySQL データベースのユーザー名 */
/** MySQL データベースのパスワード */
/** MySQL のホスト名 */
と書いてあります。この情報を利用します。SSHでXserverにつないで、以下のコマンドを打ちます。自分のパソコンからはデータベースには接続出来ません。
mysql -h /** MySQL のホスト名 */ -u /** MySQL データベースのユーザー名 */ -D /** WordPress のためのデータベース名 */ -p
パスワードを聞かれるので、/** MySQL データベースのパスワード */ をうつと、MySQLに接続できました。テーブルやプロシージャの作成も問題なくできました。
因みに、WordPressに自作のテーブルを作成する際はテーブル名の頭に「wp_」を付ける必要があるみたいです。
この理由なんですが、WordPressでのデータベースの接続はwp_dbというWordPress標準のパッケージ的なものを使っているそうなんですね。このwp_dbはテーブルの頭に「wp_」がついているものしか認めてくれません。
wp_dbはSQLインジェクション対策などの標準的な機能が盛り込まれていて良い感じらしいです。
WordPressのサポートとしても、データベースへのアクセスはwp_dbを利用する事のみを推奨している様です。そもそも自作テーブルを作成すること自体が非推奨っぽいですがね。
wp_dbについてはこれから使うことになるので、後続の進捗で語る事になりそうです。
コメント