Table of Contents
はじめに
自宅サーバもしくは検証用環境としてCUIのLinuサーバーを立てたい。
- 自宅サーバ
- Windows環境での懸賞やウェブプログラミング用
VMWareのインストール
WindowsでLinux環境を構築する場合、候補としてVMWareとCygwinがある。 経験的にCygwinでのウェブプログラミングはトラブルが多い。 なのでプログラミング目的であれば素直にVMWareを選択するのが良い。 ただし、どちらがいいというわけでなく、併用するのが一番良いと思う。
- Web系プログラミングをするときはVMWare
- その他DOSを補完する意味合いでのLinuxコマンドを利用するときにCygwin
VMWare
- メリット
- linuxそのものなので、環境周りの不具合は発生しづらい。
- システムをスナップショットで保存できる。だから環境をまるごと移動するのが楽ちん。
- 直接Linuxをインストールした場合ドライバがないためにうまく動かない場合があるが、VMWareならWindowsのドライバが動いてれば多分動く。
- Windoowsでしか対応していないソフトがどうしてもあるため、直接インストールするとそれらを利用することが面倒になる。
- Windowsのキーバインド(caps-ctrlの入れ替え)などがそのままLinux上で使える。
- デメリット
- マルチモニタとかが使えない。
- 3Dデスクトップが使えない。
- 動作が重い
- パフォーマンスが落ちる。
- IPアドレス周りで不具合が出るかも
- ファイルの共有が面倒
- メモリを食う
Cygwin
- 長所
- 早い
- ファイルの共有が簡単
- Windows用のファイルにコマンドが適用できる
- 短所
- linuxの連携で度々不具合が起きる(パスの指定など)
準備
- VMWarePlayerをインストールしておく
- DVDのisoイメージをダウンロード
- VMWareイメージをメモリ1GBで作成
- isoイメージをセットして起動する。
VMWareのネットワークアダプタについて
下記でそれぞれのIPアドレスを確認できる。 このIPアドレスはポートフォワードなどをするときに必要になる。
- VMNet1 - ホストオンリー接続用
- VMNet8 - NAT接続用
windowsのhosts設定
あらかじめゲストOS側でIPアドレスを確認しておく。 ゲストOSのIPを控えておき、Windowsからアクセスに使用する。
$ /sbin/ifconfig
バーチャルホスト用にローカルドメインをhostsファイルに記述する。
C:/WINDOWS/system32/drivers/etc/hosts 127.0.0.1 localhost.localdomain 192.168.10.x vmware.localdomain
hotsファイル編集後、下記を実行
dos> nbtstat -R
puttyのインストール
- ごった煮版をインストールする。
- winscpもインストールしておく
まずやっておくこと
- とりあえずシステムを最新にする。
ビープ音を消す。
- [システム]-[管理]-[ハードウェア]-[サウンド]-[効果音の設定]-[サウンドタブ]
- [警告音と硬化オウンを鳴らす]をチェックする
- 残りのチェックを外す。
iptablesの設定
- [システム]-[管理]-[セキュリティレベルとファイヤウェールの設定]
- HTTP,HTTPS,SSHにチェックを入れる。
ユーザ周りの設定
rootで作業する。
// ユーザの作成 # useradd miki # passwd miki // root権限を許可するグループを作成 # groupadd sysadmins # usermod -G sysadmins miki ;; グループ追加 # usermod -g sysadmins miki ;; プライマリグループを指定 // sudoを使えるようにする。 // visudoでsudersファイルの末尾にグループを追加する。%を忘れないように。 # visudo %sysadmins ALL=(ALL) ALL
sshd周り
CENTOSはsshdは初めからあるので、rootの権限周りだけ設定する。
$ sudo vi /etc/ssh/sshd_config ## rootでのログインを禁止 PermitRootLogin no ## パスワード認証の有無 ## 外部から接続しないのであれば(vmware)、yesにしても問題なし。 ## yesの場合、鍵は必要なし。 PasswordAuthentication yes $ sudo /sbin/service sshd restart ## ssh経由でログインしたユーザがsuでrootユーザになるのを禁止する。 ## wheelグループに所属しているユーザだけがsuコマンドを使ってrootになれるようにする。 $ sudo vi /etc/login.defs SU_WHEEL_ONLY yes # 追加 $ sudo vi /etc/pam.d/su auth required /lib/security/pam_wheel.so group=wheel # 追加
時刻同期の設定
- これは会社ではやめておいたほうがよいかも
- ntp:時刻サーバ。これに接続することで時刻を合わす。
- ntpdate:ntpのクライアント。ntpに接続するらしい。
$ sudo yum install ntp $ sudo vi /etc/cron.hourly/ntpdate $ sudo chmod 755 /etc/cron.hourly/ntpdate # -B は徐々に時刻を合わせるという意味 #!/bin/sh /usr/sbin/ntpdate -B ntp.nict.jp > /dev/null # 最初の一発目だけ実行 $ sudo /usr/sbin/ntpdate ntp.nict.jp
- 参考
dagリポジトリの追加
$ sudo vi /etc/yum.repos.d/CentOS5-Base.repo # enable=1にすると常用する。常用は不安なので0にしておく [dag] name=Dag RPM Repository for Redhat EL5 baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=0 gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
開発用ツール
$ sudo yum -y install wget $ sudo yum install subversion $ sudo yum install w3m $ sudo yum --enablerepo=dag install git $ sudo yum --enablerepo=dag install tmux # コンパイルに必要 $ sudo yum groupinstall "Development Tools" # GUIの開発するなら以下もインストールする。 $ sudo yum groupinstall "GNOME Software Development"
emacs
- 以下のページを開き、「Obtaining/Downloading GNU Emacs」という見出しを探す。
- ダウンロード用のページのリンクがあるのでそこをクリックし、最新版のtarボールのリンクをコピー
$ cd ~/src $ wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3.tar.gz $ tar xvfz emacs-23.3.tar.gz $ cd emacs-23.3 $ ./configure --without-x
apacheのインストール
$ sudo /sbin/chkconfig httpd on $ sudo /etc/init.d/httpd start # 必要に応じて。 #$ sudo yum install httpd mod_perl # ログの確認 $ sudo tail -f /var/log/httpd/access_log # 確認用URL http://vmware.localdomain/ # 設定ファイル /etc/httpd/conf/httpd.conf # html /var/www/html # pid /var/run
- fedoraにインストールしたApacheのディレクトリ構造
Basic認証
llow = 許可する deny = 拒否する allowoverride FileInfo AuthConfig # FileInfo, AuthConfigオプションを許可する authtype basic # basic認証を使用する authName "hoge" # 認証領域。ダイアログに表示される order allow,deny # デフォルトとして許可する allow from all # すべてを許可 deny from 128.0.0.1 # 指定アドレスを拒否 <limit get post> require valid-user # POST, GET には認証が必要 </limit> satisfy any # IPアドレス、認証のいずれかを通ったユーザを許可する authuserfile /usr/hoge/.htaccess # パスワードファイルのありか
jdkのインストール
# 環境変数の追加 $ sudo vi /etc/profile.d/java.sh [java.sh] export JAVA_HOME=/usr/local/jdk1.6.0_24/ export PATH=$JAVA_HOME/bin:$PATH # 有効化 $ sudo chmod +x /etc/profile.d/java.sh $ . /etc/profile.d/java.sh # alternativesに追加する。 $ sudo /usr/sbin/alternatives --install /usr/bin/java java /opt/jdk1.6.0_24/bin/java 3 # 確認 $ sudo /usr/sbin/alternatives --config java $ java --version
PHPインストール
# # 以下は必要なかったかも。 # sudo yum -y install gcc* $ sudo yum -y install flex libxml2-devel $ sudo yum -y install zlib-devel libpng-devel $ sudo yum -y install libjpeg-devel $ sudo yum install -y git # # 以下で必要なパッケージを確認できる # # yum list '*php*'|less # 今回は以下をインストール $ sudo yum install -y php php-mbstring php-mysql php-gd php-xml php-mcrypt $ sudo yum install -y php-pear
webdav
CentOSにははじめから入っている。
$ sudo mkdir /var/www/share $ chown -R apache:apache /var/www/share $ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org $ sudo vi /etc/httpd/conf/httpd.conf $ sudo htpasswd -cm /var/www/.htpasswd miki $ sudo vi /etc/httpd/conf/httpd.conf <IfModule mod_dav.c> DAVMinTimeout 600 Alias /share/ "/var/www/share/" <Directory "/var/www/share"> DAV On Options Indexes MultiViews AllowOverride None Order deny,allow Deny from all Allow from all AuthType Basic AuthName "Authorization Realm" AuthUserFile /var/www/.htpasswd Require valid-user </Directory> </IfModule> # 再起動 $ sudo /etc/rc.d/init.d/httpd reload
windowsXPからのアクセスする方法
- エクスプローラを起動し、ネットワークを開く。
- ネットワークプレイスの追加で下記を追加する。
- 以後、このURLにドラッグアンドドロップで追加できる。
なぜポート番号も追加するのか
- 普通にネットワークプライスから追加すると重い。
- これは、windowsクライアントがhttp以外のリクエストを飛ばし、リトライとタイムアウトが発生することが原因とのこと。
- これを回避するには、上述したようにネットワークプレイスを追加時にポートも一緒に指定して荒れれば良い。
Subversion
webdav経由のsvnリポジトリを作成する。
# まず、リポジトリの作成 $ sudo svnadmin create --fs-type=fsfs /home/svnroot $ sudo htpasswd -cm /home/svnroot/.htpasswd miki $ sudo chown -R apache:apache /home/svnroot # webdav用のsvnモジュールをインストールする。 $ sudo yum -y install mod_dav_svn # WebDavの設定ファイルを編集 $ sudo vi /etc/httpd/conf.d/subversion.conf <Location /svn> DAV svn SVNPath /home/svnroot # Limit write permission to list of valid users. <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "svn" AuthUserFile /home/svnroot/.htpasswd Require valid-user </LimitExcept> </Location> # httpd を再起動 sudo /sbin/service httpd restart
リポジトリへインポートする。
$ mkdir work
$ cd work
$ mkdir trunk
$ mkdir branches
$ mkdir tags
$ svn import http://192.168.10.2/svn -m 'Initila imoprt.'
脚注のテスト
脚注1てすとしてみる
注釈
Footnotes:
1 脚注されるかな。
0 件のコメント:
コメントを投稿