38
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VagrantでUbuntu+nginx+MySQL+PHP-FPMの最新環境を構築する

Last updated at Posted at 2014-11-08

タイトルを見たら分かるかもしれませんが、百番煎じくらいの記事です。

動画配信用のサーバーを構築する業務があったのですが、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です。

お疲れ様でした。

38
36
0

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
38
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?