Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@yuto22

MacでPHP開発環境構築

More than 1 year has passed since last update.

開発環境構築

2019.05.09


概要

  • VirtualBox
  • Vagrant
  • CentOS6.9
  • PHP version7.1
  • MySQL 5.6
  • Git
  • phpMyAdmin

のインストール及び初期設定、テスト環境での表示確認


VirtualBoxのインストール


公式のインストーラーからダウンロード

参考ページ


Vagrantのインストール


公式サイトからインストーラーをダウンロードして実行します。

インストール先のマシンの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の情報も含まれているので大丈夫です。


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


1
Help us understand the problem. What is going on with this article?
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
yuto22
駆け出しエンジニア 基本自分用メモ

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?