« 8月 2010 9月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

  • んっ 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 を追加することにより問題が解消されました。


    ホームページ制作・WEBシステム開発

【この記事のタグ】
, ,
  • 携帯サイトでの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’));?>&amp;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ディレクトリのパーミッションは705


    3.mail.phpに処理を記述


    と、このような処理になるのだが、動かなくて大分苦労しました。
    結局privateディレクトリのパーミッションが原因だと分かり無事解決 :emoji92:

【この記事のタグ】
, ,
  • 閏年(うるう年)かを判定する
  • 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 ‘閏年ではない’;
    }
    ?>

【この記事のタグ】
  • 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にアクセス。


    pear1
    ここでは「Next」をクリック


    pear2

    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”

【この記事のタグ】
,
Page Top