Help us understand the problem. What is going on with this article?

CentOSのGitと各種env系の環境構築[vagrant]

More than 1 year has passed since last update.

Vagrantの環境設定

Vagrantfileを設定記載

Vagrantfile
35|  config.vm.network "private_network", ip: "192.168.44.55" # 適当なIPを指定しましょう。
46|  config.vm.synced_folder "./dev", "/home/vagrant/dev"

windows側が左で vagrantのファイルが右です
※あらかじめ指定のディレクトリは作成しておきましょう。

CentOSの環境設定

言語の設定

初期設定のままだとドイツ語と非常に面倒くさいです。
その為日本語に再設定したいと思います。

設定の確認コマンド
$ System Locale

変換できる言語一覧の表示
$ localectl list-locales | grep ja

result
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc

utf-8が最近一般的なのでこんな感じでやっときます。

設定の変更
言語
$ localectl set-locale LANG=ja_JP.utf8

キーボード
$ localectl set-keymap jp106

以上を設定し、再起動を行えば無事日本語化が完了します。
$ sudo shutdown -r now

参考記事

VagrantのCentOS7にて日本語設定

Gitのインストール

直接最新版のgitの環境をインストールするのは依存パッケージの関係で難しいため
yumを通して過去バージョンをインストールした後に、

手順

パターン1

# 予め
# $ git clone git clone git://git.kernel.org/pub/scm/git/git.git
# を他の環境で実行しておいて、ファイルを引っ張り、依存環境解決しても可

$ sudo yum update
$ sudo yum -y install git
$ sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
$ sudo yum remove git
$ cd /usr/local/src
$ sudo git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git
$ sudo make prefix=/usr/local all
$ sudo make prefix=/usr/local install
$ exec $SHELL
$ git --version

パターン2

# ① $ git clone git clone git://git.kernel.org/pub/scm/git/git.git
# を他の環境で実行しておいて、ファイルを引っ張り、依存環境解決しても可

$ sudo yum update
$ sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
$ sudo yum remove git
$ cd /usr/local/src
$ wget https://www.kernel.org/pub/software/scm/git/git-2.4.0.tar.gz
$ tar zxvf git-2.4.0.tar.gz
$ cd git
$ sudo make prefix=/usr/local all
$ sudo make prefix=/usr/local install
$ exec $SHELL
$ git --version

参考にしたサイト

CentOSに最新版のGitをインストール・アップデートする方法

Updateの方法

Apache2.4系のインストール

$ sudo yum install httpd httpd-devel
$ sudo systemctl enable httpd.service
$ sudo systemctl start httpd.service
$ sudo systemctl status httpd.service

外部から接続する場合CentOS7はfirewallを切る必要がある

$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld

設定ファイルなどなど

コンフィグの確認
$ cat /etc/httpd/conf/httpd.conf

MySQLのインストール

CentOS7では最初からMariaDBが入っている(らしいが、socketエラーが出て自分は面倒だったのでMySQLをインストール)
ので競合しないように削除しておく必要がある

$ sudo yum -y remove mariadb-libs
$ sudo rm -rf /var/lib/mysql

手順

$ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
$ sudo yum -y install mysql-community-server
$ mysqld --version
mysqld  Ver 5.7.22 for Linux on x86_64 (MySQL Community Server (GPL))
# インストール完了!

起動コマンド
$ sudo systemctl start mysqld.service

自動起動設定
$ sudo systemctl enable mysqld.service

初期設定

$ sudo cat /var/log/mysqld.log | grep password |  awk '{print substr($0, length
($0) - 27, length($0))}'
root@localhost: uhsd!Aid;3Zt

uhsd!Aid;3Zt10この[localhos :]以降がパスワードとなるのでメモしておこう。

対話形式でパスワードの設定を行います
$ mysql_secure_installation
※パスワードの設定を求められますが、記号を含まなければいけないため注意が必要です
※何か聞かれても大体yでok

その他設定関連【重要】

MySQLの設定を開きます

$ sudo vi /etc/my.conf

mysqldの中身を変更
character-set-server = utf8 // 文字コードの設定
default_password_lifetime = 0 // 初期設定だと1年経過するとパスワードを変更していないとログインできなくなる

my.conf
[mysqld]
.
.
.
character-set-server = utf8
default_password_lifetime = 0

設定を反映させるために再起動を行う
$ sudo systemctl restart mysqld.service

起動確認

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

参考にしたサイト

CentOS 7 に MySQL 5.7 を yum インストールして初期設定までやってみた

Rbenvのインストール (お好み)

手順

昔は意味が分からなかったけど ~/.bash_profile (/home/vagrant/.bash_profile)へ、[>>] [Redirectによる追記]を実行する。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv


$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
# ruby-buildのインストール
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

念のため$ cat .bash_profileで確認しよう

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
#

備考

環境にもよりますが、Rubyのダウンロードとインストールがめちゃくちゃ長いので気長に待ちましょう。

Railsを使ってみよう。

Ruby on Rails 5.2.0 チュートリアル

参考にしたサイト

rbenv を使って ruby をインストールする(CentOS編)

Pyenvのインストール (お好み)

手順

$ git clone https://github.com/pyenv/pyenv ~/.pyenv

$ echo '# Pyenv' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l

備考

Rubyと同じくインストールに関してめちゃくちゃ重たいので気長にまとう

anacondaを使ってみよう。(ディープラーニング)

$ pyenv install anaconda3-5.1.0
ディープラーニングに関しては後日追記します。

参考にしたサイト

Pyenvの使い方

goenvのインストール(お好み)

手順

$ git clone https://github.com/syndbg/goenv.git ~/.goenv
$ echo '# goenv PATH ' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.goenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(goenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
$ goenv -v

参考にしたサイト

goenvでgoをインストール 〜初心者向け〜

phpenvのインストール(お好み)

手順

※rbenvが元に作成されているのでところどころ名残があり、rbenvと一部表示される部分等がありますが、問題はありません。
※re2cが中々曲者です

# 依存ライブラリの解決 必要ない物も含まれるかもしれません。
$ sudo -y yum install epel-release re2c mhash libmcrypt-devel bison libtidy-devel
# 依存ライブラリの解決
$ mkdir documents
$ cd documents
$ git clone https://github.com/CHH/phpenv.git
$ cd phpenv/bin
$ sh phpenv-install.sh
$ echo '#phpenv' >> ~/.bash_profile
$ echo 'export PATH="/home/vagrant/.phpenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(phpenv init -)"' >> ~/.bash_profile
$ git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
$ exec $SHELL -l

apacheとの連携を後日追記

phpenvはデフォルトの設定だとlibphp7.soが無いらしい(libphp[version].so)

PHPとApacheの連携を行う

libphp[x].soのインストール

$ cd ~/.phpenv/plugins/php-build/share/php-build/definitions
$ sudo vi 7.1.4
# $ sudo vi {PHPversion} 

下記の情報を追記する(怒られたら別の方を記述しよう)
configure_option "--with-apxs2" "/usr/bin/apxs"
configure_option "--with-apxs2" "/usr/sbin/apxs"

configure_option "--with-apxs2" "/usr/bin/apxs"
install_package "https://secure.php.net/distributions/php-7.1.4.tar.bz2"
install_xdebug "2.6.0"
enable_builtin_opcache

phpenvでPHPの再インストールを行う
phpenv install {PHPversion}
phpenv install 7.1.4

$ sudo cp /usr/lib64/httpd/modules/libphp7.so ~/.phpenv/versions/7.1.4/libexec/libphp7.so
$ sudo cp /usr/lib64/httpd/modules/libphp{PHPのバージョン頭1文字}.so ~/.phpenv/versions/{PHPのバージョン}/libexec/libphp7.so

Apacheの設定を追記する。

$ sudo vi /etc/httpd/conf.d/php.conf

php.comf
# 先ほどコピーしたlibphp5.soを参照する
LoadModule php7_module /home/vagrant/.phpenv/versions/7.1.4/libexec/libphp7.so
# LoadModule php{頭バージョン}_module /home/vagrant/.phpenv/versions/{全バージョン}/libexec/libphp{頭バージョン}.so

# .phpファイルにアクセスした場合PHPスクリプトとして扱う記述
AddType application/x-httpd-php .php

# デフォルトファイルの追加
DirectoryIndex index.php
$ sudo httpd -t
Syntax OK
$ sudo service httpd stop
$ sudo service httpd start

備考

phpenvでインストールする際
[Compiling]: /tmp/php-build/source/7.1.4
で、かなりの時間止まりますが、気長に待ちましょう。

参考にしたサイト

phpenv インストール
phpenvの導入して複数バージョンのPHPを管理する
PHP7をCentOS7にインストールする手順
ひとりごと-PHP tidy のインストールにはまった

nodenvのインストール(お好み)

手順

$ git clone git://github.com/nodenv/nodenv.git ~/.nodenv
$ git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build
$ echo '# nodenv PATH ' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(nodenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
$ nodenv -v

参考にしたサイト

nodenv を使って Mac に Node.js の環境を構築する

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away