Linux 備忘録

Archive for 12月, 2007

phpにおいてFatal error (Allowed memory exhausted)発生

日曜日, 12月 30th, 2007

これは、phpの利用可能なメモリーサイズをオーバーしたことにより発生します。

以下のphp.iniのmemory_limit値を大きくすれば解決します。

(例)memory_limit = 16M

ここでは、リミットを8Mから16Mに変更しました。

Xoops を利用中に発生しましたが、Wordpressでも同様に発生します。php

のメモリー不足の問題ですから。

Squirrel Mail 本文の文字化け

金曜日, 12月 28th, 2007

 UTF-8のサーバーからでもeuc-jpのサーバーからでもシェルスクリプトでメールを送ると、本文が文字化けしてしまう。

原因は、Content-type , charset を読み込まないためのようだが、squirrel mail のサイトにあった以下の追記をmime.phpのtranslateText functionにしてみました。結果は、後で検証する予定。結局、これでは、文字化けは修正されなかった。後で、i18n.phpを修正してみる予定。
function translateText(&$body, $wrap_at, $charset, $charset_converted = false) {
global $where, $what; /* from searching */
global $color; /* color theme */
global $languages, $squirrelmail_language;

require_once(SM_PATH . ‘functions/url_parser.php’);

/* — 追加部分始まり —*/
if ( $squirrelmail_language == ‘ja_JP’ && $charset == ‘US-ASCII’ ){
$charset = $default_charset;
}
/* — 追加部分終わり —*/

シェルのtest コマンド 

木曜日, 12月 27th, 2007

シェルのtest コマンドの仕様を忘れがちなのでメモしておく。

if 文など条件式を評価する場合には test コマンドを使用する。どのような評価を行うかはオプションにより細かく指定することが可能である。 test コマンドは評価結果に従い、真(0)か偽(1)かの終了ステータスを返すのみで、画面上へのメッセージ出力等は一切行わない条件評価に特化したコマンドである。

(more…)

php safe モードでsquirrel mail の運用

水曜日, 12月 26th, 2007

Webmail squirrel Mail において、phpをsafe mode = on で運用すると、以下のようなエラーが発生して、使用できなくなります。

オープンエラー ../data/default_pref
デフォルトの設定ファイルが見付からないか読み込めません。
このエラーとともに管理者に連絡を取ってください。

php のセーフモードでは、安全のため、所有者の異なるファイルをアクセスできなくなるためにこのような現象となります。

これは、data ディレクトリーの所有者、所属グループがapache.apache 等になっていて、他のディレクトリーと異なる、所有者、所属グループになっているのが原因です。

これを解決するためには、squirrel mail のディレクトリーの所有者をdataディレクトリーの所有者apacheと同じに変更すれば良い。

従って、squirrel Mail のディレクトリー(ここでは /var/www/webmail ) 以下のようなコマンドで変更すれば、php safe-mode でsquirrel mail を使用できるようになります。

> chown -R apache.apache /var/www/webmail

簡単ですね。ネットで検索すると困っている人も居られるようで、参考になれば幸いです。
 

HTML コメント

土曜日, 12月 22nd, 2007

以前HTML 2.0の場合、RFC 1866の”3.2.5. Comments”において次のように定義されていました:

To include comments in an HTML document, use a comment declaration. A comment declaration consists of ‘<!’followed by zero or more comments followed by ‘>’. Each comment starts with ‘- -’ and includes all text up to and including the next occurrence of ‘- -’. In a comment declaration, white space is allowed after each comment, but not before the first comment. The entire comment declaration is ignored.

つまり、

  • コメント宣言<! で始める
  • コメントは ”- -”で始まり、次に ”- -” が現れるまでの 全ての 文字がコメントとなる
  • コメントは0個以上、複数あっても、複数行にわたっても構わない
  • > で閉じる
  • コメントの後にはスペースを入れても良いが、最初のコメントの前(<!の直後)にはスペースを入れてはいけない

これが、HTML 4.0で以下のように変更されました。

HTML 4.0においては、コメントの定義は次のようになりました。

HTML comments have the following syntax:

<!-- this is a comment -->
<!-- and so is this one,
     which occupies more than one line -->

White space is not permitted between the markup declaration open delimiter(”<!”) and the comment open delimiter (”- -”), but is permitted between the comment close delimiter (”- -”) and the markup declaration close delimiter (”>”). A common error is to include a string of hyphens (”- - -”) within a comment. Authors should avoid putting two or more adjacent hyphens inside comments.

Information that appears between comments has no special meaning (e.g., character references are not interpreted as such).

HTML 4.0 Specification 3.2.4

要するに、コメントは<!- - this is a comment - ->のスタイルだけと覚えていたほうが良いでしょう。改行してもいいけど、その中に複数のハイフンを続けて記述しちゃだめ、ということです。HTML 2.0では許されていた「<!- - ここに - -  - - コメントあり - ->」というスタイルは、却下されています。最後の–と>の間にスペースは許されるけど、意味がない気がします。

MySQL、user の外部からの接続

金曜日, 12月 21st, 2007

★ 外部からのusername@hostname の接続

MySQLへアクセスするためのユーザー権限情報は、「mysql」というデータベースの「user」というテーブルで管理されている。

先ずは、全てにアクセス権のあるユーザーを作成してみましょう。

> grant all privileges on *.*  to username@’localhost’ identified by ‘Password’ with grant option;

これで、全権限のあるusername が作成される。

これは、自サーバーに繋ぐためのユーザーである。

任意の外部からこのユーザー名でMySQLに接続するためには、以下のユーザーを追加しなければなりません。

> grant all on privileges *.* to username@’%’ identified by ‘Password’ with grant option;

%は、任意のIPアドレスを表している。

これにより外部からもこのユーザー名で接続することができる。

● 特定のIPアドレスからのみ接続させたい場合

hostname には外部から接続するサーバーのIPアドレスの逆引きの値を入れる。

例 ’dxxx.xxx.ppp.asahi-net.or.jp’

これで、特定のIPアドレスから接続できるよになる。

何故逆引きIPアドレスなのかは分からない。エラーメッセージから、そのようにした。

外部からのドメイン名を入れれば良いのかもしれないが、未確認です。

メタ文字

火曜日, 12月 18th, 2007

シェルには、特殊な意味を持つ予約されている記号(メタ:meta文字)がある。

このメタ文字は、忘れがちなので、以下に列挙して置く。

“, $, @, &, ‘, (, ), ^, |, [, ], {, }, ;, *, ?, <, >, `, \,  スペース,改行、タブといったエスケープ・シーケンス (more…)

tar

月曜日, 12月 17th, 2007

圧縮 bz2 とzipの展開

インターネットで公開されているプログラムやソースファイルは、ほとんどが圧縮されている。Linuxの場合はgzipで圧縮されることが多いが、最近ではより圧縮率の高いbzip2が使われることも多くなってきた。bzip2で圧縮されたファイルは、拡張子が.bz2となる。一方gzipで圧縮された場合は、拡張子が.gzとなる。

拡張子が.tar.bz2になっているファイルを展開するには、jオプションを付けてtarコマンドを実行する。

tar jxvf  xxx.tar.bz2

一方拡張子が.tar.gzになっているファイルを展開するには、zオプションを付けてtarコマンドを実行する。

tar zxvf xxx.tar.gz

(more…)