LoginSignup
5
3

More than 5 years have passed since last update.

今更ながらCentOS7を使ってWeb Server構築(vagrant) - LEMP -

Last updated at Posted at 2017-11-18

はじめに

今更ながらCentOS7でlocal環境構築をやりました。
自分がCentOSの6系ばかりで組んでたのでいろいろ変わったりしたから忘れないうちに...
多少は変わったけどよく使うコマンドさえ覚えれば簡単に作れるかな
ちなみに、この記事書こうと思った理由が知り合いがvagrantを使ってて何かいわれたらしいので
「普通にvirtualBoxでLAMP環境作って...」
この時点で思ったのがvagrantでもLAMP環境は普通にできますが???
ってなりましたねw
そんなわけでやります!

個人環境と仮想環境でインストールする物

自分の環境
Mac book pro
virtualBox
vagrant

Server 情報
CentOS 7
Nginx
PHP7
MariaDB
まぁ、こんな感じですかね
自分は最近apacheよりもNginxのほうが好きなのでw

virtualbox単体なんてもうね、GUIを立ち上げるのだけでもメモリをくうから嫌なんだよね
正直開発環境を建てるならvagrntでよくねって思っちゃう
そのうちDockerも使ってみたいと思う今日この頃

さっそくインストールをやっていく

初めにvagrntを立ち上げる場所を決め、ディレクトリを作成

terminal
cd Documents
mkdir centos7
cd centos7

今回はcentos7というフォルダで作成する

http://www.vagrantbox.es/

ここからほしいバージョンを選択
ほしいバージョンがなければ作成するしかない!
これは後日かくかもしれないですw

terminal
vagrant box add centos7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
# download できてればlistコマンドで確認できます。
vagrant box list

#先ほどvagrant add boxで指定した名前のVagrantfileの作成
vagrant init centos7

Vagrantfileを自分の環境にあったように修正していく

terminal
$ vim Vagrantfile

#config.vm.network "private_network", ip: "192.168.33.10"
#config.vm.synced_folder "../data", "/vagrant_data"

46行目から
  # config.vm.provider "virtualbox" do |vb|
  #vb.memory = "1024"
  #end

上記のこの部分の#を消します。

terminal
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "./", "/vagrant_data"

46行目から
  config.vm.provider "virtualbox" do |vb|
  vb.memory = "1024"
  end

上記のフォルダ、ip,メモリに関しては後で書き換えますよ
ただいったんはこれだけでほぼ完了です。
あとは

terminal
$ vagrant up

これだけで起動します。
まぁ、場合によってはエラーで止まっちゃいますw

Web server環境構築

それでは構築していきます。
まずは、sshして

terminal
$ vagrant ssh

必要なものをまとめてダウンロードするための準備
まずは、enginx

yumでエラーがでることがあるのでこれを参考に設定しておく
https://qiita.com/teru855/items/cfe4b71bf1af14b9b05a

vagrnt
# まず、rootユーザーになっる、password:vagrnt
$ sudo su -

# yum のアップデート
$ yum -y update

# nginx.repoの作成
$ vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

# nginxをインストール
$ yum install -y nginx

# php7とphp7をインストールするうえで必要なものを取得
$ yum install -y epel-release
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ yum install -y --enablerepo=remi,remi-php71 php php-fpm php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysql php-zip

#MariaDB インストール
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
$ yum install -y MariaDB-server

これでいったん必要なものは全部そろったかな
それではそれぞれの設定をしていく

phpの設定

vagrnt-php.ini
$ vim /etc/php.ini
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = pass
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_charset = none

php-fpmの設定

vagrnt-php.ini
$ vim /etc/php-fpm.d/www.conf
user = apache
group = apache

listen = 127.0.0.1:9000

# listen.owner = apache
# listen.group = apache

vagrnt-php.ini
user = nginx
group = nginx

listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nginx
listen.group = nginx

このように書き換えておく

nginxの設定

default.conf
$ mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.old
$ vim /etc/nginx/conf.d/default.conf
server {
    listen      192.168.33.10;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_max_temp_file_size 0;
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
    index index.php index.html index.htm;
    root   /usr/share/nginx/html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
    }
}

いったん設定ファイルの名前を書き換えて新規で上記をコピーしたほうが早いかも
いったんここで全部起動、自動起動設定

terminal
$ systemctl start nginx
$ systemctl start php-fpm
$ systemctl start mysql
$ systemctl enable nginx
$ systemctl enable php-fpm
$ systemctl enable mysql

MariaDBの初期設定

terminal
$ mysql_secure_installation

rootのパスワードを聞かれたらそこは設定する
それ以外はYでOK

ドキュメントルート配下にindex.phpを設置

terminal
$ cd /usr/share/nginx/html
$ vim index.php

<?php
phpinfo();

これでvagrantで指定しているIPをwebで確認しphpinfoページが表示されればOK
もしかしたらエラーでパーミッションエラーが出る場合はパーミッションの変更必要あり
localなので777で問題ないと思われる。
/var/log/nginx/error.log
ファイルを確認

そのほかに必要な場合
SELinuxの無効化
これは調べればすぐに出てくる。

portの指定
local環境なので22,80,3306ポートを解放してあげれば問題ないはず。
postfixを使う場合は該当のportを解放する

terminal
$ firewall-cmd --add-port=22/tcp --zone=public --permanent
$ firewall-cmd --add-port=80/tcp --zone=public --permanent
$ firewall-cmd --add-port=3306/tcp --zone=public --permanent
$ firewall-cmd --reload

これで問題ないはず。

最後にvagrant sshを抜けてmacのcentos7配下にあるVagrantfileを修正

terminal
$ vim Vagrantfile
config.vm.synced_folder "./", "/usr/share/nginx/html"

このように書き換えることでcentos7配下に置いたものは自動的にドキュメントルート直下になる。
以上!

あとはnginxのconfを書き換えてドキュメントルートを変更や、composerをいれてlaravelを触ってみたりとかできますね

まぁ、人によってはvagrantなんか使わなくてもVSP借りてるから問題ないって人もいるでしょうね

それではみさなん、良きServer開発を!

5
3
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
5
3