Ubuntu20.04にNginxを使用してLaravelPHPフレームワークをインストールする方法


Laravelは、表現力豊かでエレガントな構文で知られる、世界で最も人気のある無料のオープンソースPHPフレームワークです。 Laravelはアクセス可能で強力であり、大規模で堅牢な最新のアプリケーションに必要な最高のWeb開発ツールのいくつかを提供します。

この記事では、NginxWebサーバーで実行されているUbuntu20.04サーバーにLaravelPHPフレームワークをインストールする方法を学習します。

ステップ1:必要なPHPモジュールをインストールする

上記のリンクのガイドで説明されているようにUbuntu20.04サーバーにLEMPスタックをセットアップした後、次のようにLaravelに必要な追加のPHP拡張機能をインストールする必要があります。

$ sudo apt update
$ sudo apt php-common php-json php-mbstring php-zip php-xml php-tokenizer

ステップ2:Laravelのデータベースを作成する

次に、Laravelアプリケーション用のMySQLデータベースを作成する必要があります。したがって、mysqlシェルにログインし、次のようにデータベースを作成します。

$ sudo mysql
MariaDB [(none)]> CREATE DATABASE laraveldb;
MariaDB [(none)]> GRANT ALL ON laraveldb.* to 'webmaster'@'localhost' IDENTIFIED BY 'tecmint';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

ステップ3:Ubuntu20.04にComposerをインストールする

Laravelは、コンポーザー(PHPの依存関係マネージャー)を利用して依存関係を管理します。したがって、Laravelを使用する前に、図のようにComposerがシステムにインストールされていることを確認してください。

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
$ sudo chmod +x /usr/local/bin/composer

ステップ4:Ubuntu20.04にLaravelをインストールする

コンポーザーをインストールした後、それを使用してLaravelファイルをインストールします。 Webファイルが保存されている/var/www/html ディレクトリに移動し、図のようにコンポーザーを使用してLaravelをインストールします。 example.com を、Laravelファイルが保存されるディレクトリの名前に置き換えることを忘れないでください。

$ cd /var/www/html
$ composer create-project --prefer-dist laravel/laravel example.com

ステップ5:Ubuntu20.04でLaravelを構成する

新しいLaravelインストールの内容を一覧表示するには、次のlsコマンドを実行します。 .env ファイルが自動的に作成されていることに気付くでしょう。これまでは、手動で作成する必要がありました。

$ ls -la /var/www/html/example.com/

次に、Laravelディレクトリに適切な権限を次のように設定します。

$ sudo chown -R :www-data /var/www/html/example.com/storage/
$ sudo chown -R :www-data /var/www/html/example.com/bootstrap/cache/
$ sudo chmod -R 0777 /var/www/html/example.com/storage/
$ sudo chmod -R 0775 /var/www/html/example.com/bootstrap/cache/

次に、Laravelはアプリケーションキーを使用して、ユーザーセッションやその他の暗号化されたデータを保護します。デフォルトの .env にはデフォルトのアプリケーションキーが含まれていますが、セキュリティ上の理由から、laravelデプロイメント用に新しいキーを生成する必要があります。

$ sudo php artisan key:generate

生成されたキーは、 APP_KEY の値として .env ファイルに追加されます。 grepコマンドを使用して、追加されたキーを表示できます。

$ grep -i APP_Key /var/www/html/example.com/.env

次のスクリーンショットに示すように、 .env でLaravelデータベース接続の詳細を構成する必要もあります。

$ sudo nano /var/www/html/example.com/.env

ステップ6:Laravelアプリケーションを提供するためのNGINXの構成

NGINXが新しいアプリケーションを提供するには、/etc/nginx/sites-available/ディレクトリの下のNGINX構成内にそのサーバーブロックを作成する必要があります。

$ sudo nano /etc/nginx/sites-available/example.com.conf

以下の構成で、ルートディレクティブをLaravelアプリケーションのパブリックディレクトリに更新し、 www.example.com を図のようにWebサイトのドメイン名に置き換えてください。

また、 fastcgi_pass ディレクティブが、PHP-FPMがリクエストをリッスンしているメディアを指すように設定します(例: fastcgi_pass unix:/run/php/php7.4-fpm.sock )::

server{
        server_name www.example.com;
        root        /var/www/html/example.com/public;
        index       index.php;

        charset utf-8;
        gzip on;
        gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

ファイルを保存し、 /etc/nginx/sites-available/example.com.conf から/etc/nginx/sites-enabled /へのリンクを作成して、Laravelサイトの構成を有効にします。 ディレクトリ。さらに、デフォルトのサーバーブロック構成を削除します。

$ sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
$ sudo rm /etc/nginx/sites-enabled/default

次に、サービスを再起動する前に次のコマンドを実行して、NGINX構成構文が正しいかどうかを確認します。

$ sudo nginx -t
$ sudo systemctl restart nginx

ステップ7:WebブラウザーからLaravelアプリケーションにアクセスする

この段階で、Laravelデプロイメントが正常に機能しているかどうか、およびブラウザーからアクセスできるかどうかをテストする必要があります。ダミードメイン example.com を使用するには、ローカルコンピューターの/etc/hosts ファイルを使用してローカルDNSを作成しましょう。

$ echo“ 192.168.56.11 example.com” | sudo tee -a/etc/hosts

次に、ローカルコンピューターでWebブラウザーを開き、次のアドレスを使用してナビゲートします。

http://www.example.com/

Laravelがインストールされたので、Webアプリケーションまたはサイトの構築を開始できます。詳細については、Laravelのドキュメントを参照してください。