主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

SQLite で unable to open database file

このブログでは SQLite を使ってるんだけど、先ほどサーバ以降後に始めてブログを更新しようとしたら、表題のエラーが出てできない。データファイルのパーミッションを確認しても 777 だし、そもそも読み込みはできてる。

調べてみると SQLite は更新時に dbfilename-journal というファイルを一時的に作成するらしく、ディレクトリの書き込み権限がないと更新できないらしい。
もう少し親切なエラーメッセージならなー、と思った。

ssh version 1 のホストキーを作成するには

Slicehost で VPS を借りて ubuntu を使い始めました。とりあえず色々と設定中で、 ssh で protocol 1 を有効にしたら

Disabling protocol version 1. Could not load host key

と言われたので、

# ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key

とホストキーを作成し、

# vi /etc/ssh/sshd_config
# HostKeys for protocol version 1
HostKey /etc/ssh/ssh_host_key

を追加。

chattr コマンド

Linux コマンドに chattr コマンドという chmod とかよりちょっと細かめにファイルのパーミッションを設定できるコマンドが存在知ることを今日知ったのでメモ。
きっかけは以下のコマンド結果。

[root@latte ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[root@latte ~]# chmod 755 /usr/bin/wget
chmod: changing permissions of `/usr/bin/wget': Operation not permitted

root が削除できない??
これは chattr +i で root すら削除できないように設定されていたためらしい。 cpanel のセットアップスクリプトにこの手のものが含まれてる事があるっぽい。
解決するには +i したものを -i する。

# chattr -i /usr/bin/wget

Zend Framwork を IIS 上の PHP で動かすには

先のポストに引き続き、 IIS x PHP 絡みで、 Zend Framwork を IIS 上の PHP で動かす時のメモ。特に rewrite モジュールが apache のようにはいかないので、それについて。

とりあえず今回の環境は以下の通り

  • IIS6
  • PHP-5.2.5
  • IIRF-1.2.15

もっと読む

IIS6 で php.ini の再読み込みをするには

IIS6 上で php が動作してる場合に、 php.ini の変更を IIS の再起動無しで反映させるには、アプリケーションプールをリサイクルすればいいらしい。

IIS Manager を開き、ツリービューのホスト配下の [Application Pools](アプリケーションプール?) を開き、 DefaultAppPool (デフォルトアプリケーションプール?)を右クリックして Recycle (リサイクル?)を実行する。

Smarty で便利な関数、定義変数

Smarty には覚えておくと便利な関数は変数がいくつかあるので、それのメモ。


もっと読む

SQL で null のマッチ条件について

PHP の is_null() だとなんだのやったついでに SQL の NULL 比較についても書いておく。

よく論理削除を制御するためのカラムを作って、 0 か 1 で削除されてるかの判断したりするけど、初期値で NULL がセットされちゃったりして deleted = 0 も deleted = 1 とかやっても条件がマッチしなかったりする。

これは NULL を判別するには deleted IS NULL か deleted IS NOT NULL にしないと駄目だから。

でもじゃあ

deleted = 0 OR deleted IS NULL

とかはちょっとかっこ悪いので、 IFNULL() 関数なんかを使って

IFNULL(deleted,0) = 0

とやると、中々見た目がいい。

isset(), is_null(), ===, ==, NULL, false

今回は PHP を理解する中でもっとも難しいとされている isset() 関数や is_null() 関数や、false や NULL に対する == や === 演算子の結果についてまとめてみた。

何が難しいかって別に分かれば難しくないんだけど、はっきり言ってややこしすぎる。
俺はこの PHP の実装があまり好きじゃない。
でもとにかくこれは理解しておかないと、後々よく分からないバグではまったりするので一応まとめてみた。


もっと読む

Zend Framework の Router の使い方

Zend Framework には Zend_Controller_Router_Route っていうのがあり、これで URL のパスの制御ができる。
例えば、 enjoitech.jp/help っていう URL を実装したい時に、 Zend の標準の設定では /help は helpController の indexAction に通じるわけだけど、これを Router でうまい事変更してやれる。

ここの例では staticController っていう static なコンテンツを全部管理するコントローラーを作っておいて、そこに helpAction っていうアクションをつくり、/help をそこに通じるようルーティングする方法を説明する。


もっと読む

MySQL で CSV 操作

MySQL は CSV をインポートしたりエクスポートしたりできる。またバージョン 5.0 からはそのままデータテーブルとして扱ったりすることができるらしいんだけど、 CentOS-4.4 の MySQL5 では configured されてないっぽい。その内されたら試す。

エクスポート

SELECT * FROM table_name INTO OUTFILE 'data.txt' FIELDS TERMINATED BY ',';

インポート

LOAD DATA INFILE 'data.txt' INTO TABLE table_name FIELDS TERMINATED BY ',';

INTO の前に REPLACE とか IGNORE とかをつけると、重複キーが見つかった場合のアクションを指定できる。

PHP Smarty でゼブラ柄のテーブルを作るには

ゼブラ柄、ストライプ柄のテーブルを描写します。cycle 関数を使うと便利。

<table>
{foreach from=$hoges name=hoge item=h}
<tr style="background-color: {cycle values="#ccc, #fff"};">
<td>{$h.name}</td>
<td>{$h.value}</td>
</tr>
{/foreach}
</table>

mod_rewrite で特定の IP に対してアクセス制限するには

mod_rewrite を使って特定の IP のみアクセスさせる、もしくはアクセスさせないようにするには以下のようにする。

アクセスを拒否

RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.1$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html

アクセスを許可

RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html

CentOS 4 に mod_security を導入するには

久しぶりに最近ネットセキュリティについて触れることが多くなり、 iptables だの chkrootkit だの snort だの tripwire だの nessus だのと色々いじってる。しかも結構楽しい。
今後のブログネタはしばらくこの線で行こうかな。

その第一弾ってことで mod_security のインストールから設定までのメモ。
modsecurity はフリーの Web アプリケーションファイアーウォールで、 Apache のモジュールとしてインストールする。
Apache のリバースプロクシにインストールしてもいいし、 Web サーバと共存させて動作させてもいいっぽい。

とりあえず今回は Web サーバと共存の形で CentOS 4 にパッケージでインストールした。あとで CentOS 5 にもソースからインストールする予定。

環境

  • CentOS-4.4
  • Apache-2.0.59
  • mod_security

もっと読む

proftpd の初回アクセスを早くする

毎回調べてる気がしたので、メモ。
Proftpd の認証に時間がかかる場合、以下の二行を proftpd.conf に追加。

UseReverseDNS                   off
IdentLookups                    off

Safari for Windows のメニューを英語化する

最近 Safari の Windows バージョンが出て、ものすごくいかすんだけど、なんか知らないけど、言語が強制的に日本語にされてしまい、それを変える方法がメニューには見当たらない。
ネットを探したらやり方がのっていたのでメモ。


Safari のバージョンは 3.1 です。

  • Safari を一旦閉じる。
  • C:\Program Files\Safari\Safari.resources へ行く。
  • ja.lproj フォルダを _ja.lproj などに変更する。
  • en.lproj のコピーを取っておく。
  • en.lproj を ja.lproj に変更する。
  • Safari を起動する。

Salesforce で View ページに削除ボタンを付ける

Salesfoce のオブジェクト View ページは、デフォルトでアイテムを選択するチェックボックスは付いているものの、それに対するアクションが全くない。選択したアイテムを全削除したかったのにそれすらできない。
これを実現するには Custom button を作成して、 JavaScript で処理しないと駄目らしい。
とりあえず、初めの一歩という事でメモ。

環境は以下の通り。
Salsforce 8 Enterprise
ajax toolkit 11.1


もっと読む

vsftpd でドットファイルを表示させるには

vsftpd でドットファイルを表示させるには、 /etc/vsftpd/vsftpd.conf で force_dot_file を有効にすればいい。
例は CentOS-5.1 。

# vi /etc/vsftpd/vsftpd.conf
force_dot_file=YES

PHPでファイルアップロードのプログレスバーを実装するには

PHPでアップローダーを作るときに、プログレスバーをどうにか実装できるか調べたら、どうやらできるっぽかったので試してみた。
ちなみにできると言っても制約がいくつかあるみたい。まず第一に、 PHP 単体ではファイルのアップロード状況を把握したりすることはできない。そのため PECL APC エクステンションをインストールする必要がある。
また PHP のバージョンは 5.2 以上。 PECL APC エクステンションのバージョンは 3.0.13 以上。
そのため、うちの CentOS5 も FC6 もパッケージでは対応できなかった。

環境は以下の通り。
php-5.2.5
PECL APC-3.0.16

※追記
実はこの APC はスレッドセーフじゃないらしく、一つのアップロードが完了する前に次のアップロードが開始されると、現在進行中のキャッシュがクリアされるらしいので注意。


もっと読む

ASP .NET で <asp:TextBox> に対応した <label> を生成するには

<asp:TextBox> コントロールは動的に <input> と id 属性を生成してしまうため、 <label> の for 属性には静的な値は指定できない。
これに対応するにはやり方は二つ。

<asp:Label> の AssociatedControlID を使う方法

<asp:Label ID="lblName" AssociatedControlID="tbName">Label name</asp:Label>
<asp:TextBox ID="tbName" runat="server"></asp:TextBox>

<label> を使って ClientID を参照する方法

<label for="<%=tbName.ClientID %>">Label name</label>
<asp:TextBox ID="tbName" runat="server"></asp:TextBox>

Ajax を使ってファイルアップロードするには

PHPでファイルアップロードのプログレスバーを実装するにはに関連して、 Ajax を使ってファイルアップロードを実装してみた。
今までは Ajax 関連は prototype.js を使っていたんだけど、 multipart なデータの post に対応していないので、パッチを当てたりしないと実装できないらしい。

そんな面倒くさいことはしたくないので、ちょっと探していたら YUI(The Yahoo! User Interface Library) は対応しているっぽいのでそれを使ってみた時のメモ。

YUI は何気に cool だ。


もっと読む
ページ: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank1, rank2, rank3, rank7, rank9, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google