2012年1月28日土曜日

Ubuntu 11.10 で PHPからSQLite3を試してみる

最近寒いですね
そんなときはヒトカラしてカラオケルームに引きこもります。
もしくは家に引きこもってコーディングします。
というコトで、PHPからSQLite3 を試してみました。

(SQLiteについてはsqlite3の基本操作まとめ [PCメモ] | てりぶろさんのブログが詳しいです(手抜き))

PHPのバージョンはPHP 5.3.6-13です。

で、インストールにちょっと詰りどころがあったのでメモとして残します。

このエントリの目次
1.パッケージ類のインストール
2.適当なディレクトリにDBを作成してみる
3.適当にコード書いてDBに接続を試みる
4.エラーの解決を試みる(これでいいのかは不明)
5.適当なテーブルを作成しデータ突っ込む
6.PHPからSELECT文を実行してみる
7.最後に

1.パッケージ類のインストール
下記のコマンドで必要なパッケージをインストールします。
sudo apt-get install sqlite3
sudo apt-get install php5-sqlite

2.適当なディレクトリにDBを作成してみる
コマンドラインで下記を入力します。
sqlite3 testdb

すると、「testdb」という名前のDBができ、かつSQLiteとの対話モードに入ります。
.quitと入力してとりあえず脱出。
sqlite> .quit

3.適当にコード書いてDBに接続を試みる
下記のようなPHPを書いてindex.phpという名前で保存します。
<?php
try {
    //下記はPDO('sqlite:<作成したSQLiteのDBのファイルパス>');です
    $db = new PDO('sqlite:testdb');
} catch (Exception $e) {
    error_log(print_r($e, true));
}

コマンドラインから実行してみます。
$ php index.php

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/sqlite.so' - /usr/lib/php5/20090626+lfs/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0

エラー出た!

4.エラーの解決を試みる(これでいいのかは不明)
ヤフったら、Launchpadで同様の問題が書かれているページを発見。
読み進めていると、15番目のコメントに書かれてる手順で解決する様子。

同様の手順を実施してみる。
$ cd /etc/php5/conf.d/
$ sudo mv sqlite.ini sqlite.NOTini

で、もう一度コマンドラインから実行してみると、エラーが出なくなった!
$ php index.php

やったね!

ちなみに、10番目のコメントでは別の解決策が示されています。
ですが、僕が実施した15番目のコメントの方法を示した人が、14番目のコメントにて、
「それはまた別の話だよ (Your workaround is regarding a different issue.)」
と言っているので、この人を信じました(楽な方法だし)。

5.適当なテーブルを作成しデータ突っ込む
という訳で、まずはコマンドラインでテーブルを作成します。
//先ほど作成したtestdbを使う
$ sqlite3 testdb

//対話モードになったので、テーブルを作成する。
sqlite> create table testtable (id integer primary key);
//適当なデータを突っ込む
sqlite> insert into testtable values(1000);
//対話モードから脱出
sqlite> .quit

6.PHPからSELECT文を実行してみる
で、下記のようなPHPコードを書きます。
<?php

try {
    $db = new PDO('sqlite:testdb');
    $sql  = $db->prepare('select * from testtable');
    if (! $sql->execute()) {
        echo 'failed 1';
    }
    echo print_r($sql->fetchALl(), true);
} catch (Exception $e) {
    echo (print_r($e, true));
}

で、実行。
$ php index.php
Array
(
[0] => Array
(
[id] => 1000
[0] => 1000
)

)

問題なく値が取れています!

7.最後に
英語力をもっとつけなければいけないなと思いました。
最初にエラーに遭遇したとき、日本語のブログを見ていました。

が、話題が本件とずれていたり解決していなかったりして、調べる→実行する→違うエラー出る→調べる→実行する→(ryを繰り返し、どんどんおかしな方向に進んでいってました。

ですが、やる気出して英語記事を読んだらすんなり解決しました。
実はLaunchpadを見ると解決するコトが多いのでは?なんて思いました。
(見たのは今回初めてなんですが)

あと、そろそろSyntaxHighlighter入れようかな…。

それでは。

2012年1月9日月曜日

Pythonの公式ドキュメントとコーディング規約

メモメモ
Python 2.7ja1 documentation
Python 2.7.2 のドキュメントの日本語訳です。

Style Guide for Python Code
(Pythonコーディングの慣例の和訳。「規約」ではないのかな)

2012年の目標

プログラミングの色々に触れてみたい
という訳で、一ヶ月毎に違う言語やフレームワークに触れてみたいなと考えています。

1月 Python
2月 Objective-C
3月 C++
4月 C#
5月 Scala
6月 Erlang
7月 Haskell
8月 nginx
9月 CakePHP
10月 Symfony
11月 Django
12月 忙しいかもなので特になし

どの程度できるかどうか分からないし、仕事の勉強をする必要が出ることもあると思うので、あくまでゆるい感じで。

他にもHadoop、Cassandra、UPnPなど 覚えるべき|覚えたい コトがたくさんあります。

頑張るぞー。

2011年10月23日日曜日

phpMyAdminで他のサーバのDBを制御する

仕事で標記の件が必要になりそうだったので
イメージだけでも掴んでおこうと自宅で試してみました。

どういう風に試すかですが、簡単に言うと
1. まず2台のPC(Ubuntu 11.10 と Mac 10.6.8)にAMP環境を構築する
2. 更にUbuntuにphpMyAdmin を入れる
3. Ubuntu内のphpMyAdminから、LAN経由でMacのDBを制御してみる
って感じです。

このエントリーの目次
1.MAMP環境を構築する
2.LAMP環境を構築する
3.UbuntuのphpMyAdminの設定をする
4.MacのMySQLの設定をする
5. Ubuntu内のphpMyAdminから、LAN経由でMacのDBを見てみる
6.できた!

1. MAMP環境を構築する
下記を参考に(手抜き)
Mac に MacPorts を使って MySQL と PHPMyAdmin をインストールする方法 | WEBLE

バージョン5.1.45が入りました。

MacのMySQL系のコマンドは全く慣れないので、引用させて頂きます。

・MySQLサーバの起動コマンド
sudo /opt/local/share/mysql5/mysql/mysql.server start
・rootユーザにパスワードを設定する
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'password'
・MySQLにログイン
/opt/local/lib/mysql5/bin/mysql -u root -p

2.LAMP環境を構築する
下記を参考に(手抜き)
Ubuntu に MySQL と phpMyAdmin をインストールする | hiratake55 の開発メモ

・apacheのリスタートコマンド
sudo /etc/init.d/apache2 restart

バージョン5.1.58が入りました。

3.UbuntuのphpMyAdminの設定をする
phpMyAdminの設定ファイルを編集します。Ubuntu に MySQL と phpMyAdmin をインストールする | hiratake55 の開発メモの通りに作業したので、下記のファイルを編集することになります。

/var/www/phpmyadmin/config.inc.php

30行目からのあたりを下記のように編集します。
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['host'] = '192.168.x.x'; //MacのプライベートIPアドレス
$cfg['Servers'][$i]['port'] = '3306';

4.MacのMySQLの設定をする
ここでは4.7.5. アクセス制御の段階 1: 接続確認 | MySQL5.1 リファレンスマニュアルを参考にしました。
で、まず、コマンドでMySQLにrootにログイン。
/opt/local/lib/mysql5/bin/mysql -u root -p


以下のように、このDBにアクセスを許可するアカウントを作成します。
grant all privileges on *.* to アカウント名@'192.168.x.x/255.255.255.0' identified by 'パスワード';

ちなみに、「all privileges」文で新アカウントに全ての権限を与えてます。

5. Ubuntu内のphpMyAdminから、LAN経由でMacのDBを見てみる

「http://UbuntuのプライベートIPアドレス/phpmyadmin/」にアクセスすると、以下のような画面が出ます。

そして4.MacのMySQLの設定をするで設定したアカウント名とパスワードを入力すれば、MacのDBにログインできます。
DBの内容を見て、Mac内のDBが取得できているコトを確認します。

6.できた!
MacでMySQLをいじるのは初めてなので色々と戸惑いました。ログインできないとか、そもそも起動の仕方が分からないとか。。

長々と書きましたが、間違いなどありましたらご指摘いただきたいです。

Related Posts Plugin for WordPress, Blogger...