Ruby
PHP
MySQL
CentOS
vagrant

Vagrant + CentOS7にシンプルなLAMP環境を構築

インストールするリスト

可能な限り最新バージョンをインストールする

  • Apache2.4
  • Git2.4
  • PHP7.1
  • Composer
  • MySql5.7

Vagrantセットアップ

$ vagnrat box list
centos/7 (virtualbox, 1707.01)

$ vagrant init centos/7
$ vagrant up
$ vagrant ssh

仮想マシンにログイン

$ su -
password:vagrant
# yum update

CentOSセットアップ

日本語化

# yum -y install ibus-kkc vlgothic-*
# localectl set-locale LANG=ja_JP.UTF-8
# source /etc/locale.conf 

後で必要になったものを諸々インストール(随時更新)

yum install -y zip unzip 

ファイアウォール無効化

# systemctl stop firewalld
# systemctl disable firewalld

Apache

# yum install -y httpd
# systemctl enable httpd.service
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Aug 23 2017 15:47:21

Git

yumのGitは古い。最新版を以下からダウンロードしてインストールする。
https://www.kernel.org/pub/software/scm/git/

※2017年10月1日現在2.9.5

# yum -y install gcc perl-ExtUtils-MakeMaker curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# curl -o git-2.9.5.tar.gz  https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
# tar vfx git-2.9.5.tar.gz
# cd git-2.9.5
# make prefix=/usr/local all
# make prefix=/usr/local install
# git --version
git version 2.9.5

PHP7.1

# yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum remove php-*
# yum install --enablerepo=remi,remi-php71 php php-mysqlnd php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
# php -v
PHP 7.1.10 (cli) (built: Sep 27 2017 08:27:18) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

Composer

# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
# mv composer.phar /usr/local/bin/composer
# composer config -g repos.packagist composer https://packagist.jp
# composer

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/

  • Composerをどこからでも利用できるようにする
  • 国内のミラーサイトからcomposer installできるように設定

MySQL

# yum remove mariadb-libs -y
# yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# yum repolist all | grep mysql
# yum install mysql-community-server -y
# systemctl enable mysqld.service
# mysql --version
mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper

MySQL初期パスワード確認

cat /var/log/mysqld.log | grep 'temporary password'
2017-09-30T17:23:59.399574Z 1 [Note] A temporary password is generated for root@localhost: -Cr+wl74q:uv

Vagrantfileを修正

以下の記述でVagrantfileがあるディレクトリとサーバ上の/var/www/htmlが同期される

Vagratfile
config.vm.synced_folder "./", "/var/www/html"

共有ファイル以下はchownできない?

Laravel5.5をhtml以下にインストールした際Permissionを突破できなくなってハマった。
chown apache:apacheをやってもvagrnt:vagrantのから変わらない。調べたら共有ファイル以下は所有者とグループをvagrantから変更できないようだった。httpd.confのUserとGroupをvagrantに変更して対処した。

httpd.conf
User vagrant
Group vagrant

Ruby

最新のソースをダウンロード
https://www.ruby-lang.org/ja/downloads/

# cd /usr/local/src
# wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz
# tar zxvf ruby-2.4.2.tar.gz
# cd ruby-2.4.2
# ./configure
# make
# make install
# ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]

SQLite

最新版のソースをダウンロード
http://www.sqlite.org/download.html

# cd /usr/local/src
# wget http://www.sqlite.org/snapshot/sqlite-snapshot-201710111112.tar.gz
# tar -zxvf sqlite-snapshot-201710111112.tar.gz
# cd sqlite-snapshot-201710111112
# ./configure
# make
# make install
# sqlite3 -version
3.21.0 2017-10-11 11:12:20 0f160a8abb0409b6e687ebc13b732559b3d65428f72430df142fd925eb39e9a2