第1回 一撃サーバー構築シェルスクリプト勉強会 
USP友の会 
@nullpopopo
第1回 一撃サーバー構築シェルスクリプト勉強会 
[自己紹介] 
名前: 濱田康貴 ( @nullpopopo ) 
USP友の会 
http://www.usptomo.com/ 
Blog 
http://nullpopopo.blogcube.info/ 
Facebook 
https://www.facebook.com/nullpopopo 
著書: USP Magazine 
教えて先輩♡サーバー運用お助けTIPS 
隔月連載中
第1回 一撃サーバー構築シェルスクリプト勉強会 
ちょっとお知らせ
第1回 一撃サーバー構築シェルスクリプト勉強会 
今日は危険じゃありません
第1回 一撃サーバー構築シェルスクリプト勉強会 
最初に宣伝
第1回 一撃サーバー構築シェルスクリプト勉強会 
第13回危険でない方のシェル芸勉強会&第31回安 
全だと声高に叫ぶと逆にどうなのかUSP友の会定 
例会 
http://usptomo.doorkeeper.jp/events/15021
第1回 一撃サーバー構築シェルスクリプト勉強会 
USP友の会で 
シェル芸以外の勉強会は 
2012/06/24 以来。 
※ ちなみにシェル芸勉強会は 
2012/10/27より開始
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会 
本当に地獄でした。。。 (;´Д`)
第1回 一撃サーバー構築シェルスクリプト勉強会 
その前は?
第1回 一撃サーバー構築シェルスクリプト勉強会 
2012/3/31 Apacheスタートスクリプト読書会 
2012/2/19 やわらかマッドサイエンティスツの 
プログラミング入門
第1回 一撃サーバー構築シェルスクリプト勉強会 
( ´-`)。oO( 喋り方忘れた・・・ )
第1回 一撃サーバー構築シェルスクリプト勉強会 
本日のおしながき 
●席替え、全体説明 
●変数設定、アップデート 
● fail2ban、iptables設定 
●パッケージインストール 
●MySQL設定 
● PHP設定 
●WordPress インストール 
● nginx設定 
●再起動 
● LTタイム
第1回 一撃サーバー構築シェルスクリプト勉強会 
席替え
第1回 一撃サーバー構築シェルスクリプト勉強会 
3名1組でチームを作ります。 
受付で番号のついた付箋紙を受け取られた方は、 
その番号の指定席へ移動願います。 
座席に付箋紙を持った方がいない場合は、無地の 
付箋紙を受け取られた方と座席交換してくださ 
い。
第1回 一撃サーバー構築シェルスクリプト勉強会 
全体説明
第1回 一撃サーバー構築シェルスクリプト勉強会 
一撃サーバー構築シェルスクリプト (一撃スクリ 
プト) 勉強会が目指すもの
第1回 一撃サーバー構築シェルスクリプト勉強会 
●一度の実行でサーバー構築の全工程を終わらせ 
るスクリプトを作成できるようになる 
●管理のための環境構築が不要で、さくらのクラ 
ウド スタートアップスクリプトと親和性が高い 
ことを体験する
第1回 一撃サーバー構築シェルスクリプト勉強会 
スタートアップスクリプト とは
第1回 一撃サーバー構築シェルスクリプト勉強会 
サーバ作成時にアプリケーションのインストールやサーバ設定を 
自動的に行う「スタートアップスクリプト」 
サーバを作成する際に、任意のシェルスクリプトを記述した「ス 
タートアップスクリプト」を選択することにより、 起動時にそれ 
らを自動的に実行できます。この機能によりあらかじめ必要なア 
プリケーションをインストールや、 サーバ設定の自動化も行えま 
す。 
※スタートアップスクリプト機能は現在、CentOS、ScientificLinux環境のみで動作します。 
※ http://cloud.sakura.ad.jp/feature.php より引用
第1回 一撃サーバー構築シェルスクリプト勉強会 
スタートアップスクリプト内で使用できる 
特殊タグ
第1回 一撃サーバー構築シェルスクリプト勉強会 
@sacloud-once 
シェルスクリプト中のコメントに以下のように記述すると、OS起 
動時に1回だけ(OSインストール後初回起動時のみ)実行されます。 
記述例 
# @sacloud-once 
これにより、yumコマンドによるアップデートやrebootコマンドに 
よる再起動(kernelやglibcアップデート後の反映)をスタートアップ 
スクリプト内にて行うことができます。 
※ @sacloud-once の記述を忘れてrebootコマンドをスタートアップスクリプトで実行すると、起動 
→再起動→再起動→(以下エンドレス)という地獄を味わってしまいます。。。
第1回 一撃サーバー構築シェルスクリプト勉強会 
@sacloud-desc 
以下のように、1行コメントをつけることができます。 
# @sacloud-desc これはコメントです 
@sacloud-desc-begin / @sacloud-desc-end 
以下のように、複数行のコメントをつけることができます。 
# @sacloud-desc-begin 
# このように 
# 複数行のコメントをつけることができます。 
# @sacloud-desc-end
第1回 一撃サーバー構築シェルスクリプト勉強会 
コーディングルール
第1回 一撃サーバー構築シェルスクリプト勉強会 
[コーディングルール(非機能要件)] 
● rootユーザーでOSインストール直後に1回のみ実 
行されるものとする 
●外部シェルスクリプトの作成、呼び出しは原則 
不可。ただし、一撃スクリプト内で生成して別 
ファイルに出力し、一撃スクリプトから呼び出 
すことができれば可能。 
●対話式コマンドはできるだけ避ける
第1回 一撃サーバー構築シェルスクリプト勉強会 
その他 
●そもそも一撃ですべてを終わらせるのと、OSイ 
ンストール直後の環境は原則として同一なた 
め、ifの条件分岐などはあまり考慮しなくてよい 
です 
●同様に、再実行を考慮したスクリプト設計は不 
要です
第1回 一撃サーバー構築シェルスクリプト勉強会 
機能要件 
● http://IPアドレス/ でWordPressのインストール 
画面が表示されること 
●WordPressインストール後、パーマリンク設定 
を変更しても表示に問題がないこと
第1回 一撃サーバー構築シェルスクリプト勉強会 
非機能要件 
●WEBサーバは nginx + PHP-FPMとし、nginx は 
mainline からインストールする 
● PHPは5.5または5.6をインストールする 
(php-cli php-common php-mbstring php-pdo php-xml 
php-mysqlnd php-pecl-apcu php-xmlrpc php-opcache 
php-fpm)
第1回 一撃サーバー構築シェルスクリプト勉強会 
非機能要件 
●MySQL Serverは標準リポジトリからインストー 
ルする 
●MySQLのrootパスワード、WordPress接続用 
ユーザのパスワードは自動生成する 
●mysql_secure_installation と同等の処理を行う
第1回 一撃サーバー構築シェルスクリプト勉強会 
変数設定 
アップデート
第1回 一撃サーバー構築シェルスクリプト勉強会 
#!/bin/bash 
# @sacloud-once 
DBNAME=wordpress 
DBUSER=wpuser 
ETH0=$(ip a show eth0 | grep inet | grep -v inet6 | awk '{print $2}' | sed -e "s//[0-9]*//") 
HOME=/root 
export HOME 
USER=root 
export USER 
################################################################################ 
# Section1 yum update 
yum -y update 
################################################################################
第1回 一撃サーバー構築シェルスクリプト勉強会 
fail2ban、iptables設定
第1回 一撃サーバー構築シェルスクリプト勉強会 
fail2ban設定内容 
メール宛先と送信元のドメインが example.com 
なので、これを localhost に変更する
第1回 一撃サーバー構築シェルスクリプト勉強会 
iptables設定内容 
● 受信パケットは一旦破棄する 
● 送信パケットはすべて許可する 
● パケット転送は許可しない 
● localhostからのアクセスをすべて許可する 
● 内部から行ったアクセスに対する外部からの返答アクセスを許可 
する 
● 外部からのTCP22番ポート(SSH)へのアクセスを許可する 
● 外部からのTCP80番ポート(HTTP)へのアクセスを許可する
第1回 一撃サーバー構築シェルスクリプト勉強会 
パッケージインストール
第1回 一撃サーバー構築シェルスクリプト勉強会 
[nginx] 
●リポジトリ取得 
●mainlineからインストールするよう nginx.repo 
を変更する 
● nginxインストール
第1回 一撃サーバー構築シェルスクリプト勉強会 
nginxのバージョンは3種類 
http://nginx.org/en/download.html
第1回 一撃サーバー構築シェルスクリプト勉強会 
[PHP] 
● remi-release-6リポジトリ取得 
● php-cli php-common php-mbstring php-pdo php-xml 
php-mysqlnd php-pecl-apcu php-xmlrpc php-opcache 
php-fpm インストール
第1回 一撃サーバー構築シェルスクリプト勉強会 
PHPの歩み 
http://www.slideshare.net/hirokawa/php-con2013ub より
第1回 一撃サーバー構築シェルスクリプト勉強会 
http://sourceforge.jp/magazine/14/08/30/084800
第1回 一撃サーバー構築シェルスクリプト勉強会 
[MySQL] 
●標準リポジトリより mysql-server をインストー 
ル
第1回 一撃サーバー構築シェルスクリプト勉強会 
Let's Coding
第1回 一撃サーバー構築シェルスクリプト勉強会 
回答
第1回 一撃サーバー構築シェルスクリプト勉強会 
fail2ban のメール宛先と送信元を変更する 
● cp -p /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.orig 
● sed -i 
's/you@example.com/root@localhost/g;s/fail2ban@example.com 
/fail2ban@localhost/g' /etc/fail2ban/jail.conf
第1回 一撃サーバー構築シェルスクリプト勉強会 
iptables設定 
# 初期化のため一旦iptablesを停止する 
service iptables stop 
# 受信はすべて破棄する 
iptables -P INPUT DROP 
# 送信はすべて許可する 
iptables -P OUTPUT ACCEPT 
# パケット転送はすべて破棄する 
iptables -P FORWARD DROP
第1回 一撃サーバー構築シェルスクリプト勉強会 
iptables設定 
# localhostからのアクセスをすべて許可 
iptables -A INPUT -i lo -j ACCEPT 
# 内部から行ったアクセスに対する外部からの返答アクセスを許 
可iptables -A INPUT -m state --state ESTABLISHED,RELATED -j 
ACCEPT 
# 外部からのTCP22番ポート(SSH)へのアクセスを許可 
iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
# 外部からのTCP80番ポート(HTTP)へのアクセスを許可 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
第1回 一撃サーバー構築シェルスクリプト勉強会 
iptables設定 
# 設定を保存 
service iptables save 
# iptablesを起動 
service iptables start 
# iptablesをスタートアップ登録する 
chkconfig iptables on
第1回 一撃サーバー構築シェルスクリプト勉強会 
nginxインストール 
# リポジトリをインストール 
yum -y install 
http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos- 
6-0.el6.ngx.noarch.rpm 
# mainlineに向き先変更 
cp -p /etc/yum.repos.d/nginx.repo /etc/yum.repos.d/nginx.repo.orig 
sed -i 's/centos/mainline/centos/' /etc/yum.repos.d/nginx.repo 
# install 
yum -y install nginx
第1回 一撃サーバー構築シェルスクリプト勉強会 
phpインストール 
# リポジトリをインストール 
yum -y install http://rpms.famillecollet.com/enterprise/remi-release- 
6.rpm 
# install 
yum --enablerepo=remi-php56 -y install  
php-cli php-common php-mbstring php-pdo php-xml php-mysqlnd  
php-pecl-apcu php-xmlrpc php-opcache php-fpm
第1回 一撃サーバー構築シェルスクリプト勉強会 
mysql-serverインストール 
# install 
yum -y install mysql-server
第1回 一撃サーバー構築シェルスクリプト勉強会 
MySQL設定
第1回 一撃サーバー構築シェルスクリプト勉強会 
ポイント 
● rootユーザのパスワードはランダムに生成したい(固定値にし 
ちゃうと、漏れたときのリスクが同じスクリプトを使って作った 
サーバすべてに及ぶ) 
● WordPress接続用のユーザーも、同様にパスワードをランダムに 
生成する 
● mysqlコマンドに-eオプション
第1回 一撃サーバー構築シェルスクリプト勉強会 
● mysqldを起動し、スタートアップに登録する 
● MySQLのrootユーザとパスワードを作成し、パラメーターファ 
イルに格納する。書式は user root <Password> 
● WordPressのDBに関してパラメーターファイルに格納する。書 
式は DBPARAM DB名 DBユーザー名 <Password> 
● MySQLのrootユーザーのパスワードを設定する。 
● WordPressのデータベースを作成する。 
● DBユーザー(WordPressデータベース接続用)のパスワードを変数 
PWに格納する。 
● DBユーザーを作成する。
第1回 一撃サーバー構築シェルスクリプト勉強会 
● mysql_secure_installation 代替コマンド実行 
● 匿名ユーザーの削除 
● localhost以外からのrootログイン禁止 
● testデータベース削除 
なぜmysql_secure_installationを使わないのか? 
→ 対話式のコマンドなので、入力待ちで止まってしまうため 
● 権限情報の再読込
第1回 一撃サーバー構築シェルスクリプト勉強会 
パラメータファイル 
${HOME}/.mysql/MySQLPARAM
第1回 一撃サーバー構築シェルスクリプト勉強会 
PHP設定
第1回 一撃サーバー構築シェルスクリプト勉強会 
やること 
● php.iniのタイムゾーン設定 
→ 余計なログを出したくないので、東京に合わせておく。 
● php-fpmの実行ユーザー設定 
→ apacheからnginxへ変更する。 
● php-fpmを起動し、スタートアップ登録する
第1回 一撃サーバー構築シェルスクリプト勉強会 
Let's Coding
第1回 一撃サーバー構築シェルスクリプト勉強会 
回答
第1回 一撃サーバー構築シェルスクリプト勉強会 
PARAMFILE=${HOME}/.mysql/MySQLPARAM 
mkdir ${HOME}/.mysql 
chkconfig mysqld on 
service mysqld start
第1回 一撃サーバー構築シェルスクリプト勉強会 
# MySQLのrootユーザとパスワードを作成し、パラメーターファ 
イルに格納する。 
# 書式は user root <Password> 
echo "user root $(cat /dev/urandom | tr -dc '[:alnum:]' | head -c 8)" 
> ${PARAMFILE}
第1回 一撃サーバー構築シェルスクリプト勉強会 
# WordPressのDBに関してパラメーターファイルに格納する。 
# 書式は DBPARAM DB名 DBユーザー名 <Password> 
echo "DBPARAM ${DBNAME} ${DBUSER} $(cat /dev/urandom | tr 
-dc '[:alnum:]' | head -c 8)" >> ${PARAMFILE}
第1回 一撃サーバー構築シェルスクリプト勉強会 
# MySQLのrootユーザーのパスワードを設定する。 
mysqladmin -u root password "$(grep ^user ${PARAMFILE} | awk 
'{print $NF}')"
第1回 一撃サーバー構築シェルスクリプト勉強会 
# WordPressのデータベースを作成する。 
mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}')  
-e "create database ${DBNAME} character set utf8;"
第1回 一撃サーバー構築シェルスクリプト勉強会 
# DBユーザー(WordPressデータベース接続用)のパスワードを変 
数PWに格納する。 
PW=$(grep ^DBPARAM ${PARAMFILE} | awk '{print $NF}') 
# DBユーザーを作成する。 
mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}')  
-e "GRANT ALL PRIVILEGES on ${DBNAME}.* to $ 
{DBUSER}@localhost identified by "${PW}";"
第1回 一撃サーバー構築シェルスクリプト勉強会 
mysql_secure_installation 代替コマンド 
# 匿名ユーザーの削除 
mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}')  
-e "DELETE FROM mysql.user WHERE User='';"
第1回 一撃サーバー構築シェルスクリプト勉強会 
mysql_secure_installation 代替コマンド 
# localhost以外からのrootログイン禁止 
mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}')  
-e "DELETE FROM mysql.user WHERE User='root' AND Host 
NOT IN ('localhost', '127.0.0.1', '::1');"
第1回 一撃サーバー構築シェルスクリプト勉強会 
mysql_secure_installation 代替コマンド 
# testデータベース削除 
mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}')  
-e "DROP DATABASE test;"
第1回 一撃サーバー構築シェルスクリプト勉強会 
# 権限情報の再読込 
mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}')  
-e "FLUSH PRIVILEGES;"
第1回 一撃サーバー構築シェルスクリプト勉強会 
PHP設定 
# php.iniでタイムゾーン設定 
cd /etc 
cp -p php.ini php.ini.orig 
sed -i 's/;date.timezone =/;##--@--##date.timezone 
=ndate.timezone = Asia/Tokyo/' php.ini
第1回 一撃サーバー構築シェルスクリプト勉強会 
PHP設定 
# php-fpm設定ファイル (www.conf) 編集 
cd /etc/php-fpm.d 
cp -p www.conf www.conf.orig 
sed -i 's/^user = apache/;user = apachenuser = nginx/' 
www.conf 
sed -i 's/^group = apache/;group = apachengroup = nginx/' 
www.conf
第1回 一撃サーバー構築シェルスクリプト勉強会 
PHP設定 
# php-fpm起動、スタートアップ登録 
service php-fpm start 
chkconfig php-fpm on
第1回 一撃サーバー構築シェルスクリプト勉強会 
Let's Coding
第1回 一撃サーバー構築シェルスクリプト勉強会 
回答
第1回 一撃サーバー構築シェルスクリプト勉強会 
休憩
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール
第1回 一撃サーバー構築シェルスクリプト勉強会 
● ドキュメントルートは /var/www/IPアドレス 
● githubからWordPressダウンローダーを取得する 
https://raw.githubusercontent.com/nullpopopo/wpdl/master/bin/wpdl 
● WordPress ( latest-ja.tar.gz ) は ${HOME}/src/wordpress/current/ 
に保存される 
● wp-config-sample.php から wp-config.php をコピーし、DB名、 
DBのユーザー名、パスワードを設定し、「put your unique 
phrase here」を32文字のランダムな文字列に置換する 
● ドキュメントルートのユーザー・グループは nginx:root とする
第1回 一撃サーバー構築シェルスクリプト勉強会 
nginx設定
第1回 一撃サーバー構築シェルスクリプト勉強会 
参考URL 
http://wpdocs.sourceforge.jp/Nginx 
http://wiki.nginx.org/HttpCoreModule
第1回 一撃サーバー構築シェルスクリプト勉強会 
● /etc/nginx/nginx.conf を直接弄るのは 
worker_processesの数をコア数に合わせるくら 
いで、他は弄らない。 
● /etc/nginx/conf.d/000_VHOST.conf にヒアドキュ 
メントで設定を流し込む。
第1回 一撃サーバー構築シェルスクリプト勉強会 
# This order might seem weird - this is attempted to match last if rules below 
fail. 
# http://wiki.nginx.org/HttpCoreModuleJa#try_files 
location / { 
try_files $uri $uri/ /index.php?$args; 
index index.php index.html index.htm; 
} 
ファイルの存在を順に確認し、最初に確認できたファイルを返却します。$uri /のように末尾にス 
ラッシュのついたパスはディレクトリを示します。ファイルが確認できなかった場合は、末尾に指 
定したパラメータに対して内部リダイレクトが行われます。末尾のパラメータはフォールバック用 
の URI で、必ず 存在している必要があります。存在していない場合は内部エラーが発生します。
第1回 一撃サーバー構築シェルスクリプト勉強会 
# Add trailing slash to */wp-admin requests. 
rewrite /wp-admin$ $scheme://$host$uri/ permanent; 
リクエストURIが http://IPアドレス/wp-admin だったら、末尾にス 
ラッシュをつけたURIにリライトする。
第1回 一撃サーバー構築シェルスクリプト勉強会 
Let's Coding
第1回 一撃サーバー構築シェルスクリプト勉強会 
回答
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# ドキュメントルート作成 
mkdir -p /var/www/${ETH0} 
# WordPressダウンローダー取得 
cd ${HOME} 
mkdir bin 
cd bin 
wget 
https://raw.githubusercontent.com/nullpopopo/wpdl/master/bin/wpdl
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# WordPressダウンローダー実行 
chmod 700 wpdl 
cd ${HOME} 
bin/wpdl
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# WordPress ( latest-ja.tar.gz ) 展開 
cd ${HOME}/src/wordpress/current/ 
tar xzf latest-ja.tar.gz 
cd wordpress/ 
cp -pr * /var/www/${ETH0}
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# wp-config.php 編集 
cd /var/www/${ETH0} 
cp -p wp-config-sample.php wp-config.php 
chmod 660 wp-config.php
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# wp-config.php 編集 (DB名置換) 
sed -i s/database_name_here/$(grep ^DBPARAM ${PARAMFILE} | 
awk '{print $2}')/g wp-config.php
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# wp-config.php 編集 (ユーザー名置換) 
sed -i s/username_here/$(grep ^DBPARAM ${PARAMFILE} | awk 
'{print $3}')/g wp-config.php
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# wp-config.php 編集 (パスワード置換) 
sed -i s/password_here/$(grep ^DBPARAM ${PARAMFILE} | awk 
'{print $4}')/g wp-config.php
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# wp-config.php 編集 (認証用ユニークキー設定) 
sed -i s/'put your unique phrase here'/$(cat /dev/urandom | tr -dc 
'[:alnum:]'| head -c 32)/g wp-config.php
第1回 一撃サーバー構築シェルスクリプト勉強会 
WordPress インストール 
# ドキュメントルート オーナー、パーミッション設定 
cd /var/www/ 
chown -R nginx:${USER} ${ETH0} 
chmod -R g+w ${ETH0}
第1回 一撃サーバー構築シェルスクリプト勉強会 
nginx設定 
# worker_processesの数をコア数に合わせる 
cd /etc/nginx/ 
cp -p nginx.conf nginx.conf.orig 
sed -i "s/worker_processes[[:space:]]+[0-9]+/worker_processes $ 
(cat /proc/cpuinfo | grep processor | wc -l)/g" nginx.conf
第1回 一撃サーバー構築シェルスクリプト勉強会 
nginx設定 
# バーチャルホスト設定ファイル作成 
cd conf.d 
cat << _EOL_ > 000_VHOST.conf 
※ 次のページから行番号つきで表示します
第1回 一撃サーバー構築シェルスクリプト勉強会 
1 server { 
2 server_name ${ETH0}; 
3 root /var/www/${ETH0}; 
4 
5 # This order might seem weird - this is attempted to match 
last if rules below fail. 
6 # http://wiki.nginx.org/HttpCoreModule 
7 location / { 
8 try_files $uri $uri/ /index.php?$args; 
9 index index.php index.html index.htm; 
10 }
第1回 一撃サーバー構築シェルスクリプト勉強会 
11 
12 # Add trailing slash to */wp-admin requests. 
13 rewrite /wp-admin$ $scheme://$host$uri/ permanent; 
14 
15 # Directives to send expires headers and turn off 404 error 
logging. 
16 location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { 
17 expires 24h; 
18 log_not_found off; 
19 } 
20
第1回 一撃サーバー構築シェルスクリプト勉強会 
21 # Pass all .php files onto a php-fpm/php-fcgi server. 
22 location ~ .php$ { 
23 try_files $uri =404; 
24 fastcgi_split_path_info ^(.+.php)(/.+)$; 
25 include fastcgi_params; 
26 fastcgi_index index.php; 
27 fastcgi_param SCRIPT_FILENAME $document_root 
$fastcgi_script_name; 
28 fastcgi_pass 127.0.0.1:9000; 
29 } 
30 } 
31 _EOL_
第1回 一撃サーバー構築シェルスクリプト勉強会 
service nginx start 
chkconfig nginx on
第1回 一撃サーバー構築シェルスクリプト勉強会 
reboot
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会 
お疲れ様でした!

第1回 一撃サーバー構築シェルスクリプト勉強会