Centos6.5にNginx+hhvm+mysql+Laravelをインストールしてみた

タイトル通り
メモ用にさくっと
全部root権限でやってます。


###Nginx(1.6)インストール
```nginx:nginx
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

yum -y install nginx

#↓コンフィグ設定（ドキュメントルートを/var/www/html/laravel/publicにしています）
sed -i -e '9s/\/usr\/share\/nginx\/html/\/var\/www\/html\/laravel\/public/' /etc/nginx/conf.d/default.conf

#１０行目にindex.phpを追加

#↑と同じdefault.confの location / { のネストの中に下記を追加（後で追加したので何行かは覚えていない）
#ネットで　try_files \$uri \$uri/ /index.php?\$query_string;
#のような形で書いているサイトがあるがそれだと laravel使用時のpublic参照に問題があるので注意！
try_files $uri $uri/ /index.php?$query_string;


#↓ドメイン変更+ポート解放(公開サーバーのみ)
#sed -i -e '3s/localhost/[ドメイン名]/' /etc/nginx/conf.d/default.conf

iptables -I INPUT 5 -m state --state NEW -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart

chkconfig nginx on

```

###hhvmインストール（hop5）
```hhvm:hhvm
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
cd /etc/yum.repos.d/
wget http://www.hop5.in/yum/el6/hop5.repo

#↓removeしてるので依存関係は慎重に
yum -y remove boost-filesystem-1.41.0-18.el6.x86_64
yum -y install hhvm
wget http://pkgrepo.linuxtech.net/el6/release/x86_64/liblcms2-2.4-1.el6.x86_64.rpm
yum -y install liblcms2-2.4-1.el6.x86_64.rpm

#↓nginxのコンフィグにfastcgiの項目を追加
sed -i -e "38i location \~ \\.php$ {\nfastcgi_pass   127.0.0.1:9000;\nfastcgi_index  index.php;\nfastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;\ninclude        fastcgi_params;\n}"  /etc/nginx/conf.d/default.conf

#logfileに書き込む設定
sed -i -e "5i UseLogFile = true\nFile = /var/log/hhvm/error.log"  /etc/hhvm/config.hdf 

#↓サーバー起動時にhhvm起動
sed -i -e '$ahhvm --mode daemon -vServer.Type=fastcgi -vServer.Port=9000' /etc/rc.d/rc.local 

hhvm --mode daemon -vServer.Type=fastcgi -vServer.Port=9000
```

###mysql（5.5）インストール
```mysql:mysql
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum install -y perl-DBD-MySQL libaio libaio-devel openssl-devel
yum --enablerepo=remi --disablerepo=updates,base install -y mysql mysql-server mysql-devel

#ログ関連(人それぞれなので、その都度変えること)
sed -i -e "4i log-warnings=1" -e "4i slow-query-log=myerrorslow.log" -e "4i long-query-time=30" -e "4i log-queries-not-using-indexes" -e "4i log-slow-admin-statements" -e "4i log-bin=mysql-trans-log" -e "4i log-bin-index=mybin.index" -e "4i max-binlog-size=1G" -e "4i expire-logs-days=30" -e "4i binlog-do-db=ui"  /etc/my.cnf
#その他(人それぞれなので、その都度変えること)
sed -i -e "4i character-set-server = utf8" -e "4i collation-server = utf8_general_ci" -e "4i port = 3306"  -e "4i query_cache_size = 16M" -e "4i thread_cache_size = 4" -e "4i query_cache_limit = 16M" -e "4i tmp_table_size = 16M" -e "4i max_heap_table_size = 16M" -e "4i thread_cache_size = 4" -e "4i innodb_buffer_pool_size = 512M"  -e "4i innodb_log_file_size = 64M"  -e "4i open_files_limit = 1024" -e "4i max_connections = 100" /etc/my.cnf
sed -i -e '$a\n\[mysql\]\ndefault-character-set = utf8\n\n\[client\]\nport = 3306\n\n\[mysqldump\]' /etc/my.cnf

rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1

#↓パスワード初期設定とか
#mysql_secure_installation

chkconfig mysqld 

```

###laravel(4.2)+(Sentry2.1)インストール
```laravel:laravel

#↓依存関係＋composerインストール
yum -y install php php-mcrypt php-mbstring libmcrypt libmcrypt-devel libxml2 libxml2-devel openssl openssl-devel httpd httpd-devel
curl -sS https://getcomposer.org/installer | php -- --install-dir=/bin

#↓php5.4以上が必要なのでphp再インストール
yum remove php*
rpm -ivh  http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
yum install --enablerepo=remi --enablerepo=remi-php55 php php-devel php-mbstring php-mcrypt php-mysql php-phpunit-PHPUnit php-pecl-xdebug php-cli

#↓laravelのプロジェクト作成
cd /var/www/html
composer.phar create-project laravel/laravel laravel

cd laravel
chmod 777 -R app/storage/

#↓/laravel/app/config/app.phpを変更（）
sed -i -e '42s/UTC/Asia\/Tokyo/' /var/www/html/laravel/app/config/app.php
sed -i -e '55s/en/ja/' /var/www/html/laravel/app/config/app.php
#↓公開サーバーのみ
#sed -i -e '29s/localhost/[ドメイン]/' /var/www/html/laravel/app/config/app.php

#↓/laravel/app/config/database.phpを変更（mysqlで設定したuserなど）
#sed -i -e '58s/forge/[db]/' /var/www/html/laravel/app/config/database.php
#sed -i -e '59s/forge/[user]/' /var/www/html/laravel/app/config/database.php
#sed -i -e '60s/\'\'/[pass]/' /var/www/html/laravel/app/config/database.php

#↓sentryの記述を追加を変更
sed -i -e '7s/$/,/g' /var/www/html/laravel/composer.json
sed -i -e "8i \"cartalyst/sentry\": \"2.0.*\"" /var/www/html/laravel/composer.json

cd /var/www/html/laravel/
composer.phar update

sed -i -e "124i \'Cartalyst\\\Sentry\\\SentryServiceProvider\'," /var/www/html/laravel/app/config/app.php
sed -i -e "192i \'Sentry\'          => \'Cartalyst\\\Sentry\\\Facades\\\Laravel\\\Sentry\'," /var/www/html/laravel/app/config/app.php


```