開発環境構築
概要
- VirtualBox
- Vagrant
- CentOS6.9
- PHP version7.1
- MySQL 5.6
- Git
- phpMyAdmin
のインストール及び初期設定、テスト環境での表示確認
VirtualBoxのインストール
公式のインストーラーからダウンロード
https://www.virtualbox.org/wiki/Downloads
Vagrantのインストール
公式サイトからインストーラーをダウンロードして実行します。
https://www.vagrantup.com/downloads.html
インストール先のマシンのOSとビット数に応じたインストーラをダウンロードします。
- Vagrantのバージョン確認
バージョンが表示されていればインストールに成功しています。
$ vagrant --version
Vagant 2.0.1
Vagrant | synced_forderでホストOSとゲストOSの任意のフォルダを同期する
概要
Vagrantでは synced_folder を利用することによって、ホスト・ゲスト間でファイルの同期が可能です。
例えば、Vagrantで仮想環境を作成したが、開発に利用する IDEやエディタは普段使い慣れたホストOSのものを利用したい
などといった場合に便利です。
構文
Vagrant.configure("2") do |config|
# other config here
config.vm.synced_folder "host_path", "guest_path", options...
end
有効化されるタイミング
vagrant up もしくは vagrant reload 時に同期が有効化されます。
CentOSは6.9(bento)をインストール
vagrantのboxとは?
Vagrant の「box」とは仮想マシンのテンプレート(雛形)です。 UbuntuのBox、CentOSのBoxなどの雛形をWEB上から入手できます。
vagrantのboxを追加する
`$vagrant box add bento/centos-6.9`
1. parallels
2. virtualbox
3. vmware_desktop
Enter your choice:
2を選択してEnter
- vagrantfileを生成する
$vagrant init bento/centos-6.7
- 仮想サーバーを起動する
$vagrant up
...Provisioners marked to run always will still run.
が表示されていれば立ち上がっています。
- 起動しない場合
vagrantfileの
Vagrant.configure("2") do |config|
config.vm.box = "bento/centos-6.7"
centos-6.7になっているか確認してみる。
PHP7.1のインストール
インストール
vagrant環境にsshログインしている状態で、
EPELとRemiリポジトリを追加
$sudo yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
古いバージョンがあれば削除
$sudo yum remove php-*
PHP7.1をインストール
$sudo yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-mcrypt php-gd php-xml php-intl php-pecl-xdebug php-bcmath php-mysqlnd php-zip
インストールが終わったらバージョンを確認
php --version
MySQLのインストール
MySQL公式Yumリポジトリの情報のインストール&設定
以下のURLから、Red Hat Enterprise Linux 6用のRPMパッケージを入手します。
mysql57~.rpmしかありませんが、5.6の情報も含まれているので大丈夫です。
https://dev.mysql.com/downloads/repo/yum/
shell> wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
続けてインストール
shell> yum localinstall ./mysql57-community-release-el6-9.noarch.rpm
以下の設定ファイルを編集して、MySQL5.7を無効、MySQL5.6を有効に変更します。
shell> vi /etc/yum.repos.d/mysql-community.repo
編集内容
[mysql56-community]
enabled=0 ⇒ enabled=1
[mysql57-community]
enabled=1 ⇒ enabled=0`
enabled=0 を指定してサブリポジトリを無効、enabled=1 を指定してサブリポジトリを有効にする。
複数のリリースシリーズのサブリポジトリが有効になっている場合は、Yum はもっとも新しいシリーズを使用する。
MySQLのインストール
Yumコマンドでインストールします。
shell> yum install mysql-community-server
以下のパッケージがインストールまたは置換されました。
インストール:
mysql-community-libs.x86_64 0:5.6.35-2.el6
mysql-community-libs-compat.x86_64 0:5.6.35-2.el6
mysql-community-server.x86_64 0:5.6.35-2.el6
依存性関連をインストールしました:
mysql-community-client.x86_64 0:5.6.35-2.el6
mysql-community-common.x86_64 0:5.6.35-2.el6
numactl.x86_64 0:2.0.9-2.el6
perl.x86_64 4:5.10.1-141.el6_7.1
perl-DBI.x86_64 0:1.609-4.el6
perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1
perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1
perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1
perl-libs.x86_64 4:5.10.1-141.el6_7.1
perl-version.x86_64 3:0.77-141.el6_7.1
置換:
mysql-libs.x86_64 0:5.1.73-7.el6
これにより、MySQL Server (mysql-community-server)、クライアントのパッケージ (mysql-community-client)、クライアントとサーバー用の一般的なエラーメッセージと文字セット (mysql-community-common)、および共有クライアントライブラリ (mysql-community-libs) など、サーバーを実行するために必要なコンポーネントのパッケージがインストールされます。
MySQLの起動と停止
MySQL Serverの起動
shell> sudo service mysqld start
MySQL Serverのステータスをチェック
shell> sudo service mysqld status
MySQL Serverの停止
shell> sudo service mysqld stop
MySQLの初期設定
$ mysql_secure_installation
Enter current password for root (enter for none): <-rootパスワードが設定されていないので、そのままEnter
Set root password? [Y/n] Y <-rootパスワードを設定するのでY
New password: <- パスワードを設定
Re-enter new password: <- パスワードを再入力
Remove anonymous users? [Y/n] Y <- 誰でもログインできる状態になっているのでそれをRemoveするのでY
Disallow root login remotely? [Y/n] Y <- RootでMySQLにリモートログインできるのはセキュリティ的にNGなのでY
Remove test database and access to it? [Y/n] Y <- testデータベースは不要なのでY
Reload privilege tables now? [Y/n] Y <- 上記設定により権限の変更等を即時反映したいのでY
MySQLでの「Access denied for user 'root'@'localhost' (using password: NO)」の対処法
rootユーザーの権限設定がされていなく、上記のようなエラーが発生することがある。
1.MySQLの停止
MySQLが稼働していたら一旦停止します。
$ service mysqld stop
2.オプション付きで起動
このオプションはMySQLの権限システムを使用しないで起動するものです。
$ mysqld_safe --skip-grant-tables &
3.MySQLコマンドプロンプトに入る
mysql -u root
4.rootへの権限設定
mysql> truncate table user; <- ユーザーテーブルの全件削除
mysql> flush privileges; <- 権限の反映
mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
<- パスワードを設定しないで権限を付与する
実行結果を確認する
mysql> select host, user from user;
+-----------+------+
| host | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
5.MySQLの再起動
これでrootユーザーへの権限設定ができたので、MySQLを–skip-grant-tablesオプションなしで再起動(通常起動)します。
mysql> quit;
$ service mysqld start
6.エラー解消の確認
最後にエラーが解消されていることを確認します。
mysql -u root
mysql>
Gitのインストール
- centOS6の場合
$sudo yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm
$sudo yum install git
Complete!
インストールしたgitのバージョンになってるか確認
$ git --version
phpMyAdmin
$sudo yum --enablerepo=remi-php71 --enablerepo=remi install phpMyAdmin
インストールしたphpMyAdminにはアクセス制限がかかっているので、あなたのIPアドレスをアクセス許可する必要があります。
sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
すると、次のような記述があるので、「i」を押してインサートモードにして、
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
の部分に
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip ***.***.***.***
Require ip ::1
</RequireAny>
</IfModule>
「***.」の部分に自分のIPアドレスを追記する。
追記後は、escキーを押して、「:wq」で保存して終了。
最後に、Apacheを再起動します。
$ sudo service httpd restart