- んっ cronでpearが動かない!?
- 2010.05.27
ブラウザから起動すると正常に動くプログラムがcronだと動かないというのはたまにある現象だし、今までは殆どの場合、パスの違いが原因でした。
今回、pearをcronで動かしたかったのだが、動かなかったので、include_pathを調べてみたが合ってる様子。
色々試してみたところ、PHPがセーフモードの為、動かなかったのが判明した。
ブラウザで起動する場合は、php.ini、httpd.conf、.htaccessの設定を読むが、cron(CLI)ではデフォルトはphp.iniのみだそうなので、php.iniのsafe_modeをOffにしようとも思ったが、そうするとサーバ全てに反映されてしまい、セキュリティ上好ましくない為、cronの記述に「/usr/bin/php -d safe_mode=off」のように -d safe_mode=off を追加することにより問題が解消されました。
- 携帯サイトでのmailto使用について
- 2010.02.05
携帯サイトを作成していて mailto リンクで件名と本文を指定するのに下記のように指定します。
<a href=”mailto:メールアドレス?subject=件名&body=本文”>
このとき、件名と本文はURLエンコードする必要があるのだが、キャリアによって渡す文字コードに違いがあります。
DoCoMo、au は shift_JIS に変換してから URLエンコード、SoftBankはUTF-8にしてからURLエンコードしないと文字化けが起こります。
ですので、アクセスされた端末を判別し、それに合わせた文字コードに変換しURLエンコードするという手順になります。サンプルコードはこんな感じ
<a href=”mailto:?subject=<?php echo urlencode(mb_convert_encoding(’題名’, ’sjis’));?>&body=< ?php echo urlencode(mb_convert_encoding(’本文’, ’sjis’))?>”>友達に知らせる</a>
- 空メールでPHPを起動する
- 2010.01.21
空メール処理を作成したので、メモします。
1.空メール送信用メールアドレス作成
2.受信メールボックスにメールが来たらPHPを起動するため、.qmailを編集。
使えるネットの場合、/var/qmail/mailnames/自分のドメイン/追加したメールアカウント/に.qmailがあるので、SSHで接続し、該当ディレクトリに移動してmoreコマンドなどで内容を表示してみると[root@*********]# more .qmail
| true
| /usr/bin/deliverquota ./Maildirとなっているので、1行目に以下の行を追加。
| /usr/bin/php -d safe_mode=off /var/www/vhosts/自分のドメイン/private/mail.php
※この例では、privateディレクトリのmail.phpを起動する
(セキュリティの為、ウェブでアクセス出来ないディレクトリに保存)
privateディレクトリのパーミッションは7053.mail.phpに処理を記述
と、このような処理になるのだが、動かなくて大分苦労しました。
結局privateディレクトリのパーミッションが原因だと分かり無事解決
- 閏年(うるう年)かを判定する
- 2009.12.19
日付処理を行う場合、閏年(一年が366日ある年、2月29日のある年)があるため、閏年かどうかを考慮しなければならない場合があります。
閏年は以下の定義のようなので、これさえ分かっていれば処理は簡単です。1.4で割り切れる年
2.100で割り切れる年は、閏年ではない
3.400で割り切れるこれを元に、PHP を使って書いてみると・・・
※$yearは判定する年<?php
if (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0) {
print ‘閏年’;
} else {
print ‘閏年ではない’;
}
?>
PHP
- PEARのインストール
- 2009.11.21
共用サーバー(使えるネット)でFTPを使用したPEARライブラリのインストール方法をまとめます。
(1)http://pear.php.net/go-pearにアクセスして表示されたスクリプトをコピーしてgo-pear.php等の名前を付けてローカルに保存する。
(2)ウェブサーバー上にgo-pear等、適当な名前のディレクトリを作成し、そこに先程保存したgo-pear.phpをアップロード。
(3)第三者にアクセスされないよう、Basic認証でアクセス制限をかける。
「.htaccess」 の内容
# このフォルダーのアクセス制限 パスワードの設置
AuthUserFile /var/www/vhosts/**********/httpdocs/go-pear/.htpasswd
#制限をかけたいディレクトリ
AuthGroupFile /dev/null
AuthName “Please enter your ID and password“
AuthType Basic
require valid-user「.htpasswd」 の内容
ID:暗号化されたパスワード(4)PEARをインストールするディレクトリを作成し、そのディレクトリのパーミッションを777に変更。
(5)ブラウザでgo-pear.phpにアクセス。
1にPEARをインストールするパスを入力。
使えるネットの場合は「/var/www/vhosts/ドメイン名/httpdocs/pear」11にPHPパスを入力。
使えるネットの場合は「/usr/bin/php」全ての設定が終わったら「Install」をクリック。
(6)include_pathを設定。
共用サーバーではphp.iniを編集出来ないので、.htaccessで設定する。php_value include_path “.:/var/www/vhosts/ドメイン名/httpdocs/pear”php_value include_path “.:/var/www/vhosts/ドメイン名/httpdocs/pear”


