概要 †
Cygwin の設定に関する事.
Cygwin のインストール †
- Cygwin for Professionals の手順をほぼそのまま実行.やっぱ Administrators グループに属するユーザアカウントを常用するなんてダメっすよ.
- Life with Cygwin 20: UTF-8 Cygwin で説明されているように cygwin1.dll をコピー.Shift_JIS からの脱却.
以降は全て,上記リンク先の手順でインストールした Cygwin 1.5.25 を用いた場合での記述である.
端末エミュレータ UTF-8 TeraTerm Pro の設定 †
手順 †
起動後すぐに Cygwin を使いたいので.
- ttermpro.exe を起動し,メニューの 設定 -> 設定の保存... で設定ファイルをマイ ドキュメントの直下に保存する.("D:\My Documents\TeraTerm.ini" とする.)
- 以下の内容のマクロファイル ("D:\My Documents\cygconnect.ttl" とする.) を作成する.
; 下の 1 行だけで良いはずだけど…
cygconnect
; 接続後に設定ファイルを再度読み込まないと反映されない値がある様子
; (例えば KanjiReceive や KanjiSend の値)
restoresetup "D:\My Documents\TeraTerm.ini"
- あらかじめ保存した TeraTerm Pro の設定ファイルを編集する.
; 右辺にマクロファイルの絶対パスを書く
StartupMacro="D:\My Documents\cygconnect.ttl"
注意点 †
- ttermpro.exe は,ユーザのマイ ドキュメントの直下に TeraTerm.ini がある場合はそれを,無い場合は ttermpro.exe と同じディレクトリにある TeraTerm.ini を,それぞれ起動時に読み込む.
- 上記例の通り,俺はマイ ドキュメントをシステムドライブ (C: とか) でないドライブ (D: とか) に移動して使っている.
参考 URI †
スーパーユーザへの切り替え †
手順 †
- 管理者権限を持つ Windows ユーザアカウントで Cygwin を起動する.
- sshd を Windows のサービスとして登録する.
# ssh-host-config -y
(中略)
Default is "ntsec". CYGWIN= <- デフォルトのまま ntsec と入力
(後略)
- sshd を起動する.
# cygrunsrv -S sshd
コントロールパネル (-> パフォーマンスとメンテナンス) -> 管理ツール -> サービス を開いて,"CYGWIN sshd" というサービスが起動していることを確認できれば OK.
あとは事あるごとに以下を実行すればよい.
- 管理者権限を持たない Windows ユーザアカウントで Cygwin を起動する.
- 管理者権限を持つユーザ (root とする.) として SSH ログインする.
$ ssh root@localhost
注意点 †
- Cygwin では su や sudo を使えないらしい.
- `login root` を実行しても "login: no shell: /bin/bash: Permission denied" などと言われる.
- 最初は -y オプションをつけずに ssh-host-config を実行して,メッセージを読んだ上で yes と入力していった方が良いだろうね.
- SSH サーバを無闇に外部に公開したりしないように.
- 設定ファイル (/etc/sshd_config とか) には注意深く目を通しておく.
- ファイアウォールの設定も確認する (ポート 22 をブロックするとか).
参考 URI †
Apache2 で (スタンドアロンの) Web サーバを立てる †
Apache 2.2.6 で確認.
手順 †
- cygserver を Windows のサービスとして登録する.
# cygserver-config -y
(略)
# cygrunsrv -S cygserver
上記と同様に "CYGWIN cygserver" というサービスが起動していることを確認できれば OK.
- apache2 を Windows のサービスとして登録する.
# cygrunsrv -I apache2 -d "CYGWIN apache2" -p /usr/sbin/httpd2 -a "-DNO_DETACH" -e "CYGWIN=server" -o
# cygrunsrv -S apache2
上記と同様に "CYGWIN apache2" というサービスが以下略.または Web ブラウザで http://localhost/ にアクセスして,"It works!" とかいうページが表示されれば OK.
注意点 †
- 最初は -y オプションをつけずに cygserver-config を実行して,メッセージを読んだ上で yes と入力した方が良いだろうね.
- 環境変数 CYGWIN の値に "server" を必ず含める.
- Windows をシャットダウンする時に Apache2 も停止するよう,-o オプションを指定する.
- Windows Vista の場合は -O オプションの方が適切.詳しくは README 参照.
- 当然ながら,/etc/apache2/httpd.conf などを修正するように.
参考 URI †
PHP5 のインストール †
PHP 5.2.5 で確認.
手順 †
- あらかじめ,Cygwin の setup.exe を使って apache2-devel, apr1, aprutil1, libxml2-devel 各パッケージをインストールしておく.
- http://php.net/ からソースを取得し,展開し,./configure を実行する.
# tar xzf php-5.x.x.tar.gz
# cd php-5.x.x
# ./configure --enable-mbstring --with-apxs2=/usr/sbin/apxs2
- Makefile を編集する.
- 変数 EXTRA_LIBS の値に -lhttpd2core -lapr-1 -laprutil-1 を追加する.
- ターゲット libs/libphp$(PHP_MAJOR_VERSION).bundle の生成ルールにおいて:
- 半ば強引に make install する.
# make
# make libs/libphp5.bundle
# cp libs/libphp5.so /usr/lib/apache2/cygphp5.so
# make install
- (/etc/apache2/httpd.conf に次の行が追記されているか確認する.)
LoadModule php5_module lib/apache2/cygphp5.so
- /etc/apache2/mime.types に以下の 2 行を追記する.
application/x-httpd-php php
application/x-httpd-php-source phps
- Apache2 を再起動する.
# cygrunsrv -E apache2
# cygrunsrv -S apache2
- DocumentRoot (デフォルトだと /srv/www/htdocs/) とかに以下の内容のファイルを作成し,Web ブラウザでアクセスする.
<?php phpinfo() ?>
PHP や Web サーバに関する諸々の値が閲覧できれば OK.
注意点 †
- 俺自身,PHP とその設定などについては経験が浅すぎるため,上記をあまり鵜呑みにしないようにw
- 他にも指定する必要のある ./configure のオプションがあるかもしれない.
参考 URI †
|