はじめに
今更ながら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を立ち上げる場所を決め、ディレクトリを作成
cd Documents
mkdir centos7
cd centos7
今回はcentos7というフォルダで作成する
http://www.vagrantbox.es/
↑
ここからほしいバージョンを選択
ほしいバージョンがなければ作成するしかない!
これは後日かくかもしれないですw
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を自分の環境にあったように修正していく
$ 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
上記のこの部分の#を消します。
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,メモリに関しては後で書き換えますよ
ただいったんはこれだけでほぼ完了です。
あとは
$ vagrant up
これだけで起動します。
まぁ、場合によってはエラーで止まっちゃいますw
Web server環境構築
それでは構築していきます。
まずは、sshして
$ vagrant ssh
必要なものをまとめてダウンロードするための準備
まずは、enginx
yumでエラーがでることがあるのでこれを参考に設定しておく
https://qiita.com/teru855/items/cfe4b71bf1af14b9b05a
# まず、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の設定
$ 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の設定
$ vim /etc/php-fpm.d/www.conf
user = apache
group = apache
listen = 127.0.0.1:9000
# listen.owner = apache
# listen.group = apache
↓
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
このように書き換えておく
nginxの設定
$ 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;
}
}
いったん設定ファイルの名前を書き換えて新規で上記をコピーしたほうが早いかも
いったんここで全部起動、自動起動設定
$ systemctl start nginx
$ systemctl start php-fpm
$ systemctl start mysql
$ systemctl enable nginx
$ systemctl enable php-fpm
$ systemctl enable mysql
MariaDBの初期設定
$ mysql_secure_installation
rootのパスワードを聞かれたらそこは設定する
それ以外はYでOK
ドキュメントルート配下にindex.phpを設置
$ 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を解放する
$ 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を修正
$ vim Vagrantfile
config.vm.synced_folder "./", "/usr/share/nginx/html"
このように書き換えることでcentos7配下に置いたものは自動的にドキュメントルート直下になる。
以上!
あとはnginxのconfを書き換えてドキュメントルートを変更や、composerをいれてlaravelを触ってみたりとかできますね
まぁ、人によってはvagrantなんか使わなくてもVSP借りてるから問題ないって人もいるでしょうね
それではみさなん、良きServer開発を!