パソコン情報

Ubuntu Server 20.04.1 LTSにLEMP(Linux,Nginx,Mysql,Php)環境を構築する

Laravel開発環境を準備しようとVirtualBoxにUbuntu Server 20.04.1 LTSをインストールしました。

今回は、Laravelをインストールする前に、LEMP【LEMPとはLinux,Nginx(「 E ngine-X」と発音),Mysql,Php】環境を構築してWEBサーバーとして動かして確認する前をやってみたいと思います。

Nginx Webサーバーのインストール

sudo apt update
sudo apt install nginx

まず、何も考えずに、Ubuntuのターミナルから上のコマンドを打ってNginxをインストールしました。

次に、Nginxをブラウザで確認する前に、ファイアウォールを調整して、サービスへのアクセスを許可する必要があるようです。

※Ubuntuにインストールしただけでアクセスの許可はされているようです。

特に何もしていませんが、ブラウザで、http://localhost/で確認すると既に、Nginxが起動していることが確認できました。







VirtualBoxが動いているWindows10からnginxにアクセス

VirtualBoxのUbuntuにインストールしたWEBサーバーnginxを外部の端末から見たいという場合があると思います。

外部という言葉が曖昧ですが、

ココがポイント

VirtualBoxを動かしているWindows10マシンのブラウザで見たい場合

はVirtualBoxのネットワーク設定にて、ポートフォワーディングルールを追加するだけで直ぐにWindows10のブラウザで確認することができました。

※特にVirtualBoxの再起動などは必要ありませんでした。






外部の端末からnginxにアクセス

今度は、VirtualBoxが動いているUbuntuのWindows10マシンじゃなく、完全に外部の端末からWEBサーバーにアクセスしたい場合です。ある意味インターネット上にも公開できる設定にも関係します。

まず、VirtualBoxのネットワーク設定から、ポートフォワーディングルールは追加しておきます。

あとは、Windows10マシンのファイヤーウォールでポートを解放すれば外部の端末から確認することができます。

私のパソコンの環境事情から、ウイルスセキュリティソフトのポート開放をしないとダメでした。

MySQLのインストール

$ sudo apt install mysql-server

MySQLのインストールは上のコマンドを打つだけですね。簡単です。

※バージョン確認
$ mysql --version

※サービス起動確認
$ sudo service mysql status

MySQLの初期設定

$ sudo mysql_secure_installation

パスワードの設定にて、あまり複雑だと作業が面倒だと思ったので、とりあえずLOW設定にして、

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0

ほかは、「y」で進めました。

MySQLにログイン

$ sudo mysql -u root -p

普通にログインできてちゃんとインストールは完了したようです。

有志のブログを見ると、この後、ユーザーを追加する前にパスワードポリシーの設定を変更をしないとエラーがでるということが記載ありましたが、その時に対応したいと思います。

PHPのインストールとNginx設定

$ php -v
コマンド'php'が見つかりません。次の方法でインストールできます。
sudo apt install php7.4-cli

という風に親切にコマンドを教えてくれたので、php7.4をインストールしました。

次に、Nginx で利用するための php-fpm と MySQL を利用するための php-mysql をインストール。

sudo apt install php-fpm php-mysql

 

 

次に、

/etc/nginx/sites-available/degault

のファイルにindex.phpでアクセスできるように設定をしてPHPが動いていることを確認してみます。

 

ちなみに、GUIからファイル編集とかやりたかったので、GUI環境を導入しているのですが、結局

ココに注意

権限が無くてファイルの編集(追加、削除、編集)などできません!

 

やっぱり、CUI環境がメインのようなので、ターミナルから、VIMを使ってファイルの編集をしました。

覚えちゃえば簡単なのでしょうけど、拾ってきたコードなどをコピペできるのでしょうか!?不明

 

下記のようにdefaultファイルを変更

※index.phpを追加
index index.php index.html index.htm index.nginx-debian.html;

※コメントアウトして追加
location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; include fastcgi_params; }

 

/var/www/html

に、index.phpを作成します。

 

<?php
phpinfo();

nginxを再起動して確認

$ sudo nginx -t
$ sudo service nginx restart

 

ブラウザで、VirtualBoxのUbuntuのブラウザで確認しても、Windows10のブラウザで確認しても、PHPの数のような画面がでました。