VirtualBoxのCentOS7にてLAMP環境の構築練習をした話

はじめに

今回はLAMP環境の構築練習として前回作ったVirtualBox内のローカル環境を利用したのでそれについてまとめていく。

LAMP環境とは

以下の環境で構築されているwebサービスの事

yumのupdate

$ sudo yum update

EPELリポジトリとRemiリポジトリ

EPELリポジトリとは

Linuxのパッケージセットがあるリポジトリのこと。

EPELを使う

$ sudo yum install epel-release

Remiリポジトリとは

Remi Colletさんが運営しているリポジトリで、PHPMySQLの最新版を管理している。

Remiリポジトリを使う

$ sudo yum install パッケージURL

Remi's RPM repository

このサイトのCentOS7のreleaseのprmファイルのリンクをパッケージURLとして貼る。

f:id:kkzoo__52:20200821002431p:plain

apacheのインストール

yumapacheをインストールする

$ sudo yum install httpd

apacheが入ったことの確認

$ httpd -v

自動でapacheが起動するように設定し、再起動した際にapacheが動いていることを確認。

$ sudo systemctl enable httpd
$ sudo reboot
$ sudo systemctl status httpd

CentOS7の自動起動設定 - Qiita

apacheの設定

http通信に使うポート80を開ける

$ sudo firewall-cmd --permanent --zone=public --add-service=http

https通信に使うポート443を開ける

$ sudo firewall-cmd --permanent --zone=public --add-service=https

今回行なった設定を読み込む

$ sudo firewall-cmd reload

【すぐわかる】CentOSのポート開放のやり方

ローカル環境で勉強のため一時的にSELINUXを止める

$ sudo vi /etc/selinux/config
SELINUX=enforcing # 編集前
SELINUX=disabled   # 編集後

設定を読み込んだ後にSELINUXの挙動を確認。(disabledと表示されれば止まっている)

$ sudo reboot
$ getenforce

Apacheの起動確認

ipアドレスを取得する。(今回の場合enp0s3inetを確認)

$ ip addr

上記で取得したIPアドレス検索エンジンから飛ぶ。

Hello Apacheを出力

Apacheのhtmlファイルの場所を確認し、DocumentRootを探す。

$ less /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html" # これが見つかるはず

/var/www/html/index.htmlを作成。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Apacheの練習</title>
  <head>
  <body>
    <p>Hello Apache</p>
  </body>
</html>

permissionの問題があるのでapcheに権限を移行し確認する。

$ sudo chown apache:apache /var/www/html/index.html
$ ls -l /var/www/html/index.html

ここまでの設定をしたら先ほどのIPアドレス検索エンジンからアクセスして、Hello Apacheと出力されるサイトが出てきたら設定完了。

PHPのインストール

remiリポジトリからphpをインストールする。

今回は学習教材にて以下の拡張モジュールを同時にインストールしていたのでワンラインで一気にインストールする。

  • php
  • php-devel (phpの開発モジュール)
  • php-mysql (phpmysql開発モジュール)
  • php-gd (phpの画像処理モジュール)
  • php-mbstring (phpの日本語処理モジュール)
$ sudo yum --enablerepo=remi-php71 install php php-devel php-mysql php-gd php-mbstring

上記処理が終わったらphpの確認をする。

$ php -v

設定を更新するためにapacheを再起動する。

$ sudo systemctl restart httpd

Hello PHPの出力

/var/www/html/index.phpを作成。

<?
echo 'Hello PHP';

apacheに権限を付与。

$ sudo chown apache:apache /var/www/html/index.html

検索エンジンからIPアドレス/index.phpに飛んでHello PHPと出力されていたら完了。

MySQLのインストール

CentOSに入っているデフォルトのDBを削除

$ sudo yum remove mariadb-libs
$ sudo rm -rf /var/lib/mysql

MySQL5.7系をリポジトリを設定する。

$ sudo yum localinstall URL

Red Hat Enterprise Linux 7系のURLを貼る。 MySQL :: Download MySQL Yum Repository

MySQLをインストールし、確認する。

$ sudo yum install mysql-community-server
$ mysqld --version

MySQLの設定

MySQLを起動して、初期パスワードを確認。

$ sudo systemctl start mysqld
$ suco cat /var/log/mysqld.log | gerp 'temporary password'

MySQLの初期パスワードのありか - Qiita

mysqlが動くか確認

$ mysql -u root -p

mysqlの初期文字列をUTF-8に変更

$ sudo vi /etc/my.cnf

/etc/my.cnfの最下部に以下を追記

character-set-server = utf8

MySQLを再起動して設定を反映させる

$ sudo systemctl restart mysqld

サーバー構築なのでMySQLをサーバー立ち上げと共に動くように設定し、確認する。

$ sudo systemctl enable mysqld
$ systemctl list-unit-files -t service | grep mysqld

終わりに

今回はローカルでLAMP環境を構築することでwebサービスの概要をつかむことができたと共にサーバーサイドのイメージも少しつけることができた。