VagrantでLAMP環境を作成するメモ2 【LAMP環境をCentOS7に入れる】
2018-04-10centOS7のインストール・初期設定が完了したので、いよいよLAMP環境を構築する手順に入ります。
使用環境は、
Apache2.4.6
PHP7.2
MariaDB5.5
です。
LAMP環境とは、その名の通り、
L:Linux
A:Apache(Webサーバー)
M:MySQL(データーベース)
P:PHP
の略ですが、各ソフトウェア(パッケージ)をインストールするには、ソースコードを利用する方法と、パッケージ管理システムを利用する方法の2種類があります。
初心者のうちは、ソースコードを利用して各ソフトウェアをインストールするのは大変ですので、今回はパッケージ管理システムのyumを利用して各ソフトウェアをインストールしていきます。
■yumを利用するメリット
ソフトウェアは個々に、どのソフトウェアがどのソフトウェアに依存しているのか?(◯◯が動くためには◯◯が必要)という、依存情報をもっている。
しかし、もともとLinuxはオープンソースであり、根底ではソフトウェアは全て自力でコンパイルして使うというスタイルがあるため、環境自体の正解がまばらである。
パッケージ管理システムはソフトウェアを使用するに際して、依存情報をもとに必要なものが適切にインストールされるようになっている。
■rpmというパッケージ管理システムもある。何故yumを使うのか?
rpm と yum は別物では無く、yumは内部でrpm を呼び出してより便利にrpmを扱えるようになっている。
rpm は yum が使えない場面で使用すると良い。
Apacheインストール
Apacheをインストールする前に、まず、yumのリポジトリにApacheの必要なバージョンが存在するか、確認します。
リポジトリとはパッケージの提供元のこと。配布してくれている場所と考えると分かりやすい。
1 2 3 4 5 6 |
[vagrant@localhost ~]$ yum list | grep httpd Failed to set locale, defaulting to C httpd.x86_64 2.4.6-67.el7.centos.6 updates httpd-devel.x86_64 2.4.6-67.el7.centos.6 updates httpd-manual.noarch 2.4.6-67.el7.centos.6 updates httpd-tools.x86_64 2.4.6-67.el7.centos.6 updates |
今回は、Apache2.4系をインストールしたいので問題無し。
早速インストール!と行きたいところですが、ソフトウェアのインストールはrootで実行する必要があるので、以下コマンドで、rootユーザーになっておきます。
1 2 |
[vagrant@localhost /]$ sudo su [root@localhost /]# |
「@」の前がrootになっていれば成功です。
続けて、 yum install コマンドでApacheのインストールを行う。
1 |
yum -y install httpd |
以下コマンドで、インストールされているバージョンが確認できれば、インストール成功です。
1 2 3 4 |
[root@localhost /]# httpd -v ----実行結果---- Server version: Apache/2.4.6 (CentOS) Server built: Oct 19 2017 20:39:16 |
続いてApacheの起動状態を確認します。
1 2 3 4 5 6 7 |
systemctl status httpd ----実行結果---- ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:httpd(8) man:apachectl(8) |
inactive (dead) とあるので、停止しています。
以下コマンドで起動します。
1 2 3 4 5 6 7 8 9 |
#起動 [root@localhost /]# systemctl start httpd.service #もう一度起動状態を確認する [root@localhost /]# systemctl status httpd ----実行結果---- ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2018-04-03 00:56:07 UTC; 6s ago |
active (running)になっていれば、OKです。
しかし、このままだと、サーバーを再起動する度に、Apacheを起動し直さないといけないので、自動起動をONにしておきます。
1 2 3 |
[root@localhost /]# systemctl enable httpd.service ----実行結果---- Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. |
自動起動がONになっているか確認
1 2 3 |
[root@localhost /]# sudo systemctl list-unit-files | grep httpd ----実行結果---- httpd.service enabled |
実行結果が、enabledになっているのでOKです。
この後、ブラウザからアクセスして、Apacheの初期画面を見たいのですが、Macから仮想OSをhttp通信で見るためには、ネットワークの設定が必要になるので、一度仮想マシンから抜けます。
1 2 3 4 5 6 7 8 9 10 |
#root権限から抜ける [root@localhost /]# exit exit #ログアウトする [vagrant@localhost /]$ exit logout Connection to 127.0.0.1 closed. #ローカル環境に戻ったか確認する $ ls Vagrantfile |
Vagrantfileを編集します。
1 2 3 4 5 6 7 8 9 |
vi Vagrantfile ----------- : # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" # Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.33.10" ←ココ : |
config.vm.network “private_network”〜〜のコメントアウトを外します。
以下、コマンドで、Vagrantfileの再読込を行います。
1 |
vagrant reload |
これで、192.168.33.10でアクセス出来るようになりました。
PHP7インストール
Apacheの時と同じく、yumのリポジトリに必要なバージョンが存在するか、確認します。
1 2 3 4 5 6 7 8 9 10 |
[vagrant@localhost ~]$ yum list | grep php Failed to set locale, defaulting to C graphviz-php.x86_64 2.30.1-19.el7 base php.x86_64 5.4.16-43.el7_4.1 updates php-bcmath.x86_64 5.4.16-43.el7_4.1 updates php-cli.x86_64 5.4.16-43.el7_4.1 updates php-common.x86_64 5.4.16-43.el7_4.1 updates : : : |
PHP5.4系しかありません。今回はPHP7.2が欲しいのでリポジトリの追加を行います。
PHP7.2のインストールに必要なリポジトリはEPELと、Remiというリポジトリです。
■EPELのインストール(yumなので、OSの指定をしなくてもOK)★rootユーザーになっておくこと。
1 |
yum -y install epel-release |
■Remiのインストール(yumが使えない。URLはOS毎に違うので注意!)
1 |
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm |
もう一度、 yum list | grep php をすると、PHP7.2系のパッケージが追加されていることがわかります。
■PHPのインストール
1 |
sudo yum install -y --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-gd php72-php-mysqlnd |
最低限remi-php72 phpが必要です。
php-devel php-mbstring(マルチバイト文字モジュール、日本語使うなら入れとく)
php-pdo(PHPからDBに接続する時に便利なクラス群)
php72-php-mysqlnd(MySQLモジュール)
php-gd(画像変換モジュール)
■phpのバージョン確認
1 2 3 4 5 |
[root@localhost vagrant]# php -v ----実行結果---- PHP 7.2.4 (cli) (built: Mar 27 2018 17:23:35) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies |
■php.iniの編集
PHPの設定ファイルを編集します。
viの使い方もついでに覚えます(文字列検索:次に進む、戻る、編集モードにする、編集モードから抜ける、保存するは最低限)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
vi /etc/php.ini ----以下の通り編集する---- date.timezone = "Asia/Tokyo" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 0 mbstring.strict_detection = Off mbstring.http_output_conv_mimetype= |
■Apache再起動
1 |
systemctl restart httpd |
■テストファイルを作成
1 2 3 |
vi /var/www/html/index.php ----以下の一文を書いて保存---- <?php phpinfo(); ?> |
もう一度、ブラウザでアクセスし、info が表示されていればOK
MariaDBのインストール
yumのリポジトリに必要なバージョンが存在するか、確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@localhost vagrant]# yum list | grep maria Failed to set locale, defaulting to C mariadb-libs.x86_64 1:5.5.56-2.el7 @anaconda mariadb.x86_64 1:5.5.56-2.el7 base mariadb-bench.x86_64 1:5.5.56-2.el7 base mariadb-devel.i686 1:5.5.56-2.el7 base mariadb-devel.x86_64 1:5.5.56-2.el7 base mariadb-embedded.i686 1:5.5.56-2.el7 base mariadb-embedded.x86_64 1:5.5.56-2.el7 base mariadb-embedded-devel.i686 1:5.5.56-2.el7 base mariadb-embedded-devel.x86_64 1:5.5.56-2.el7 base mariadb-libs.i686 1:5.5.56-2.el7 base mariadb-server.x86_64 1:5.5.56-2.el7 base mariadb-test.x86_64 1:5.5.56-2.el7 base |
5.5系で良いので、このままインストールします。
1 |
sudo yum install -y mariadb mariadb-devel mariadb-server |
■設定ファイル(my.cnf)の編集
1 2 3 |
vi /etc/my.cnf ----[mysqld]のエリアに以下を追記---- character-set-server = utf8 |
■MariaDBの起動
1 |
systemctl start mariadb.service |
■自動起動をONにしておく
1 2 3 |
[root@localhost /]# systemctl enable mariadb.service ----実行結果---- Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.<br> |
自動起動がONになっているか確認
1 2 3 |
[root@localhost /]# sudo systemctl list-unit-files | grep mariadb ----実行結果---- mariadb.service enabled |
実行結果が、enabledになっているのでOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[root@localhost ~]$ mysql -uroot -p #データーベースの作成(DB名はphp7) MariaDB [(none)]> CREATE DATABASE php7 DEFAULT CHARACTER SET utf8; #ユーザー&権限&パスワードの作成(DB名はphp7) MariaDB [(none)]> GRANT ALL PRIVILEGES ON `php7`.* TO 'php7'@'localhost' IDENTIFIED BY 'パスワード'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON `php7`.* TO 'php7'@'%' IDENTIFIED BY 'パスワード'; MariaDB [(none)]> FLUSH PRIVILEGES; #上記2つのユーザーが登録されているか確認する。 MariaDB [(none)]> SELECT Host, User FROM mysql.user; +-----------------------+------+ | Host | User | +-----------------------+------+ | % | php7 | | 127.0.0.1 | root | | ::1 | root | | localhost | | | localhost | php7 | | localhost | root | | localhost.localdomain | | | localhost.localdomain | root | +-----------------------+------+ MariaDB [(none)]> exit; |
Sequel ProでVagrant内のMariaDBに接続する
以下コマンドで、vagrantのSSH設定について確認します。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ vagrant ssh-config ----結果内容---- Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /XXXXXX/Vagrant/PHP7/.vagrant/machines/default/virtualbox/private_key IdentitiesOnly yes LogLevel FATAL |
IdentityFileに秘密鍵のパスが書かれているので、パスワードではなく、このキーを使用してDB接続します。
コレで、VagrantにLAMP環境を構築することが出来ました!
お疲れ様です。
———————-
この記事がお役に立てたら、是非シェアをお願いします^^