Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How To Install Nginx on CentOS (in Virtual Box)

How To Install Nginx on CentOS (in Virtual Box)

How To Install Nginx on CentOS (in Virtual Box)

Kazunori-Kimura

May 22, 2014
Tweet

More Decks by Kazunori-Kimura

Other Decks in Technology

Transcript

  1. 概要 • VirtualBoxにCentOS6.5をインストールする手順を解説します。 • VirtualBoxは 2014/05/31時点での最新版を使用します。 • 以降のスクリーンショットはMac OS Xにて作業したものですが、Windowsでもほぼ同じ

    手順になります。 • このスライドは 2014/05/31 MCEA Linux開発環境構築勉強会 向けに作成され たものです。IPアドレス等の一部記載は、勉強会の環境に依存しています。 • 間違い等のご指摘につきましては、以下のメールアドレスにお願いします。 • [email protected] 2
  2. VIRTUAL BOXについて 4 • Oracle VM VirtualBox (https://www.virtualbox.org/) • オープンソースの仮想化ソフトウェア。

    • 既存のオペレーティング・システム(ホストOS)上にアプリケーションの一つとしてインス トールされ、この中で追加のオペレーティング・システム(ゲストOS)を実行することが できる。 [引用元: http://ja.wikipedia.org/wiki/VirtualBox] • 類似製品 • VMware Workstation • Mircorsoft Virtual PC
  3. 構成イメージ 6 ホストマシン 無線LAN アダプタ VirtualBox ゲストマシン ホストオンリー ネットワーク CentOS

    eth0 eth1 Internet AP NAT ネットワーク アダプター1 アダプター2 192.168.21.xx 10.0.2.0/24 192.168.56.0/24 10.0.2.10 192.168.56.10
  4. 34 (2) 手動 を選択 (3) 追加 をクリック (4) 以下の通り設定 アドレス:

    10.0.2.10 ネットマスク: 24 ゲートウェイ: 10.0.2.1 (5) 以下の通り入力 8.8.8.8, 8.8.4.4 (6) 適用 をクリック (1) 自動接続する を選択
  5. 36 (2) 手動 を選択 (3) 追加 をクリック (4) 以下の通り設定 アドレス:

    192.168.56.10 ネットマスク: 24 (5) 適用 をクリック (1) 自動接続する を選択
  6. 42

  7. IPアドレスを確認 47 [root@localhost ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr

    08:00:27:EB:11:52 inet addr:10.0.2.10 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:feeb:1152/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:22 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1112 (1.0 KiB) TX bytes:1625 (1.5 KiB) [root@localhost ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 08:00:27:FA:95:87 inet addr:192.168.56.10 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fefa:9587/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:311 errors:0 dropped:0 overruns:0 frame:0 TX packets:166 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:33063 (32.2 KiB) TX bytes:24169 (23.6 KiB)
  8. SSHクライアントの使用 50 • Windowsの場合 • TeraTerm, Putty などのsshクライアントをインストールしてください。 • Mac

    / Linuxの場合 • ターミナルを起動し、sshコマンドを使用します。 $ ssh <user>@192.168.56.10 The authenticity of host '192.168.56.10 (192.168.56.10)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.56.10' (RSA) to the list of known hosts. <user>@192.168.56.10's password: xxxxxxxxxx Last login: Tue May 20 22:32:36 2014 [<user>@localhost ~]$
  9. ROOTへの切り替え 51 • 通常ユーザーでログイン後、suコマンドでrootユーザーに切り替えます。 • 以降の作業はrootで実施します。 [<user>@localhost ~]$ su –

    パスワード: xxxxxxxxxx [root@localhost ~]# suの後ろに – (ハイフン) を付けないと、環境変数等がrootのものにならないため 管理者用のコマンド (chkconfigなど) が見つからないといったエラーが発生します。
  10. SELinuxを無効にする 52 • SELinuxについては、以下を参照 http://ja.wikipedia.org/wiki/SELinux [root@localhost ~]# getenforce Enforcing [root@localhost

    ~]# setenforce 0 [root@localhost ~]# getenforce Permissive [root@localhost ~]# vi /etc/selinux/config 【/etc/selinux/config】 - SELINUX=enforcing + SELINUX=disabled viの操作 • Iキーで挿入モード • ESCキーでノーマルモードに戻る • :wq で保存して終了 • :q! で保存せず終了
  11. IPv6を無効にする 53 [root@localhost ~]# vi /etc/sysconfig/network [root@localhost ~]# vi /etc/hosts

    [root@localhost ~]# vi /etc/modprobe.d/disable-ipv6.conf options ipv6 disable=1 NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.0.2.1 NETWORKING_IPV6=no 2行目を削除
  12. ip6tablesを無効にする 54 [root@localhost ~]# chkconfig ip6tables off [root@localhost ~]# service

    ip6tables stop ip6tables: チェインをポリシー ACCEPT に設定中: filter [ OK ] ip6tables: ファイアウォールルールを消去中: [ OK ] ip6tables: モジュールを取り外し中: [ OK ] [root@localhost ~]# shutdown –r now これまでの変更を反映するために再起動
  13. nginxとは 56 • nginx (えんじんえっくす) • オープンソースのWebサーバー • 処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている •

    最もメジャーなWebサーバーはApache HTTP Serverですが、日本語情報も多く、改め て説明する箇所も少ないため、この勉強会ではnginxを取り上げています。
  14. nginxインストール (1) 57 [root@localhost ~]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx- release-centos-6-0.el6.ngx.noarch.rpm http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-

    0.el6.ngx.noarch.rpm を取得中 警告: /var/tmp/rpm-tmp.JQg4fF: ヘッダ V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY 準備中... ########################################### [100%] 1:nginx-release-centos ########################################### [100%] rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx- release-centos-6-0.el6.ngx.noarch.rpm yumの設定にnginxのレポジトリが追加されます。
  15. yumについて 58 • yum (やむ) • パッケージ管理システム • 設定されたレポジトリから、適切なパッケージをダウンロードしインストールする •

    そのパッケージが依存する他のパッケージが未インストールであれば、インストー ル時に合わせてダウンロード・インストールしてくれる • yumの内部ではrpmコマンドが実行されている • yumを使用せずにインストールされたパッケージは、yumではコントロール出来 ない • レポジトリにないパッケージや、レポジトリより新しいバージョンが欲しい場合は、rpmコマ ンドやソースコードからのインストールを行う
  16. nginxインストール (2) 59 [root@localhost ~]# yum -y install nginx Loaded

    plugins: fastestmirror base | 3.7 kB 00:00 base/primary_db | 4.4 MB 00:00 extras | 3.4 kB 00:00 : (中略) Installed: nginx.x86_64 0:1.6.0-1.el6.ngx Complete! [root@localhost ~]# nginx –v nginx version: nginx/1.6.0
  17. nginxの起動 60 [root@localhost ~]# nginx [root@localhost ~]# chkconfig nginx on

    この状態で、ホストマシンのブラウザから以下のアドレスにアクセスしてみてください。 http://192.168.56.10/ ...デフォルトの設定では、タイムアウトになると思います。
  18. iptablesの設定 61 http (port 80) の接続を許可するようにファイアウォール (iptables) の設定を変更します。 [root@localhost ~]#

    iptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPT INPUTの5番目にtcp port80 (http)の接続を許可 (ACCEPT) するルールを追加 設定は即時反映されます。 ホストマシンのブラウザをリロードして、nginxのデフォルトページが表示されることを確認します。
  19. PHPとphp-fpmをインストール 63 • php-fpm (FastCGI Process Manager) [root@localhost ~]# yum

    –y install php php-fpm : (中略) [root@localhost ~]# vi /etc/php-fpm.d/www.conf [root@localhost ~]# chkconfig php-fpm on :%s/apache/nginx/g user, group が apache となっているので、 nginxに置換する
  20. nginxの設定 64 [root@localhost ~]# vi /etc/nginx/conf.d/default.conf 設定内容は以下を参照 http://goo.gl/3xai1r • DocumentRootを/var/www/htmlに変更

    • *.phpのリクエストが来たらphp-fpmに投げるように設定 [root@localhost ~]# vi /var/www/html/index.php <?php phpinfo();
  21. サービス再起動 65 [root@localhost conf.d]# service php-fpm restart php-fpm を停止中: [失敗]

    php-fpm を起動中: [ OK ] [root@localhost conf.d]# service nginx restart nginx を停止中: [ OK ] nginx を起動中: [ OK ] サービスが起動していない状態でrestart を行ったため、停止処理が失敗しますが、 問題ありません。 ホストマシンのブラウザをリロードして、phpの情報が出てくればOKです。