UbuntuにLaravel をデプロイする方法
現在、PHP 開発者が API や Web アプリを構築するには、Laravel が最適な選択肢です。アプリの起動準備ができたら、次のステップは適切なオペレーティング システム、設定、セキュリティ オプションを選択することです。Laravel アプリをライブ サーバーにデプロイするのは、特に初心者にとっては少々難しい場合があります。このガイドでは、Ubuntu をサーバー オペレーティング システムとして使用し、各ステップを説明します。このチュートリアルの最後には、ライブ サーバーで Laravel アプリが実行されるようになります。サーバーのセットアップから本番環境向けの Laravel の構成まで、すべてをカバーします。
Ubuntu に Laravel をデプロイする方法
始める前に、以下のものを用意してください。
- Ubuntu を実行しているサーバー (24.04 または 22.04 を推奨)。
- sudo 権限アカウントを使用してサーバーに SSH アクセスします。
- コマンドラインの使用に関する基本的な知識。
- デプロイ準備が整った Laravel プロジェクト。
ステップ1: サーバーを更新する
最初のステップは、現在のシステム パッケージが最新であることを確認することです。パッケージを更新するには、SSH を使用してサーバーに接続し、次のコマンドを実行します。
sudo apt update
sudo apt upgrade -y
ステップ2: 必要なソフトウェアをインストールする
Laravel は PHP プログラミング言語で書かれています。Web 上で提供するには、Apache などの Web サーバーが必要です。データを永続的に保存するには、MySQL などのデータベースが必要です。全体として、Laravel アプリケーションを実行するために必要なソフトウェアをインストールする必要があります。これには、Apache、MySQL、PHP、およびその他のツールが含まれます。
- Apache をインストールするには、次のコマンドを実行します。
sudo apt install apache2 -y
- MySQL データベースをインストールするには、次のコマンドを実行します。
sudo apt install mysql-server -y
- PHP と追加の PHP モジュールをインストールするには、次のコマンドを実行します。
sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-mcrypt php-curl php-zip -y
ステップ3: MySQLの設定
MySQL サーバーを初めてインストールした後、次のコマンドを実行して MySQL セットアップ ウィザードを起動する必要があります。
sudo mysql_secure_installation
画面の指示に従って、MySQL インストールを保護します。次に、MySQL にログインして、Laravel アプリケーション用のデータベースを作成します。
sudo mysql -u root -p
MySQL シェル内で、次のコマンドを実行してデータベースとユーザーを作成します。
CREATE DATABASE laravel_app;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
ステップ4: Apacheサーバーをセットアップする
Laravel アプリケーションを提供するには、Apache を設定する必要があります。まず、mod_rewrite モジュールを有効にします。
sudo a2enmod rewrite
次に、Laravel サイト用の新しい Apache 設定ファイルを作成します。
sudo nano /etc/apache2/sites-available/laravel.conf
ファイルに次の内容を追加します。
ServerAdmin webmaster@localhost
DocumentRoot /var/www/laravel/public
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ファイルを保存して閉じます。次に、新しいサイトを有効にして Apache を再起動します。
sudo a2ensite laravel.conf
sudo systemctl restart apache2
ステップ5: Laravelアプリケーションをデプロイする
それでは、Laravel アプリケーションをデプロイしましょう。まず、Laravel プロジェクトをサーバーの /var/www/laravel ディレクトリにアップロードします。SCP、SFTP、またはその他のお好みの方法を使用できます。
ファイルがサーバー上に置かれたら、プロジェクト ディレクトリに移動して必要な依存関係をインストールします。
cd /var/www/laravel
composer install
次に、ストレージ ディレクトリとキャッシュ ディレクトリに適切な権限を設定します。
sudo chown -R www-data:www-data storage
sudo chown -R www-data:www-data bootstrap/cache
ステップ6: 環境変数を設定する
Laravel は、構成設定を保存するために .env ファイルを使用します。.env ファイル内のデータベース設定を、先ほど作成したデータベースとユーザーと一致するように更新してください。
DB_DATABASE=laravel_app
DB_USERNAME=laravel_user
DB_PASSWORD=your_password
ステップ7: アプリケーションキーを生成する
最後に、Laravel アプリケーションのアプリケーション キーを生成します。
php artisan key:generate
ステップ8: SSL証明書を設定する
Laravel アプリケーションを保護するには、Let’s Encrypt を使用して無料の SSL 証明書を設定できます。次の手順に従います。
Certbot をインストールします。
sudo apt install certbot python3-certbot-apache -y
SSL 証明書を取得してインストールします。
sudo certbot --apache
画面の指示に従ってください。Certbot はサイトの SSL を自動的に構成し、必要に応じて証明書を更新します。
証明書の更新プロセスをテストします。
sudo certbot renew --dry-run
結論
これで完了です。これで、Laravel アプリケーションが Ubuntu サーバー上で稼働し、Let’s Encrypt を使用して SSL が設定されているはずです。Web ブラウザーでサーバーの IP アドレスにアクセスして、アプリケーションがライブで安全に動作していることを確認してください。このガイドでは、サーバーの更新、必要なソフトウェアのインストール、Laravel アプリのデプロイ、SSL の設定など、すべてを説明しました。これで、Laravel アプリを世界に公開する準備が整いました。
Hope this help!