この文書の現在のバージョンと選択したバージョンの差分を表示します。
|
linux:memo [2009/01/23 03:00] miyako |
linux:memo [2011/03/04 01:51] (現在) miyako |
||
|---|---|---|---|
| ライン 3: | ライン 3: | ||
| 役に立つかたたないかは不明(w | 役に立つかたたないかは不明(w | ||
| \\ | \\ | ||
| + | |||
| + | ===== ネットワークを100M/FULL固定設定 ===== | ||
| + | /etc/sysconfig/network-scripts/ifcfg-ethxファイルを開く | ||
| + | |||
| + | 以下の1行を追加 | ||
| + | <code> | ||
| + | ETHTOOL_OPTS="speed 100 duplex full autoneg off" | ||
| + | </code> | ||
| + | |||
| + | ネットワークを再起動 | ||
| + | |||
| + | service network restart | ||
| ===== hosts.allowやdenyでDDNSドメインを制御する ===== | ===== hosts.allowやdenyでDDNSドメインを制御する ===== | ||
| ライン 16: | ライン 28: | ||
| まずIP取得用のスクリプトを用意する。(/etc/ddns_ip.shとでもする)\\ | まずIP取得用のスクリプトを用意する。(/etc/ddns_ip.shとでもする)\\ | ||
| <code> | <code> | ||
| - | !#/bin/sh | + | #!/bin/sh |
| /usr/bin/host ドメイン名 | awk '/has address/ {print $4}' | /usr/bin/host ドメイン名 | awk '/has address/ {print $4}' | ||
| </code> | </code> | ||
| ライン 34: | ライン 46: | ||
| 接続出来なかった場合の事を考えて設定した時のSSHセッションは切らずに残しておくのが吉(w\\ | 接続出来なかった場合の事を考えて設定した時のSSHセッションは切らずに残しておくのが吉(w\\ | ||
| - | ===== PHP4とPHP5を同一サーバ上でモジュールとして設定する方法 ===== | + | |
| - | 環境としてはPHP5はyumでパッケージ管理しようと思う。\\ | + | |
| - | PHP4はサポートが切れてるのでソースでインストールしてバージョンアップは基本的にしない方向で構築をする。\\ | + | ===== 特定ディレクトリのファイルを更新日付で消す方法 ===== |
| + | なんちゃってプログラマがPHPでプログラム中にSESSIONを利用したのだが、/var/lib/php/session/(php.iniで指定可能)に保存されるsess_から始まるセッションファイルが削除されなくてどうしたものかと考えた挙句にCRONで一定時間毎に消すしか思いつきませんでした(^^;\\ | ||
| \\ | \\ | ||
| - | * PHP5のインストール | + | すぐに忘れると思うのでメモ\\ |
| + | find /var/lib/php/session/ -name "sess_*" -exec rm {} \; | ||
| + | ===== swap領域を増やそう!! ===== | ||
| + | swap領域を増やす事はインストールの時にちゃんと考えてたら大丈夫なんだけど。。。\\ | ||
| + | どうしても増やしたいって場合あるよね(w\\ | ||
| + | そんな時は以下の手順で増やす事が可能。 | ||
| <code> | <code> | ||
| - | # yum -y install php | + | # dd if=/dev/zero of=/var/swapfile bs=1024 count=2000000 |
| </code> | </code> | ||
| - | // | + | 上記の例だと/var/swapfileに2GBのSWAPファイルの枠を作成するって事だね。\\ |
| - | * PHP4のインストール | + | 次にSWAPFILEをつくる |
| - | ソースファイルのダウンロード | + | |
| <code> | <code> | ||
| - | # wget http://jp2.php.net/get/php-4.4.9.tar.gz/from/jp.php.net/mirror | + | # mkswap -v1 /var/swapfile |
| - | # tar zxvf php-4.4.9.tar.gz | + | |
| - | # cd php-4.4.9 | + | |
| </code> | </code> | ||
| - | + | これでSWAP領域は確保完了。\\ | |
| - | このままインストールするとMAGIC TYPEがPHP5とかぶってしまってApacheが正常に起動しなくなるので以下のファイルを修正する | + | \\ |
| + | じゃあ、SWAP領域としてマウントしてみよう | ||
| <code> | <code> | ||
| - | # vi sapi/apache2handler/sapi_apache2.c | + | # swapon /var/swapfile |
| + | </code> | ||
| + | ちゃんとSWAP領域が増えてるかfreeコマンドなどで確認\\ | ||
| + | \\ | ||
| + | アンマウントする時は | ||
| + | <code> | ||
| + | # swapoff /var/swapfile | ||
| + | </code> | ||
| + | \\ | ||
| + | SWAP領域は全部で8つまで持つことができるよ(^^)\\ | ||
| + | \\ | ||
| + | 毎回手動でマウントするのが面倒な時は・・・\\ | ||
| + | <code> | ||
| + | /etc/rc.d/rc.localに以下のコマンドを追加 | ||
| - | 以下の設定行をみつけて修正をします。 | + | /sbin/swapon /var/swapfile |
| - | #define PHP_MAGIC_TYPE "application/x-httpd-php" | + | |
| - | ↓ | + | |
| - | #define PHP_MAGIC_TYPE "application/x-httpd-php4" | + | |
| - | 変更が完了したら保存して終了 | + | もしくはfstabを編集する |
| - | </code> | + | |
| - | で・・・環境が整っていればこのままコンパイルしてインストールすればいいのだけど最低限の機能は必要なので以下をインストールしておく | + | vi /etc/fstab |
| + | |||
| + | /swapfile swap swap defaults 0 0 | ||
| + | </code> | ||
| + | \\ | ||
| + | ===== .htaccessで一部のディレクトリのみBasic認証を外したい場合 ===== | ||
| + | 認証させたくないディレクトリに.htaccessを設置して以下の3行を書くだけでおっけー! | ||
| <code> | <code> | ||
| - | # yum -y install httpd-devel | + | Satisfy any |
| - | # yum -y install libjpeg-devel | + | order allow,deny |
| - | # yum -y install libpng-devel | + | allow from all |
| - | # yum -y install freetype-devel | + | |
| - | # yum -y install postgresql-devel | + | |
| - | # yum -y install mysql-devel | + | |
| </code> | </code> | ||
| - | このくらいインストールしとけば問題ないかな?\\ | ||
| \\ | \\ | ||
| - | PHP4をコンパイル、インストールしよう! | + | ===== isoファイルのmount ===== |
| + | いつも忘れて他のサイトを探すので書いておこう(^^; | ||
| <code> | <code> | ||
| - | # ./configure \ | + | mount -t iso9660 -o loop マウントするisoファイル マウントポイント |
| - | --prefix=/usr/local/lib/php-4.4.9 \ | + | </code> |
| - | --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 | + | ===== isoファイルの作り方 ===== |
| + | そもそもisoファイルってどうやったら作れるのって方は読んでくださいね | ||
| - | 本当はテストした方が良いんだけどたぶん大丈夫なのでインストールしちゃう(w | + | CD/DVDをドライブに挿入したらmount不要で以下のコマンドを実行 |
| - | # make install | + | <code> |
| + | dd if=/dev/cdrom of=ファイル名.iso | ||
| </code> | </code> | ||
| + | ほら、出来たでしょ(^^) | ||
| + | |||
| + | ===== パスワード付zipファイル ===== | ||
| + | |||
| + | zip -P パスワード -e ZIPファイル名 圧縮するファイルやフォルダ | ||
| + | |||
| + | ===== ファイルの文字コード確認 ===== | ||
| + | kccコマンドに-cオプションをつけて実行するとファイルの文字コードがわかる | ||
| - | * PHP4の設定 | ||
| <code> | <code> | ||
| - | # cp php.ini-recommended /usr/local/lib/php-4.4.9/lib/php/php.ini | + | $ kcc -c ファイル名 |
| + | ファイル名: EUC | ||
| + | </code> | ||
| - | # vi /usr/local/lib/php-4.4.9/lib/php/php.ini | + | ===== 実行プロセスの確認方法 ===== |
| + | psコマンドのオプションはかなりあるので必要に応じて組み合わせを変えてやらないと思ったように結果が表示されない。 | ||
| - | 以下の設定行をみつけてコメントアウトを外して修正 | ||
| - | ;include_path = ".:/php/includes" | ||
| - | ↓ | ||
| - | include_path = ".:/usr/local/lib/php-4.4.9/lib/php" | ||
| - | aliasを設定しておこう | + | 実行中のプロセス一覧にオプションも表示させたい場合 |
| - | # vi /etc/profile | + | <code> |
| + | # ps -axf | more | ||
| - | 最終行に以下を追加 | + | ■実行結果 |
| - | alias php4=/usr/local/lib/php-4.4.9/bin/php | + | PID TTY STAT TIME COMMAND |
| - | alias pear4=/usr/local/lib/php-4.4.9/bin/pear | + | 1 ? Ss 0:11 init [3] |
| + | 2 ? S< 0:00 [migration/0] | ||
| + | 3 ? SN 0:00 [ksoftirqd/0] | ||
| + | 4 ? S< 0:00 [watchdog/0] | ||
| + | 5 ? S< 0:00 [events/0] | ||
| + | 6 ? S< 0:00 [khelper] | ||
| + | 7 ? S< 0:00 [kthread] | ||
| - | 追加し終わったら保存して終了 | + | (以下続く) |
| + | </code> | ||
| + | |||
| + | 実行中のプロセスのCPUやメモリの使用率なども表示したい場合 | ||
| + | <code> | ||
| + | # ps auz | more | ||
| + | |||
| + | ■実行結果 | ||
| + | USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND | ||
| + | root 1 0.0 0.0 2068 612 ? Ss Aug17 0:11 init [3] | ||
| + | root 2 0.0 0.0 0 0 ? S< Aug17 0:00 [migration/0] | ||
| + | root 3 0.0 0.0 0 0 ? SN Aug17 0:00 [ksoftirqd/0] | ||
| + | root 4 0.0 0.0 0 0 ? S< Aug17 0:00 [watchdog/0] | ||
| + | root 5 0.0 0.0 0 0 ? S< Aug17 0:00 [events/0] | ||
| + | root 6 0.0 0.0 0 0 ? S< Aug17 0:00 [khelper] | ||
| + | root 7 0.0 0.0 0 0 ? S< Aug17 0:00 [kthread] | ||
| + | root 10 0.0 0.0 0 0 ? S< Aug17 0:15 [kblockd/0] | ||
| + | root 11 0.0 0.0 0 0 ? S< Aug17 0:00 [kacpid] | ||
| + | root 78 0.0 0.0 0 0 ? S< Aug17 0:00 [cqueue/0] | ||
| + | |||
| + | (以下続く) | ||
| - | 設定を反映させるのに以下のコマンドを実行 | ||
| - | # source /etc/profile | ||
| </code> | </code> | ||
| - | バージョンの確認をしてみよう\\ | + | ===== ポート番号から実行ユーザとプロセスを表示する ===== |
| - | php -v\\ | + | fuserコマンドを利用する |
| - | PHP5のバージョンが表示されましたか??\\ | + | |
| - | \\ | + | |
| - | php4 -v\\ | + | |
| - | PHP4のバージョンが表示されましたか??\\ | + | |
| - | \\ | + | |
| - | 最後にapacheでどう振り分けるかの設定をする\\ | + | |
| - | 基本はPHP5を使い、必要に応じてPHP4に変更する事にするためには\\ | + | |
| <code> | <code> | ||
| - | AddType application/x-httpd-php4 .php | + | # fuser -vn tcp 80 |
| + | |||
| + | ■実行結果 | ||
| + | USER PID ACCESS COMMAND | ||
| + | 80/tcp: apache 942 F.... httpd | ||
| + | apache 943 F.... httpd | ||
| + | apache 944 F.... httpd | ||
| + | apache 945 F.... httpd | ||
| + | apache 946 F.... httpd | ||
| + | apache 947 F.... httpd | ||
| + | apache 948 F.... httpd | ||
| + | apache 949 F.... httpd | ||
| + | root 2007 F.... httpd | ||
| </code> | </code> | ||
| - | を必要に応じたconfファイル内で設定すればおっけ~\\ | ||
| - | .htaccessで設定も可能だよ\\ | ||
| - | ===== 特定ディレクトリのファイルを更新日付で消す方法 ===== | + | ===== Basic認証用ユーザを作成 ===== |
| - | なんちゃってプログラマがPHPでプログラム中にSESSIONを利用したのだが、/var/lib/php/session/(php.iniで指定可能)に保存されるsess_から始まるセッションファイルが削除されなくてどうしたものかと考えた挙句にCRONで一定時間毎に消すしか思いつきませんでした(^^;\\ | + | |
| - | \\ | + | 通常は |
| - | すぐに忘れると思うのでメモ\\ | + | <code> |
| - | find /var/lib/php/session/ -name "sess_*" -exec rm {} \; | + | # htpasswd -c 認証用ファイル アカウント |
| + | |||
| + | とコマンドを実行するとパスワード確認があって、正常に入力する事でパスワードファイルが完成する。 | ||
| + | </code> | ||
| + | |||
| + | しかし、シェルスクリプトなどから実行の場合は出来ればパスワード入力を遠慮した。 | ||
| + | |||
| + | そこで、以下のオプションを試してみよう | ||
| + | |||
| + | <code> | ||
| + | # htpasswd -nb アカウント名 パスワード | ||
| + | |||
| + | </code> | ||
| + | |||
| + | アカウントとパスワードが表示されたはずだが・・・どうだろうか? | ||
| + | この標準出力をhtpasswdに挿し込めば以上終了。 | ||
| + | いや~簡単だったね。 | ||