LoginSignup
48
47

More than 5 years have passed since last update.

CentOS-6.3 + nginx + php + php-fpm + MySQL-5.5 + Symfony-2.1

Last updated at Posted at 2012-12-26

概要

Symfony(php-framework)を使う機会があって、環境構築した際のメモ。
WEBサーバにnginxを採用しているのはWEB上でPHPとの連携が早いと話題になっていたので興味本位で採用w♫

CentOS6.3

初期設定

・iptables停止
・ipv6停止
・selinux停止
・yum update
また、それ以外に不要なサービスも適宜停止した方がいい。

iptables + ipv6停止
/etc/init.d/iptables stop
/etc/init.d/ip6tables stop

chkconfig iptables off
chkconfig ip6tables off

cd /etc/modprobe.d/
vi disable_ipv6.conf

  =(新規作成)=> 
alias net-pf-10 off
options ipv6 disable=1



vi /etc/sysconfig/selinux

  =(変更)=> 
SELINUX=disabled

yum update

nginx

CentOS公式リポジトリでは nginx の最新版が入手できない為、ソースからコンパイルする人もいるようだが
remi という非公式リポジトリでは nginx の最新版が入手できるのでそちらでいきます。
yum でインストールすることでソフトの管理(インストール・アンインストール・依存パッケージのインストール等)が
容易になるので余程の理由がない限りはyumで問題無いと思います。
そもそもyumで入れてもnginxは爆速(abでの検証では爆速w)Apacheのような繊細なチューニングは不要な気がする。。。

nginx用 リポジトリ追加

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

nginx インストール

yum install nginx

nginx設定(/etc/nginx/nginx.conf)

以下、変更点のみ記載。

# CPUのコア数まで並列処理が可能(※コア数に揃えればイイはず)
worker_processes 2;

Symfony2利用時の設定例
(※動作可能な最低限の設定であり、セキュリティ等は考慮してないです)

#================================================
# Setting for Symfony2 Application
#================================================
server {
  listen    *:80;
  server_name localhost;
  root    /home/Symfony/web;
  index   app_dev.php;

  ## Static Resources
  location ~* \.(css|js|jpeg|jpg|gif|png|ico)$ {
    expires 30d;
    break;
  }

  ## matches any query, since all queries begin with /
  location / {
    if (!-e $request_filename) {
      rewrite ^/(.*)$ /app_dev.php?q=$1 last;
    }
  }

  ## pass php scripts to fastcgi
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index app_dev.php;
    include   /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /home/Symfony/web$fastcgi_script_name;
  }

  ## disable viewing .htaccess & .htpaswd
  location ~ /\.ht {
    deny all;
  }
}

起動+自動起動設定

/etc/init.d/nginx start

chkconfig nginx on

php + php-fpm + MySQL + php-modules


remi リポジトリ追加

rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
cd /usr/local/src
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

rpm -ivh remi-release-6.rpm epel-release-6-8.noarch.rpm


PHP関連もろもろインストール

yum --enablerepo=remi install ¥
    mysql mysql-server ¥
    php php-fpm ¥
    php-devel php-cli php-xml php-mysql php-mbstring php-gd

※↑この他にもいろいろとPHP関連モジュールはあるようなので適宜インストール
その際にはremiリポジトリを参照するようにすると最新Ver.のモジュールがインストールしやすいらしい。


httpd httpd-tools 不要なので削除

yum remove httpd
yum remove httpd-tools


php-fpm設定(/etc/php-fpm.d/www.conf)

php-fpm(FastCGI)はデフォで9000番ポートでLISTEN。
nginx => php-fpm 通信にはTCP・socketアリ。(※今回はTCP利用)

[処理の流れ]
client => nginx(port:80) => php-fpm(port:9000) => response
以下、変更点のみ記載しています。

# /etc/php-fpm.d/www.conf
user = nginx
group = nginx

起動

/etc/init.d/php-fpm start
/etc/init.d/mysqld start

自動起動

chkconfig php-fpm on
chkconfig mysqld on

ポートステータス

※不要情報は除外しています。

[root@centos6 ~]#netstat -tapon
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name    Timer
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      1650/php-fpm        off (0.00/0/0)
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1484/mysqld         off (0.00/0/0)
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1663/nginx          off (0.00/0/0)


Symfony2


インストール

インストールといっても簡単です。
ソースをダウンロードしてきて解凍するだけw。


[注意点]

2012/11/29現在、Symfony2の公式サイトのチュートリアルはSymfony2.0ベースとなっており、Symfony2.1(最新版)ではチュートリアルの内容とズレることが随所にあるので、暫くはSymfony2.0系で進める方が無難。(※WEB上のネタも概ね2.0系のネタばかりなのでコケた時に解決するのも苦労するので・・・)
2012/11/29現在、Symfony2.0系は公式サイトからダウンロード可能



nginxの設定次第ですが、以下のようなURLにブラウザでアクセスすればSymfonyのwelcomeページが表示されるはず。

http://[Server-IP]/

cd /usr/local/src

wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.18.tgz

tar zxvf Symfony_Standard_Vendors_2.0.18.tgz -C /home

Symfonyについてはドキュメントが充実しているので公式サイトを確認したほうがいいです。
ドキュメントは日本語訳もありチュートリアルもありとっかかりやすい印象。

Symfony2 日本語ドキュメント

48
47
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
47