Windows10のVagrant+Centos7+PHP7+MySQL5.7+Apacheの仮想環境

   2017/07/02

前回のWindows10のVagrantで仮想環境の続きになります。

vagrantをCentos7を選択して作成した後、フォルダにはVagrantfileがあるはずです。
ここでVagrantfileの設定を行います。Vagrant作成後のVagrantfileの設定を参考にしてください。

Vagrantfileの設定後にwwwフォルダを作成してvagrant up

C:\web\sample> vagrant up

して起動後にSSH接続を行います。

ここでは、前回インストールをしたTera Termを使用します。
Vagrantfile起動時に SSH address: 127.0.0.1:2222 のように表示されているので、その情報を利用してください。
例)

ホスト 127.0.0.1
ポート 2222
ユーザー名 vagrant
パスフレーズ vagrant

yumをアップデート

yumを利用してインストールしていくので、最新にしておく。

$ sudo yum update

Apacheのインストール

$ sudo yum -y install httpd

# インストールされているかバージョンの確認
$ httpd -v

ファイアウォールの設定

忘れていてはいけないファイアウォールの設定。
ローカルでかつ開発にしか使わないので停止しておきます。

# firewalldの状態確認
$ firewall-cmd --state

# firewalld停止
$ sudo systemctl stop firewalld
 
# 自動起動停止
$ sudo systemctl disable firewalld

apacheの設定

自動起動の設定をします。

# apache起動
$ sudo systemctl start httpd
 
# apache自動起動
$ sudo systemctl enable httpd.service

mariadbを削除する

mariadbをそのまま使用するのであれば削除しなくて良いが、ここではMysqlを使用するので削除します。

# インストールされているか確認する
$ rpm -qa | grep maria
mariadb-libs-5.5.44-1.el7_1.x86_64

# 削除する
$ sudo yum remove mariadb-libs
$ rm -rf /var/lib/mysql/

MySQLのインストール

MySQLの起動

# リポジトリの追加
$ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# インストール
$ sudo yum install -y mysql-community-server
# インストールされているかどうかバージョンの確認
# mysql server
$ mysqld --version
# mysql client
$ mysql --version

# MySQL起動
$ sudo systemctl start mysqld.service
 
# MySQL自動起動
$ sudo systemctl enable mysqld.service

MySQLの初期設定

MySQL5.7では、初回起動と同時にrootの初期パスワードが生成されるため、ログファイルからrootの初期パスワードを確認する必要があります。

$ sudo cat /var/log/mysqld.log | grep 'temporary password'
2017-06-28T21:40:04.345308Z 1 [Note] A temporary password is generated for root@localhost: Wr-(8w/Eq:7*

上記コマンドで確認。初期パスワードはWr-(8w/Eq:7*となります。
rootパスワードがわかったので、Mysqlの設定を行っていきます。

$ mysql_secure_installation

Securing the MySQL server deployment.
# 初期パスワードを入力します。
Enter password for user root:

The existing password for the user account root has expired. Please set a new password.

# 新規パスワードを入力します。
New password:
# 確認のために新規パスワードをもう一度入力します。
Re-enter new password:


The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.
# パスワードの強度です。
Estimated strength of the password: 100
# rootのパスワードを変更しますか?と聞いているのでyを押してEnter
Change the password for root ? ((Press y|Y for Yes, any other key for No) :

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
# 匿名ユーザーを削除しますか?基本的には削除しておいてよいかと思います。
Remove anonymous users? (Press y|Y for Yes, any other key for No) :


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
# リモートからのrootログインを拒否しますか?後日使用するので私はnを選択しました。
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :

 ... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

# テストデータベースを削除しますか? 使用しない場合はyで。
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
# 今すぐ設定を反映する為に再ロードしますか?反映するのでyです。
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

Success.

All done!

以上が私の場合ですが、選択によって記述内容が少し変わります。

MySQLのログイン確認

# ログイン
$ mysql -u root -p

パスワードを入力してログイン出来たら成功です。

my.cnf 設定

Viエディタを使用して編集します。使い方はここでは記述しませんのでご了承ください。

$ sudo vi /etc/my.cnf

# [mysqld]記述の下に
default-storage-engine=InnoDB
innodb_file_per_table

character-set-server = utf8
collation-server = utf8_general_ci
# [mysql]の記述があれば以下に、なければ[mysql]も記述
[mysql]
default-character-set = utf8 

# [client]の記述があれば以下に、なければ[client]も記述
[client]
default-character-set = utf8

設定を保存してください。Mysqlのデフォルト設定になります。

PHP7のインストール

centOS7の標準リポジトリではPHP7を提供していないのでRemiというプロジェクトのリポジトリを利用します。

# EPELのリポジトリ情報をインストール
$ sudo yum -y install epel-release

# Remiのリポジトリ情報をインストール
$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# PHP7のインストール
$ sudo yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd

# PHPの確認
$ php -v

PHP7のインストールが無事完了したでしょうか?

おわりに

centOS7にLAMP環境を構築しました。
開発に応じて自由なセッティングが出来るのがvagrantの利便性が高いところです。

補足として
Apacheのconfの場所
/etc/httpd/conf/httpd.conf
PHPのphp.iniの場所
/etc/php.ini

jun
会社やってます。大阪出身。40歳を超えてもまだまだ若輩者でございまする。 https://www.jiji-cloud.jp/

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。