PHPをXDebugとVimでデバッグする (Ubuntu 8.10編とCentOS 5.4/4.5編)   

こんな感じでVim (GVimでもOK)でデバッグできるのでめちゃくちゃ便利。 端末上でできるのもかなりうれしい。 PHP5/Ubuntu 8.10編 XDebugをインストールする sudo apt-get -y install php5-xdebug XDebugの設定 sudo vim /etc/php5/apache2/conf.d/xdebug.ini…

UNIXタイムスタンプが1234567890になった瞬間

ちょうどさっきUNIXタイムスタンプが1234567890になった。カウントダウンに使ったコマンド watch -n 1 "perl -e 'print 1234567890-time, \"\n\n\", time;'" 1234567890になった瞬間! わーい。

VMWare Server上のUbuntu 8.10にVMWare Toolsをインストール

VMWare Server1.06 / Win XP上のUbuntu 8.10にVMWare Toolsを入れる。VMWare Toolsは無くても問題なくゲストOSは動くが、ゲストOSのグラフィックスパフォーマンスなどを向上させるためにインストールする。 VMWare Serverの設定 VMWare Serverのメニューバー…

「EEE PC 1000H」の「Ubuntu 8.10」WiFiの設定

EEE PC 1000HのWindows XPをアンインストールしてUbuntu 8.10をインストールしたが、ワイヤレスが動かない・・・(ワイヤレスカードが認識されない)調べてみるとどうやらEEE PC用のカーネルがあるらしくこれをインストールすればいいらしい。Array.orgのサ…

別サーバーにあるファイルとのdiffやvimdiffなど

diffは「-」オプションを使う事で標準入力を取得できる。 ssh user@example.com "cat `pwd`/index.html" | diff - index.html vimdiffにはそんなオプションが無いが名前付きパイプを使えば可能。 vimdiff index.html ssh user@example.com "cat `pwd`/index.…

一行mailコマンドでメールを飛ばす

標準入力にメールのBodyの内容を渡してあげれば一行でいける。 echo "これがメールのBodyです。" | mail -s "Subjectです" mail@example.com 応用編 MySQLの内容を他のサーバーにダンプし、終わったらメールを飛ばす。 さらにこれをバックグラウンドで実行す…

ファイルの転送にssh & gzipを使う

scpでもできるがトラフィックがあがる。 scp example.com:/tmp/data /tmp/data そこで(時間は余分にかかるが)巨大なサイズのファイルを転送する時にgzipで圧縮してからssh経由でgunzipにパイプ渡し解凍してコピーする。 ssh example.com "gzip -9c /tmp/data…

C++で文字列ポインタ同士を連結する。

相変わらずC++の文字列ポインタは分けが分からない・・・ 文字列ポインター同士を連結して別の文字列ポインタに入れるには以下のように。 #include #include int main(){ char* a = "Hi"; char* b = ", Joe"; char* c = new char[strlen(a)+strlen(b)+1]; st…

kccコマンドをCentOS4.5にインストール

文字コードの自動判別をするためにkccコマンドを使ってみる。yumではインストールできないので、RPMインストールする。 kccのソースRPMパッケージをダウンロード wget ftp://rpmfind.net/linux/ASPLinux/sources/SRPMS.11.2/kcc-2.3-24.src.rpm リビルドする…

RPMコマンドの使い方

インストールされているRPMを表示 rmp -qa を含むパッケージ名を表示 rpm -qf

Linuxのファイアーウォールを無効にするには

現在のポリシーを見る iptables -L ファイアーウォールを無効にする(ポリシーをドロップ) iptables -F sudo iptables -F # Flush all rules sudo iptables -P INPUT ACCEPT # Set default policy to accept sudo iptables -P OUTPUT ACCEPT sudo iptables …

Ubuntuにはchkconfigコマンドのようなものはないのか

と思ってたら当然のようにあるようだ。sysv-rc-confコマンドという(覚えにくい・・)ただしapt-getでインストールする必要がある。 sudo apt-get -y install sysv-rc-conf 以下で実行 sudo sysv-rc-conf

JavaScriptでイベントハンドラをセットする。

今更ながらJavaScriptのイベントハンドラのセットの仕方のメモ。 <script> function hello(){ alert('hello'); } window.onload = function(){ document.getElementById('btn').onclick = hello; } <form> <input type="button" value="click" id="btn"> </form>

Apacheのディフォルトのcharsetを無効にする

Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下のようなディフォルトcharsetが 設定されている場合、これを無視するには値をOffに変えればOK. ;AddDefaultCharset UTF-8 AddDefaultCharset Off httpd.confを変更したくない時は.htaccessに"AddDefa…

SSHのDSA公開鍵を設定する (パスフレーズ無し)

ssh-keygenコマンドでクライアント側(アクセスするサーバー)で公開鍵&秘密鍵を生成 リーモート側(アクセスされるサーバー)に公開鍵を設定 クライアント側の設定 「-N」オプションはパスフレーズの指定で、""でパスフレーズ無しにできる。 # ssh-keygen …

Linuxのディストリビューションを調べるコマンド

メジャーなディストリビューションでは大体動くみたいです。 lsb_release -a 結果 LSB Version: :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch Distributor ID: CentOS Description: CentOS release 4.5 (Final) Release: 4.5 Code…

サブバージョンの管理方法

svn

サブバージョンの管理はtrunk、brunches、tagsの3つのファイルで行う。 trunk 開発のメインストリーム brunches プロジェクトの分岐 tags 実装時などに作るタグ(スナップショット) リポジトリの例 /prj1/trunk/ /prj1/brunches/b1 /prj1/tags/STABLE /prj…

tarコマンドで圧縮、解凍

TAR形式+GZIP形式の".tgz"や".tar.gz"gzipで解凍してからtarで取り出す。 gzip -dc filename | tar xvf - zxオプションでもOK。 tar zxvf filename tar over sshで転送する。 tar cvjf - my_dir | ssh user@example.com "(cd /tmp; tar xjf -)" Reference:…

SubversionのリポジトリーブラウザをURL指定して開くバッチプログラム

「start "" プログラム名」を使わないとDOSウィンドウが起動したプロセスが終るまで開いたままになる。 @echo off start "" "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:repobrowser /path:"svn://example.com/trunk"

PHP4とPHP5のDOM操作: PHP5への移行

PHP

PHP4とPHP5では以下のようにDOMのクラスや関数の名前などがだいぶ違う・・・ = '5'){ $dom = new DOMDocument(); $dom->load($xml); $root = $dom->documentElement; foreach($root->getElementsByTagName("tag1") as $section){ foreach($section->getEleme…

SSHログイン時のコマンド実行

sshでコマンドをリモート実行すると、sshを実行したサーバーに戻ってきてしまう。 # hostname local.machine # ssh user@host "cd /home/user/test" # hostname local.machine しかし"-t"オプションとコマンドのあとに" && /bin/bash"を追加するとリモートに…

Bashのforループ、if文

普段Perlに頼り切ってるのでシェルスクリプトの勉強も開始 array=(a b c d e f) for item in ${array[@]}; do echo $item done 1から100までループ for i in `seq 1 100`; do echo $i done if文はこんな感じ [注] []の両内側にスペースが必要 if [ $var == '…

SCPの巧妙な罠

今日気が付いたSCP(cpコマンドでもそうだが)の微妙な動作・・・ 以下がその違い これは"/tmp/a"フォルダーの中にdir1フォルダーとその中身がコピー my_dir=dir1 scp -r $my_dir example.com:/tmp/a これは"/tmp/a"フォルダーの中にdir1フォルダーの中身が…

Perlのsystem関数で外部コマンドを呼ぶときのエラーキャッチ

バッククォートで呼ぶとエラーが起きたどうか分からないのでsystem関数を使う。 my $cmd = 'ls test_dir'; if( (system "$cmd") != 0){ die "Error detected\n"; } エラーが起きたらdieする関数 sub run_cmd{ my ($cmd) = @_; print "$cmd\n"; if( (system "…

PHPで改行を削除

str_replace関数で可能だが $string = str_replace("\n", "", $string); $string = str_replace("\r\n", "", $string); $string = str_replace("\r", "", $string); 日本語処理を考えるとmb_ereg_replace関数の方が妥当。 $string = mb_ereg_replace("\n", "…

Sqlite2をソースインストールする

CSVをインストール # yum -y install cvs sqliteをチェックアウト # cd /usr/local/src/ # cvs -d :pserver:anonymous@www.sqlite.org:/sqlite login Logging in to :pserver:anonymous@www.sqlite.org:2401/sqlite CVS password: (パスワードはanonymous) #…

sendmailやpostfixの設定

sendmailをインストール yum -y install sendmail postfixをインストール yum -y install postfix MTAを切り替えるためのsystem-switch-mailプログラムをインストール yum -y install system-switch-mail MTAを切り替える system-switch-mail

MySQLサーバーでクエリーログを書き出す設定をする

以下を"/etc/my.cnf"追加 log=/var/log/mysql-queries.log 空のログファイルを作ってMySQLサーバーを再起動 touch /var/log/mysql-queries.log service mysqld restart

rpmコマンドを使う

インストールされているパッケージを調べる rpm -qa mysql-serverを削除 rpm -e mysql-server

PerlのUTF-8処理

UTF-8のテキスト処理をする時はまず入り口でUTF-8フラグを立てる。 最後の出力(出口)ではUTF-8フラグを落とす。 my $str = "日本語"; #UTF-8フラグを立てる utf8::decode($str); #UTF-8かどうかをチェック print utf8::is_utf8($str); #・・・なにかの処理…