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

LAMP環境を構築する

MACを使用している。

用意するソフト

すべてフリーソフト

・VirtulBox
・Vagrant

仮想マシンの準備

LAMPのLの部分。
まず、CentOS7のboxを追加する。

console
$ vagrant box add centos/7

virtualboxを使用しているので「3」を選択

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3

CentOS7用のboxが入っているかどうかを確認する。

console
$ vagrant box list
centos/7 (virtualbox, 1905.1)

*特定のboxを削除する場合は次のコマンドを使用。

console
$ vagrant box remove centos/7

仮想マシン用のフォルダを作成して、作成したフォルダに移動しておく。

console
$ mkdir CentOS/ 
$ cd CentOS/

追加したcentos/7というboxを選択する。

console
$ vagrant init centos/7
フォルダにVagrantfileができていればOK。

Vagrantfileにある下記をコメントアウトしておく。

Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"

仮想マシンを起動

仮想マシンを起動する

console
$ vagrant up

仮想マシンの状態を確認する。runningになっていれば稼働している。

console
$ vagrant status

Current machine states:

default                   running (virtualbox)

仮想マシンへ接続

console
$ vagrant ssh

コマンドラインが下記のようになっていればOK.
[vagrant@localhost ~]$

これでLinuxが準備できた。

仮想マシンを停止したい場合

haltコマンドで仮想マシンを停止できる。

console
$ vagrant halt

仮想マシンを削除したい場合

destroyコマンドで仮想マシンを削除できる。

console
$ vagrant destroy

Apacheをインストール

LAMP環境のAの部分。

vagrant
$ sudo yum -y update
$ sudo yum -y install httpd
バージョンの確認
$ httpd -v
Server version: Apache/2.4.6 (CentOS)
インストール確認
$ rpm -qa | grep httpd

この時点でIPアドレスに接続するとApacheのテスト画面が表示されるはず。

http://192.168.33.10/
「Testing 123..」という画面が表示される。

表示されない場合は、firewalldコマンドが原因となっている場合がある。下記コマンドでfirewalldをストップさせてから、再接続してみる。

vagrant
$ sudo systemctl stop firewalld

MySQLをインストール

LAMP環境のMの部分。

vagrant
$ sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
$ sudo yum install -y mysql-community-server
$ sudo yum install -y mysql-devel
$ mysqld --version

起動確認をしておく。

vagrant
起動
$ sudo systemctl start httpd.service
$ sudo systemctl start mysqld.service
自動起動
$ sudo systemctl enable httpd.service
$ sudo systemctl enable mysqld.service
状態確認
$ sudo systemctl status httpd.service
$ sudo systemctl status mysqld.service
起動確認
$ ps aux | grep httpd
$ ps aux | grep mysqld

PHPをインストール

LAMP環境のPの部分。

vagrant
$ sudo yum -y install epel-release
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum -y install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
$ php --version

Webサイトにアクセス

html配下にindex.htmlを作成する。

vagrant
$ cd /var/www/html
$ sudo vi index.html
index.html
<html>
<head></head>
<body>
        <h1>Hello World</h1>
</body>
</html>

この時点でIPアドレスに接続すると「Hello World」と表示されるはず。

http://192.168.33.10/

PHPをApacheに対応させる。

vagrant
$ sudo vi /etc/httpd/conf/httpd.conf

httpd.confに下記を追加する。

  AddType application/x-httpd-php .php          //追加
  AddType application/x-httpd-php-source .phps  //追加

下記のように追加する。

httpd.conf
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
  AddType application/x-compress .Z
  AddType application/x-gzip .gz .tgz
  AddType application/x-httpd-php .php          //追加
  AddType application/x-httpd-php-source .phps  //追加

phpファイルを作成する。

vagrant
$ cd /var/www/html
$ sudo vi test.php
test.php
<html>
<head></head>
<body>
<?php
        echo('Hello World');
?>
</body>
</html>

下記のIPアドレスに接続して「Hello World」と表示されればOK.

http://192.168.33.10/test.php/
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