VirtualBoxのLinux(CentOS)でApache・PHP・MySQLを稼働させる方法

move Webエンジニア

前回の記事「【webエンジニアを目指す】VirtualBoxでLinuxでの環境構築の学習方法」で無事にLinuxのセットアップが終わったら、実際にPHPを稼働させるところまで進めてみましょう。

PHPでwebアプリを稼働させる

Linux(CentOS)を無事インストール出来たら、次はこのマシンをwebサーバーとしてPHPを稼働させアクセスすると表示されるようにしていきます。

とりあえず必要なのは以下です。

  • Apache(webサーバー)
  • PHP
  • MySQL

ただのwebサイトを表示するだけならApacheだけ入れて稼働させればOKです。今回はPHPを利用したwebアプリを作成予定なのでPHP+MySQLも入れていきます。

Linuxでは基本的にコマンドラインで操作を行っていきます。windows等のようにマウスで何かを操作してインストールではなく、インストールコマンドを打ってインストールをしていきます。

まだ詳しくはわからなくていいので、ひとまずコマンドを打ってそれぞれインストールしていきます。慣れたら自然とわかってくるようになります。

デフォルトでネットワークに繋がっていない

もろもろインストールしていくにはサーバーがネットワークにつながっていなければいけませんが、VirtualBoxにLinuxをインストールしたデフォルト状態ではネットワークが繋がっていません。

コマンドで「yum list httpd」と打って1行だけ「https.x86_64」といった文字が表示されればOKです。

たくさんのエラーメッセージが出た場合は繋がっていません。

ネットワーク設定を行う

実際にはネットワーク設定というよりもネームサーバーの解決が出来てないのでその設定を行っていきます。

設定にはviコマンドでファイルの中身を書き換えたりする必要があります。viはファイルの中身の書き込みや修正などを行うものでよく使うのでこの機会に覚えてしまいましょう。

コンソールにコマンドをコピペして実行したいのにテキストのコピペができない場合は以下の記事を参考にしてください。

copy

VirtualBoxで作成した仮想マシンにテキストがコピペできない時の解決策

2019年10月14日

resolv.confの修正

「vi /etc/resolv.conf」と打つとファイルresolv.confを編集する画面となります。このファイルは最初は空白になっています。

そこでキーボードの「i」を押すと入力モードに移行し文字を入力することができるようになります。そこで「nameserver 8.8.8.8」と入力します。

次にキーボード左上の「esc」キーを押して入力モードから離脱します。つぎに「:wq」と入力してエンターで上書き保存できます。

もう一度「vi /etc/resolv.conf」と打って中身を確認してみてください。何もせず終了するには「:q!」と打ってエンターです。

enp0s3に関する設定

意味は分からないかもしれませんが、ひとまず「nmcli c modify enp0s3 ipv4.dns 8.8.8.8」と打ってエンター、なにも表示されず次の行にいけば成功です。

次にまたあるファイルを編集します「vi /etc/sysconfig/network-scripts/ifcfg-enp0s3」とすると以下のような画面が表示されます。これがファイルifcfg-enp0s3の中身です。

vbox

「ONBOOT=no」となっている部分を「ONBOOT=yes」と書き換えます。「i」で入力モードに入り書き換えて「esc」で離脱後に「:wq」で上書き保存して終了です。

最後に次のコマンドを打ちます「systemctl restart network」もしくはサーバーの再起動コマンドでもいいです「shutdown -r now」これでサーバーが再起動されます。

もう一度、コマンドで「yum list httpd」と打ってエラーメッセージが表示されなければOKです。

yumリポジトリ

Linuxではyumというリポジトリを利用してyumコマンドで簡単にApacheやPHPがインストールできます。

ただしデフォルトのリポジトリでは不足しているものや最新ではないものも多いので、もし最新のものも使いたいといった場合はepelとremiというパッケージも利用できるようにします。

「yum install epel-release.noarch」と打ちます、途中y/nを聞かれる部分はすべてyを打ちます。

vbox

次は「rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm」と打ちます。

続いて「vi /etc/yum.repos.d/remi.repo」でenabled=0をenabled=1に書き換えて保存します。

apacheのインストール

最初にwebサーバーであるapacheのインストールを行います。コマンドは「yum install httpd」、途中yを押しつつcomlete!が表示されれば完了です。

次にapacheを起動させます。コマンドは「systemctl start httpd」あとはサーバーが起動した時にApacheも自動起動するようにしておきます「systemctl enable httpd」

さて、この時点で作成したLinuxサーバーはwebサーバーとして機能しており、ブラウザからアクセスしてwebサイトを閲覧することが可能です。

firewallとポートフォワーディング

サーバーにアクセスするためにはまずサーバーの側のfirewallでwebサイトに利用するポートを開放する必要があります。

コマンドは

firewall-cmd --add-service=http --permanent

ここでいったんサーバーの電源を切ります

shutdown -h now

次にVirtualBox管理画面からサーバーを右クリック→設定でネットワークのところから「ポートフォワーディング」を押します。

vbox

右上の+ボタンを押して、以下の様に内容を変更します。

vbox

あとはサーバーを起動します。

「http://localhost:50080/」にアクセスして以下のようなページが表示されれば成功です。

vbox

PHPとMySQLのインストール

ただのwebサイトを表示するだけならこれだけでもいけるのですが、今回の目的はwebアプリの作成なのでPHPとMySQLも入れていきます。

まずはMySQLから

yum install http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm」
yum install mysql-community-server

起動と自動起動の設定

systemctl start mysqld
systemctl enable mysqld

続いてPHP

yum –enablerepo=epel install libmcrypt
yum –enablerepo=remi-php70 install -y php php-cli php-devel php-common php-mbstring php-mysql php-fpm php-gd php-mcrypt php-opcache php-pdo php-xml

これでOKです、一応apacheを再起動しておきます「systemctl restart httpd」

PHPの稼働確認

後から詳しく知っていけばいいことなので、今はひとまずアクセスされた際に最初に見られる場所は「/var/www/html」です。

なのでそこにテスト用のphpファイルを作成します「vi /var/www/html/test.php」

中身は適当でもOKです。

<?php
for ($i = 1; $i <= 10; $i++) {
    echo $i . '<br />';
}
?>

これで「http://localhost:50080/test.php」にアクセスして1から10までが表示されれば稼働確認はOKです。

まとめ

VirtualBoxを利用したLinuxの環境の構築でした。正直難易度が上がるので、最初はXAMPPを利用する方法の方がいいと思います。

大分長くなってしまいましたし、まだ補足しなければいけない部分も多いと思うので、今後も追加で解説記事を書いていきます。