タイトルを見たら分かるかもしれませんが、百番煎じくらいの記事です。
動画配信用のサーバーを構築する業務があったのですが、Apacheよりnginxのほうが構築しやすい感じがあったので、ローカルPCに仮想環境を構築してみました。
一応、簡単に最新環境を構築するということにこだわっています。
仮想Linux環境の構築
ローカルPCに仮想Linux環境を構築します。
VirtualBoxのインストール
https://www.virtualbox.org/wiki/Downloads
こちらから仮想化ソフトVirtualBoxをダウンロードしてインストールします。オプションはデフォルトのままにしました。
Vagrantのインストール
VirtualBoxだけでも仮想環境を構築することはできるのですが、コマンドラインからVirtualBoxを操作することのできるVagrantを導入するととても効率化できます。
http://www.vagrantup.com/downloads.html
こちらから各プラットフォーム用のインストーラーをダウンロードしてインストールします。
ConEmuのインストール
デフォルトのコマンドプロンプトでvagrantを操作するのはちょっと厳しいので代替になるツールを導入します。Console2が有名ですが、自分はConEmuが気に入ってます。
http://www.fosshub.com/ConEmu.html
こちらからインストールします。
Ubuntuのインストール
ConEmuを起動し、適当なワークフォルダを作ってそこに移動します。自分はC:\ubuntuというフォルダを作成しました。
>mkdir \ubuntu
>cd \ubuntu
次に、Vagrant Cloud (https://vagrantcloud.com/) からUbuntuの入ったBoxをインストールします。現時点での最新版は14.04 LTS(trusty64)です。
vagrant init ubuntu/trusty64
これでワークフォルダ内にVagrantfileが生成されます。このファイルにいろいろと仮想環境の設定を書いて行くのですが、とりあえずそのまま起動してみます。
vagrant up
1回目の起動はBoxをダウンロードしてくるので時間がかかります。
VMが起動したら、SSHでログインします。
vagrant ssh
もしTeratermなどでログインする場合は、以下の設定にします。
ホスト: localhost
ポート: 2222
ID: vagrant
パスワード: vagrant
ユーザーvagrantでログインしていますが、面倒なのでこれから先はルートで作業します。
sudo su -
パッケージを最新にする
apt update
apt upgrade
updateでパッケージリストを最新にし、upgradeで最新のパッケージをインストールします。
パッケージ操作のコマンドはapt-getやaptitudeやaptなどが乱立しててよく分からないので、一番綴りが短いaptを使っています。
nginxのインストール
次にnginxをインストールしますが、公式のパッケージではかなり古いバージョンが入ってしまいますので、PPAという非公式パッケージを追加して最新バージョンをインストールします。
add-apt-repository ppa:nginx/development
これで現時点での最新バージョン(1.7.7)がパッケージに追加されます。最新版が怖いチキン野郎は以下の安定板を使うがいいさです。
add-apt-repository ppa:nginx/stable
パッケージを更新します。
apt update
インストールされるバージョンを確認してみます。
apt show nginx
nginxをインストールします。
apt install nginx-extras
nginx-extrasはいろんな拡張機能がこみこみです。nginx < nginx-full < nginx-extras の順に拡張機能が多くなるようです。nginxは十分軽いのでnginx-extrasでも良いのではないかと思います。
ブラウザで確認する。
インストールされたら既にnginxが起動した状態なのでデフォルトのサイトが見れます。
Vagrantfileを編集して、ホストPCから仮想環境にアクセスできるようにします。
以下のコメントを外すと http://localhost:8080 でアクセスできるようになります。
config.vm.network "forwarded_port", guest: 80, host: 8080
以下のコメントを外すと http://192.168.33.10 でアクセスできるようになります。
config.vm.network "private_network", ip: "192.168.33.10"
自分的には下がオススメです。
書き換えたら、リロードすることを忘れずに。
vagrant reload
ブラウザに「Welcome to nginx on Debian!」という画面が表示されればOKです。
MySQLのインストール
MySQLは5.7が最新の開発版ですが、チキン野郎なので5.6を導入します。PPAだとうまく入らなかったので、公式サイト (http://dev.mysql.com/downloads/repo/apt/) からdebパッケージを取得してインストールしました。
wget http://dev.mysql.com/get/mysql-apt-config_0.3.2-1ubuntu14.04_all.deb
dpkg -i mysql-apt-config_0.3.2-1ubuntu14.04_all.deb
rm mysql-apt-config_0.3.2-1ubuntu14.04_all.deb
apt update
apt install mysql-server
dpkgコマンドの途中で目に悪い色の選択画面が出ますが、そのまま「Apply」を選びます。
パッケージインストール中にも目に悪い色でパスワードが聞かれますが、面倒なので空にします。testデータベースは作っても作らなくてもOKです。
インストールが終わったら、mysqlコマンドでちゃんと入っているか確認してみます。Ctrl+Dで抜けます。
PHP-FPMのインストール
FPM (FastCGI Process Manager) とはPHPのFastCGI実装のひとつで、主に高負荷のサイトで有用な追加機能を用意しています。公式サイトのコピペです。
nginxではApacheのmod_phpのようなモジュールは無いので、FastCGIで動かします。
add-apt-repository ppa:ondrej/php5-5.6
apt update
apt install php5-cli php5-fpm php5-mysql php5-sqlite php5-curl php5-gd php5-mcrypt
PHPの拡張は適当に必要そうなものを入れました。
nginx.confの設定
もともとPHP-FPM用の設定があるのでそれを使います。
/etc/nginx/sites-available/default を開き、以下のようにコメントを外します。
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
nginxを再起動します。
service nginx reload
確認
/var/www/html/ に test.php というファイルを以下の内容で作成します。
<?php phpinfo();
ブラウザで http://192.168.33.10/test.php を開いてみて、見慣れたphpinfoの画面が出ればOKです。
お疲れ様でした。