2011年3月24日木曜日

phpMyAdmin on mac

mac 上でサーバを構築中です。
mac はもともといろんなものが入ってるんですねー。らくちんらくちん。
その時のざっくりメモ。

・Apache
システム環境設定→共有→Web共有をON

・PHP
/etc/apache2/httpd.conf 内でPHPの記述がコメントアウトされているのを外す。
# LoadModule php5_module libexec/apache2/libphp5.so

・MySQL
ここからダウンロードしてインストール。
MySQL.prefPaneをクリックすることで、システム環境設定の項目からMySQLを操作することが可能に。
これで使えるようになるはずなのだけど、パスワードの設定がよく分からなくなってしまったので
もう一度インストールスクリプトを動かしてみた。
コマンドラインから
$sudo /usr/local/mysql/scripts/mysql_install_db
で、パスワードとか設定しておしまい。

・phpMyAdmin
GUIで楽に操作できるようにするためにはブラウザからMySQL操作できるこれが便利だとのことだったので、
ここからダウンロードしてインストール。

で、フォルダ名をphpMyAdminに変えて、フォルダごとまるまる/Library/WebServer/Documents/へ移動。
これで、http://localhost/phpmyadmin/からこのこが見えるようになりました。
のですが、MySQLで設定したユーザ&パスワードで入れない。。。
2002エラーが出ました。

調べてみたら、これはPHPがMySQLのソケットの位置を勘違いしているのが原因だそう。
(参照元:Mac にphpMyAdmin を入れる手順 - Slow Dance)
なので、まずMySQLの設定ファイルでソケットの位置を指定。
$ sudo emacs /etc/my.cnf
以下を記述。
[mysqld]
socket=/tmp/mysql.sock

PHPの設定ファイルを作成。
$ sudo cp /private/etc/php.ini.default /etc/php.ini
この/etc/php.ini内のMySQLソケットの設定を上記の記述と合わせる。
mysql.default_socket = /tmp/mysql.sock

Apacheを再起動して(Web共有のチェックを外して入れ直す)
めでたくログインできました*

やっとスタート地点にたてた(*-*;;;;)

ちなみにばっちり文字化けしました。。w
artful xampp:Mysqlに関するPHPMyAdminの文字化けで解決!

2010年11月9日火曜日

MySQL トラブル

ファイル破壊されまくり…

●テーブルが壊れた
ログインして,
mysql> check table 壊れたテーブル名
で原因が分かる

mysql> repair table 壊れたテーブル名
で直る
…らしいけどこれだと直らないことが多い気がする(^^;)

なので私の場合全部のデータが入っているフォルダ( /usr/local/mysql/var/データベース名 )
のバックアップを取っておいて,
壊れたテーブルの分だけデータを上書きしてやって無理矢理修復しました.


●ログインできなくなった(ユーザテーブルが壊れてた)
とりあえず kill でサーバを一度落として,
--skip-grant-tables オプションを指定して mysqld を再起動.
すると,どんなユーザでもログインできるようになるため,中に入ってから
mysql> select host,user,password from mysql.user;
でログインできるユーザを確認.
すると,ユーザテーブルが壊れてることが発覚したため,上記の repair で修復.
なんだかがっつりユーザが削除されてしまったので,
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名 IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
で権限を持つユーザの追加.

2010年10月20日水曜日

OProfile コールグラフの使い方

# opcontrol --start && [filepath]
# opcontrol --stop
# opreport -c [filepath]  or  # opreport -c | grep [filename]

gcc -g でコンパイルしておけば,opannotate が使えて,プロファイリング後に
# opannotate -s [filepath]
とするとソースコード内で何行目が何回呼ばれたかが分かるっていう優れもの.

こりゃ便利.

しかし全体プロファイリングするんじゃなくてとあるアプリケーションのコールグラフだけ欲しいんだよなー.
とあるアプリケーションだけのプロファイル方法を調べなきゃ.

2010年10月19日火曜日

OProfileインストール

gprof だとマルチスレッドのアプリケーションのプロファイルがとれないという噂だったので,
OProf を使うことになりました.
OProf は gprof 同様,コールグラフもとれるし,マルチスレッドにも対応している優れものらしい.
インストール時のメモ.

まずはDownload OProfileから最新版のソースをダウンロード.

./configure をしたところ,ライブラリがいくつかないと言われた.
①configure: error: popt library not found
なので単純に yum install popt* で,poptライブラリをゲット.
(popt-devel.i386 : Development files for the popt library
popt-static.i386 : Static library for parsing command line parameters)

②configure: error: liberty library not found
yum で liberty を探しても見つからない.
ぐぐってみたら,Installing Oprofile | KernelTrapにいきついた.
そこで,yum install binutils-devel で,libertyライブラリをゲット.
(binutils-devel.i386 : BFD and opcodes static libraries and header files)

これで無事に ./congfigure → make → make install と,インストールを終えられた.

あとは
# opcontrol --start でプロファイル開始
# opcontrol --shutdown でプロファイル終了
# opreport でプロファイル結果の表示
/var/lib/oprofile/samples 内にデータが保存されていくようです.
これを変えたい場合は,--session-dir=で指定すればOK

取り急ぎここまで.

2010年8月31日火曜日

FTPソフト

mac にも使えるのないかなーって思って調べてたら、
FireFTPっていう、FireFoxのアドオンとして使えるものを発見!
直感的にも使いやすいし、めっちゃ便利。
これは凄い♪

2010年7月13日火曜日

カーネル内で一定時間ごとの動作を行う

カーネル内ってnanosleepとか使えないんですね(Linux-2.6.25)
関数の定義なかった(*_*)
なので、カーネルタイマーを使って一定時間ごとに動作を行うのが良さそうです。

下のページが詳しく書いてあってすごくわかりやすかった!!
のでとりあえずメモメモ。

カーネルタイマーを使う

jiffiesが単位になるから精度は10msってことかな。(HZによるけど)