以前のリビジョンの文書です
かゆいところに届きそうで届かない場合につかえそうな小技をまとめてみようかと思う。
役に立つかたたないかは不明(w
ipから逆引きを行う関係でDDNSのドメインをそのままhosts.allowやhosts.denyに突っ込んでもちゃんと動いてくれない。
当たり前だけど(^^;
簡単な方法で正引きだけで制御する方法がないかとGoogle先生で調べると以下のサイトがHITした。
http://d.hatena.ne.jp/kazuhooku/20080502/1209704193
IPが書かれたファイルを読むことが可能なんだね。
このサイトではCRONでファイルに落としてるけど、『直接シェルスクリプト実行したらいいんじゃないの?』という神の声が聞こえてきたので試してみた。
まずIP取得用のスクリプトを用意する。(/etc/ddns_ip.shとでもする)
!#/bin/sh /usr/bin/host ドメイン名 | awk '/has address/ {print $4}'
保存して終了
パーミッションを適切に設定して実行できるようにしといてね
SSHの制限を行うのであれば以下のようにhosts.allowとdenyを編集します
・hosts.allow SSHD : /etc/ddns_ip.sh ・hosts.deny SSHD : ALL
指定したドメインから正常に接続が出来るか確認します。
接続出来なかった場合の事を考えて設定した時のSSHセッションは切らずに残しておくのが吉(w
環境としてはPHP5はyumでパッケージ管理しようと思う。
PHP4はサポートが切れてるのでソースでインストールしてバージョンアップは基本的にしない方向で構築をする。
# yum -y install php
* PHP4のインストール
ソースファイルのダウンロード
<code>
# wget http://jp2.php.net/get/php-4.4.9.tar.gz/from/jp.php.net/mirror
# tar zxvf php-4.4.9.tar.gz
# cd php-4.4.9
</code>
このままインストールするとMAGIC TYPEがPHP5とかぶってしまってApacheが正常に起動しなくなるので以下のファイルを修正する
<code>
# vi sapi/apache2handler/sapi_apache2.c
以下の設定行をみつけて修正をします。
#define PHP_MAGIC_TYPE “application/x-httpd-php”
↓
#define PHP_MAGIC_TYPE “application/x-httpd-php4”
変更が完了したら保存して終了
</code>
で・・・環境が整っていればこのままコンパイルしてインストールすればいいのだけど最低限の機能は必要なので以下をインストールしておく
<code>
# yum -y install httpd-devel
# yum -y install libjpeg-devel
# yum -y install libpng-devel
# yum -y install freetype-devel
# yum -y install postgresql-devel
# yum -y install mysql-devel
</code>
このくらいインストールしとけば問題ないかな?
PHP4をコンパイル、インストールしよう!
<code>
# ./configure \
–prefix=/usr/local/lib/php-4.4.9 \
–with-apxs2=/usr/sbin/apxs \
–enable-mbstring \
–with-pear \
–with-openssl \
–with-gd \
–with-freetype-dir \
–with-jpeg-dir \
–with-png-dir \
–with-zlib-dir \
–enable-pcntl \
–with-mysql \
–with-pdo-mysql \
–with-pgsql \
–with-pdo-pgsql \
–enable-ftp \
–enable-sockets
※コンフィグオプションはそれぞれの環境にあわせて修正する
# make
本当はテストした方が良いんだけどたぶん大丈夫なのでインストールしちゃう(w
# make install
</code>
* PHP4の設定
<code>
# cp php.ini-recommended /usr/local/lib/php-4.4.9/lib/php/php.ini
# vi /usr/local/lib/php-4.4.9/lib/php/php.ini
以下の設定行をみつけてコメントアウトを外して修正
;include_path = ”.:/php/includes”
↓
include_path = ”.:/usr/local/lib/php-4.4.9/lib/php”
aliasを設定しておこう
# vi /etc/profile
最終行に以下を追加
alias php4=/usr/local/lib/php-4.4.9/bin/php
alias pear4=/usr/local/lib/php-4.4.9/bin/pear
追加し終わったら保存して終了
設定を反映させるのに以下のコマンドを実行
# source /etc/profile
</code>
バージョンの確認をしてみよう
php -v
PHP5のバージョンが表示されましたか??
php4 -v
PHP4のバージョンが表示されましたか??
===== 特定ディレクトリのファイルを更新日付で消す方法 =====
なんちゃってプログラマがPHPでプログラム中にSESSIONを利用したのだが、/var/lib/php/session/(php.iniで指定可能)に保存されるsess_から始まるセッションファイルが削除されなくてどうしたものかと考えた挙句にCRONで一定時間毎に消すしか思いつきませんでした(^^;
すぐに忘れると思うのでメモ
find /var/lib/php/session/ -name “sess_*” -exec rm {} \;