*Apache [#ba1339c7]
[[Apache:+http://httpd.apache.org/]]
Linux用WWWサーバの代名詞。
apache2.4からは設定方法が色々と変更されているので注意。
*zsh [#x6c5e78f]
[[Zsh:+http://www.zsh.org/]]
[[zshのダウンロード(SourceForge):+http://zsh.sourceforge.net/Arc/source.html]]
UNIX Shellの一つ。Tabキー補完機能とかが優秀。
インストールそのままの未設定だと真の機能を使えないので設定必須。
~
*インストール [#of99738c]
&size(16){&font(b){1. 前準備};};
ソースから入れる前にpkgconifgを統一しておく。
他の場合でもやった方がよさそうだが、書くのが面倒くさいので省略。
(Linux入れたら、とりあえずLAMP構築するだろうからここだけで大丈夫だべ)
 # cd /usr/local/lib64
 # ln -s /usr/lib64/pkgconfig .
 # cd /usr/local/lib
 # mkdir /usr/lib/pkgconfig
 # ln -s /usr/lib/pkgconfig .
後は、https通信用に[[OpenSSL>Linux/Source/OpenSSL]]も入れておく。
~
&size(16){&font(b){2. APRのビルド・インストール};};
apacheのソースと一緒にビルドする方法もあるらしいが、
自分の環境では上手くいかなかったので別々にビルドする。
 # tar zxvf apr-1.4.6.tar.gz
 # cd apr-1.4.6
 # ./configure --prefix=/usr/local/apr
*インストール [#g1d505a4]
&size(16){&font(b){1. zshのビルド};};
今回は【ver 5.0.0】を元に説明(単に、自分の環境が5.0.0なので)。
他のバージョンでも同様に出来る。
 # wget http://downloads.sourceforge.net/project/zsh/zsh/5.0.0/zsh-5.0.0.tar.bz2
 # tar jxvf zsh-5.0.0.tar.bz2
 # cd zsh-5.0.0
 # ./configure --enable-multibyte --enable-locale
 # make
 # make test
 # make install
~
&size(16){&font(b){3. APR-Utilのビルド・インストール};};
 # tar zxvf apr-util-1.5.1.tar.gz
 # cd apr-util-1.5.1
 # ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
 # make
 # make test
 # make install
~
&size(16){&font(b){4. Apacheのビルド・インストール};};
initの名前を“httpd”にするとyumとかで入れた物と被ってエラーになる場合がある。
よって、今回は“apache”という名前にしてインストールする。
[[PCRE>Linux/PCRE]]がまだ入ってない場合は、apacheのソースをビルドする前に入れておく事。
 # tar zxvf httpd-2.4.3.tar.gz
 # cd httpd-2.4.3
 # vi config
 
&font(b){※全部一行で書く};
 --prefix=/usr/local/apache
 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre
 --enable-ssl --enable-suexec --enable-rewrite --enable-auth-digest --enable-dav --enable-so
&size(16){&font(b){2. デフォルト(ログイン)シェルの設定};};
一般ユーザのみzshに適応させる。
rootはzshに問題が発生しても使用出来る様にする必要がある為、bash等でそのままにしておく事を推奨
 # vi /etc/passwd

 # ./configure `cat ./config`
 # make
 # make install
 root:x:0:0:root:/root:/bin/bash

 root:x:0:0:root:/root:/usr/local/bin/zsh
に変更
~
*設定 [#qcfda49a]
&size(16){&font(b){I. apacheスクリプトのコピー};};
 # cp /usr/local/apache/bin/apachectl /etc/init.d/apache
 # chmod 755 /etc/init.d/apache
 # ln -s /etc/init.d/apache /etc/init.d/httpd
 # ln -s ../init.d/apache /etc/rc3.d/S96apache
*zshの設定 [#q54212bc]
&size(16){&font(b){I. zshの設定方法};};
zshには色々なテーマ(スキーマ)が用意されているので、面倒くさい人はそっち使う事を推奨。
有名処だと[[oh-my-zsh:+https://github.com/robbyrussell/oh-my-zsh/wiki/themes]]とか。
だが、oh-my-zshは日本語環境だと[Tab]キー押した時にバグる(自分の環境では[Tab]補完後に文字が消えたりした)のと、
今まで慣れ親しんだbashベースの方が個人的には使いやすいので、自分で設定ファイルを書いていく。
~
&size(16){&font(b){II. ユーザーの準備};};
 # adduser www -d /var/apache -s /sbin/nologin
 # rm -rf /var/apache
 # mkdir -p /var/apache/html
 # chown -R root.www /var/apache
~
&size(16){&font(b){III. apacheの設定};};
 # cd /usr/local/apache/conf
 
&font(b){※以下のファイルを設定していく。他は必要の応じて};
 # vi httpd.conf
 # vi extra/httpd-default.conf
 # vi extra/httpd-languages.conf
~
*アクセス制限 [#gd7a0b89]
apache2.2系統とapache2.4系統ではアクセス制限のやり方が変わっているので注意
&size(16){&font(b){A. apache2.2};};
全てのアクセス許可する
 Order allow,deny
 Allow from all
&size(16){&font(b){II. .zprofileの設定};};
 # vi ~/.zprofile

全てのアクセスを拒否する
 Order deny,allow
 Deny from all
 #-----------------------#
 #                              #
 #   zsh環境変数設定     #
 #                              #
 #-----------------------#
 
 ## 環境変数
 export LANG=ja_JP.UTF-8            #文字コード     = 日本語UTF8
 export LC_CTYPE=ja_JP.UTF-8     #ロケール       = 日本語UTF8
 export EDITOR=vim                    #標準エディタ   = vim
 export KCODE=u                         #KCODE          = UTF-8
 #export PAGER=lv                      #ページャ       = lv
 #export LV=-Ou8                        #ページャの出力 = UTF8
 #export LSCOLORS=                   #lsコマンドの配色
 #export LS_COLORS=                 #glsコマンドの配色
 
 ## PATH
 MAKE_DIR=/usr/local
 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
 #自分でビルドしたバイナリディレクトリへのPATHを追記していく。
 #下みたいにしていけばOK
 #PATH=${PATH}:${MAKE_DIR}/apache/bin
 #PATH=${PATH}:${MAKE_DIR}/apr/bin
 export PATH
~
&size(16){&font(b){B. apache2.4};};
全てのアクセスを許可する
 Require all granted
&size(16){&font(b){III. .zshrcの設定};};
 # vi ~/.zshrc

全てのアクセスを拒否する
 Require all denied
 #---------------------------#
 #                                      #
 #   BASH風zsh設定ファイル  #
 #                                      #
 #---------------------------#
 
 ## ターミナル設定
 autoload -U compinit && compinit    #自動補完の有効
 autoload -U colors && colors            #プロンプトの色づけ
 zstyle ':completion:*:default' menu select=1    #補完候補を矢印キーで移動
 setopt correct                      #誤入力コマンドを正コマンドへサジェスト
 setopt nobeep                     #ビープを鳴らさない
 setopt magic_equal_subst    #--libexec="~"等の"~"部分を補完する
 setopt list_packed                #lsコマンドを左詰で表示
 setopt auto_cd                    #cdコマンドを打たなくても、ディレクトリ移動
 setopt auto_pushd               #cdコマンドで移動しても、自動的にpushdコマンドと同等にする
 
 ## プロンプト
 case ${UID} in
 0)  #rootログイン時
     PROMPT="%{${fg[blue]}%}[%n@%m %c]%(!.$.#) %{${reset_color}%}"         #左側に表示される標準プロンプト
     PROMPT2="%{${fg[blue]}%}%_> %{${reset_color}%}"                                   #2行以上のコマンドを入力した際に表示する>プロンプト
     SPROMPT="%{${fg[red]}%}correct: %R -> %r [nyae]? %{${reset_color}%}"    #コマンドを打ち間違えた時の補完プロンプト
     RPROMPT="%{${fg[blue]}%}[%d]%{${reset_color}%}"                                    #右側に表示される拡張プロンプト
     setopt transient_rprompt    #コマンド実行後は右側拡張プロンプトを消去
     ;;
 *)  #一般ユーザ
     PROMPT="%{${fg[blue]}%}[%n@%m %c]%(!.#.$) %{${reset_color}%}"          #左側に表示される標準プロンプト
     PROMPT2="%{${fg[blue]}%}%_> %{${reset_color}%}"                                   #2行以上のコマンドを入力した際に表示する>プロンプト
     SPROMPT="%{${fg[red]}%}correct: %R -> %r [nyae]? %{${reset_color}%}"    #コマンドを打ち間違えた時の補完プロンプト
     RPROMPT="%{${fg[blue]}%}[%d]%{${reset_color}%}"                                    #右側に表示される拡張プロンプト
     setopt transient_rprompt    #コマンド実行後は右側拡張プロンプトを消去
     ;;
 esac
 
 ## 履歴
 HISTFILE=~/.zsh_history    #コマンド履歴ファイル
 HISTSIZE=10000               #履歴最大サイズ
 SAVEHIST=10000              #履歴の保存数
 autoload    history-search-end           #コマンド履歴検索の有効
 setopt      hist_ignore_dups               #直前と同じコマンドを履歴に残さない
 setopt      share_history                    #複数ターミナル間でコマンド履歴を共有
 setopt      extended_history              #コマンド履歴に実行時間も追加
 function history-all { history -E 1 }    #コマンド履歴を全部表示
 
 autoload    history-search-end    #コマンド履歴の検索
 zle -N history-beginning-search-backward-end history-search-end
 zle -N history-beginning-search-forward-end history-search-end
 bindkey "^P" history-beginning-search-backward-end    #Ctrl+pで履歴の前コマンドを検索
 bindkey "^N" history-beginning-search-forward-end      #Ctrl+nで履歴の次コマンドを検索
 bindkey '^P' history-beginning-search-backward-end     #Ctrl+pで履歴の前コマンドを検索(キーボード互換用)
 bindkey '^N' history-beginning-search-forward-end       #Ctrl+nで履歴の次コマンドを検索(キーボード互換用)
 
 ## エイリアス
 setopt complete_aliases
 #普段からよく使うコマンドをエイリアスとして張っておくと後々楽。下のは例
 #alias ls="ls --color=auto"
 #alias la="ls -a --color=auto"
 #alias ll="ls -l --color=auto"
 #alias vi="vim"