LaravelとNginxの設定方法:初心者でも簡単に環境構築する方法

Laravel入門

LaravelとNginxの環境構築は初めての方にとっても簡単に始められる方法を順を追って説明します。Web開発の第一歩として、この二つをしっかりと連携させることは非常に重要です。この記事では、Linux環境を使用してLaravelとNginxのセットアップ方法を具体的に見ていきます。

必要な前提知識と準備

LaravelとNginxのセットアップに入る前に、いくつかの準備が必要です。

  1. サーバーの準備: 基本的にはLinuxベースのサーバーが必要で、最も一般的なのはUbuntuです。ローカル環境で試す場合は、VirtualBoxやDockerを使用して仮想マシンを用意します。

  2. SSHアクセス: リモートのサーバーの場合、SSHが設定されていることを確認します。

  3. 更新の確認: 最新のパッケージがインストールされていることを確認するため、次のコマンドを実行します。

    sudo apt update
    sudo apt upgrade
    

PHPのインストール

LaravelはPHPで動作するため、まずはPHPとその必要な拡張機能をインストールします。

sudo apt install php php-mbstring php-xml php-bcmath php-json php-zip unzip -y

以上のコマンドは、Laravelに必要なPHP拡張機能の一つ一つをインストールします。php -vコマンドでPHPがインストールされたことを確認できます。

Composerのインストール

LaravelはComposerというPHPの依存管理ツールを用いてインストールします。Composerのインストールは以下のように行います。

sudo apt install curl
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version

Composerが正しくインストールされたかを確認するために、最後のコマンドがバージョン情報を表示すれば成功です。

Laravelのインストール

全ての準備が整ったら、Laravelをインストールします。ライブラリやフレームワークは常に最新のものを使用することを心がけましょう。

composer create-project --prefer-dist laravel/laravel laravel_project
cd laravel_project

これでLaravelのプロジェクトが生成されました。laravel_projectディレクトリに移動し、以下のコマンドでサーバーが正しく動作しているか確認します。

php artisan serve

ローカルホストの特定のポート(通常8000)でサーバーが起動するはずです。

MySQLのインストールと設定

次に、Laravelと連動してデータを管理するためにMySQLをインストールします。

sudo apt install mysql-server
sudo mysql_secure_installation

mysql_secure_installationのプロンプトに従って、セキュリティ設定を行います。次に、MySQLに新しいデータベースとユーザーを作成します。

sudo mysql -u root -p
CREATE DATABASE laravel_database;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel_database.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Laravelのプロジェクト内の.envファイルを編集し、データベース接続情報を設定します。

DB_DATABASE=laravel_database
DB_USERNAME=laravel_user
DB_PASSWORD=password

Nginxのインストールと設定

次に、Nginxをインストールし、Laravelのアプリケーションが動くように設定します。

sudo apt install nginx

インストールが終了したら、Nginxの設定ファイルを編集し、Laravelプロジェクトを指すように設定します。下記の内容で新しい設定ファイル /etc/nginx/sites-available/laravel_projectを作成します。

server {
    listen 80;
    server_name example.com;

    root /path/to/laravel_project/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定を有効にするために、シンボリックリンクをsites-enabledディレクトリに作成し、Nginxを再起動します。

sudo ln -s /etc/nginx/sites-available/laravel_project /etc/nginx/sites-enabled/
sudo systemctl restart nginx

ファイアウォールの設定

ファイアウォールを有効にしている場合は、HTTPとHTTPSのトラフィックを許可する必要があります。UFW(Uncomplicated Firewall)を使用している場合、以下のコマンドを実行します。

sudo ufw allow 'Nginx Full'

確認

すべてが正しく設定されているかどうかを確認するため、WebブラウザでサーバーのIPアドレスまたはドメインを開くとLaravelのウェルカムページが表示されます。

これで、LaravelとNginxの設定が完了しました。以降はLaravelの学習に集中し、プロジェクトの開発に取り組んでください。この設定が基盤となり、今後より高度なプロジェクトを進める土台となります。

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする

コメント