capistrano+gitでソースコードのデプロイサーバ構築②(デプロイ先Web(Apache+PHP)サーバ構築)


前回に引き続き、capistrano+gitのデプロイサーバを構築したいと思います。

今回は、前回構築したgitサーバからcapistranoでデプロイする対象となるサーバを構築したいと思います。

基本的に今後構築していくサーバはApache+PHPのWebサーバとしたいと思いますので、今回もその想定で構築していきます。

■前準備
・EC2インスタンスは立ち上げ済み
・セキュリティグループでSSH,HTTPを開放してある
初期設定は終わっている

■Apache+PHPのインストール

# yum -y install httpd
//Apacheの自動起動設定
# chkconfig httpd on
# yum -y install php php-devel php-mysql php-mbstring php-gd php-pear

■Apacheの設定

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
# vim /etc/httpd/conf/httpd.conf

基本的には下記の箇所を修正

ServerTokens Prod
Options -Indexes FollowSymLinks
AllowOverride All
ServerSignature Off

■PHPの設定

# cp /etc/php.ini /etc/php.ini.org
# vim /etc/php.ini

下記の箇所を修正

expose_php = Off
error_log = /var/log/php_errors.log
allow_url_include = On
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.detect_order = auto

■Apacheの起動

# service httpd start

EC2インスタンスのPublic DNSにブラウザでアクセスしApacheのテストページが表示されることを確認

■gitのインストール
capistranoはデプロイ先でgitサーバからのpullを行うので、gitをデプロイ先でも使える必要があります。

# yum -y install git

■デプロイ用ユーザーの作成と鍵認証設定
デプロイ時の接続ユーザーとして deploy ユーザーを作成します。

# useradd deploy
# passwd deploy
# usermod -G wheel deploy
# visudo

wheelグループのユーザーがsudoできるように設定
下記の行のコメント(#)を削除して有効化する

%wheel  ALL=(ALL)       ALL

鍵認証設定をする

# su - deploy
$ ssh-keygen -t rsa
//全部Enterで鍵の作成をします
$ cd .ssh/
$ cat id_rsa.pub > authorized_keys
$ chmod 600 authorized_keys

■デプロイサーバに鍵認証を通す
・デプロイ先ユーザーのid_rsa.pubを取得

$ cat /home/deploy/.ssh/id_rsa.pub

・上記の結果をデプロイサーバのgitユーザーのauthorized_keysに追記

$ vim /home/git/.ssh/authorized_keys

■デプロイ先フォルダの権限設定
デプロイ先サーバの/var/www/html下に書き込めるように

# chown -R deploy. /var/www/html

■ちなみに…
Capistranoによるデプロイがされた後、ドキュメントルートを変更する必要があります。
こちらについては次回以降で記載します。

■参考

投稿者:

nikuatsu

大学時代にWebアプリ開発を中心とした会社を企業し、約15年経営した末に倒産。現在はとあるインターネット上でのビジネスを展開する企業の開発部門で、あらゆる技術関連について対応している。 スキルの範囲: ・主にPHPを中心としたWebアプリケーション開発 ・Linuxサーバを中心としたインフラストラクチャー全般 ・MySQL、PostgreSQLを中心としたRDBMSの設計、運用 ・Objective-CによるiPhoneアプリの開発 などなど。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です