プログラミング

Laravel Nginx 設定ガイド

LaravelアプリケーションをUbuntuのLEMPスタック上でNginxサーバーとともに設定し、動作させる方法について、詳細かつ包括的に説明します。LEMPスタックはLinux(Ubuntu)、Nginx、MySQL(またはMariaDB)、PHPを組み合わせた環境です。この記事では、LaravelのインストールとNginxの設定を含む、開発から本番環境での運用までの手順を順を追って解説します。

前提条件

  • Ubuntu 20.04以上のサーバー
  • サーバーにSSHでアクセス可能
  • サーバーにsudo権限があるユーザーが設定済み
  • Nginx、PHP、MySQL/MariaDBがインストールされている
  • Composerがインストールされている

ステップ 1: サーバー環境の準備

まず、サーバー上で必要なソフトウェアをインストールします。

1.1 Nginxのインストール

まず、Nginxをインストールします。

bash
sudo apt update sudo apt install nginx

インストールが完了したら、Nginxが自動的に起動しているか確認します。

bash
sudo systemctl status nginx

Nginxが正常に動作していれば、「active (running)」と表示されます。

1.2 PHPと必要なモジュールのインストール

LaravelはPHPで動作するため、PHPと必要なモジュールをインストールします。

bash
sudo apt install php-fpm php-mysql php-xml php-mbstring php-curl php-zip php-bcmath

インストールが完了したら、PHP-FPMが動作しているか確認します。

bash
sudo systemctl status php7.4-fpm

「active (running)」と表示されていれば、PHP-FPMは正常に動作しています。

1.3 MySQL(またはMariaDB)のインストール

MySQLまたはMariaDBをインストールして、データベースの準備をします。

bash
sudo apt install mysql-server

MySQLがインストールされたら、設定を開始します。

bash
sudo mysql_secure_installation

必要な設定を行った後、データベースにLaravel用のデータベースを作成します。

bash
sudo mysql -u root -p

MySQLのコマンドラインで以下のコマンドを実行して、データベースを作成します。

sql
CREATE DATABASE laravel_db; CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost'; FLUSH PRIVILEGES; EXIT;

ステップ 2: Laravelのインストール

2.1 Composerのインストール

LaravelのインストールにはComposerが必要です。もしComposerがインストールされていない場合は、以下のコマンドでインストールします。

bash
sudo apt install composer

インストール後、Composerが正常にインストールされているか確認します。

bash
composer --version

2.2 Laravelのインストール

Composerを使用して、Laravelをインストールします。作業ディレクトリを移動し、Laravelをインストールします。

bash
cd /var/www composer create-project --prefer-dist laravel/laravel laravel-app

これにより、laravel-appというディレクトリにLaravelがインストールされます。

2.3 ディレクトリの権限設定

インストールしたLaravelアプリケーションには、書き込み権限が必要なディレクトリがあります。適切な権限を設定するため、次のコマンドを実行します。

bash
sudo chown -R www-data:www-data /var/www/laravel-app sudo chmod -R 775 /var/www/laravel-app/storage /var/www/laravel-app/bootstrap/cache

ステップ 3: Nginxの設定

3.1 Nginxの設定ファイルを作成

LaravelをNginxで動作させるために、Nginxの設定ファイルを作成します。

bash
sudo nano /etc/nginx/sites-available/laravel-app

設定ファイルに以下の内容を記述します。

nginx
server { listen 80; server_name example.com; root /var/www/laravel-app/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; include fastcgi_params; } location ~ /\.ht { deny all; } error_log /var/log/nginx/laravel-app_error.log; access_log /var/log/nginx/laravel-app_access.log; }

この設定では、example.comというドメインでアクセスされるように設定されています。適切なドメイン名に変更してください。

3.2 サイトの有効化

設定ファイルをsites-enabledディレクトリにリンクします。

bash
sudo ln -s /etc/nginx/sites-available/laravel-app /etc/nginx/sites-enabled/

3.3 Nginxの設定をテスト

Nginxの設定に問題がないかをテストします。

bash
sudo nginx -t

エラーがなければ、Nginxを再起動して設定を反映させます。

bash
sudo systemctl restart nginx

ステップ 4: Laravelの環境設定

4.1 .envファイルの設定

Laravelアプリケーションの環境設定ファイル(.env)を編集して、データベースの設定を行います。

bash
cd /var/www/laravel-app nano .env

以下のように、データベース接続の設定を変更します。

ini
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_db DB_USERNAME=laravel_user DB_PASSWORD=your_password

4.2 アプリケーションキーの生成

Laravelアプリケーションにはセキュリティ用のアプリケーションキーが必要です。以下のコマンドでキーを生成します。

bash
php artisan key:generate

これにより、.envファイルにアプリケーションキーが自動的に追加されます。

ステップ 5: ファイアウォールの設定

もしUFW(Uncomplicated Firewall)を使用している場合は、HTTPとHTTPSのポートを開放します。

bash
sudo ufw allow 'Nginx Full'

ステップ 6: 動作確認

ブラウザを開き、設定したドメイン(またはサーバーのIPアドレス)にアクセスします。Laravelのウェルカムページが表示されれば、設定は正常に完了しています。

arduino
http://your_server_ip

結論

以上の手順で、UbuntuのLEMPスタック上にLaravelをインストールし、Nginxで動作させることができました。この設定をもとに、さらにセキュリティやパフォーマンスの最適化を行い、本番環境での運用に向けた準備が整いました。

Back to top button