ウェブサイト検索

CentOS 8 上の Nginx を使用して Laravel PHP フレームワークをインストールする方法


Laravel は、オープンソースのよく知られた最新の PHP ベースの Web フレームワークで、表現力豊かで洗練された理解しやすい構文を備えており、大規模で堅牢な Web アプリケーションを簡単に構築できます。

その主な機能には、シンプルで高速なルーティング エンジン、強力な依存関係注入コンテナ、セッションおよびキャッシュ ストレージ用の複数のバックエンド、表現力豊かで直感的なデータベース ORM (オブジェクト リレーショナル マッピング)、堅牢なバックグラウンド ジョブ処理、およびリアルタイム イベント ブロードキャストが含まれます。

また、依存関係を管理するための PHP パッケージ マネージャーである Composer や、Web アプリケーションを構築および管理するためのコマンドライン インターフェイスであるArtisan などのツールも使用します。

この記事では、Laravel PHP Web フレームワークの最新バージョンを CentOS 8 Linux ディストリビューションにインストールする方法を説明します。

サーバー要件

Laravel フレームワークには次の要件があります。

  • PHP >= 7.2.5 (これらの PHP 拡張機能 OpenSSL、PDO、Mbstring、Tokenizer、XML、Ctype、JSON を含む)。
  • Composer – 依存関係のインストールと管理用。

ステップ 1: CentOS 8 に LEMP スタックをインストールする

1. まず、システム ソフトウェア パッケージを更新し、LEMP スタック (LinuxNginx) をインストールします。 MariaDB/MySQL およびPHP)、次の dnf コマンドを使用します。

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. LEMP のインストールが完了したら、PHP-PFMNginxを起動する必要があります。 >MariaDBサービスは、次の systemctl コマンドを使用します。

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. 次に、示されているようにセキュリティ スクリプトを使用して、MariaDB データベース エンジンを保護し、強化する必要があります。

mysql_secure_installation

サーバーのインストールを安全に行うには、次の質問に答えてください。

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4. firewalld サービスを実行している場合は、ファイアウォールで HTTP サービスと HTTPS サービスを開く必要があります。 Nginx Web サーバーへのクライアント リクエストを有効にします。

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

5. 最後に、システムの IP アドレスでブラウザを使用して LEMP スタックが実行されていることを確認できます。

http://server-IP

ステップ 2: PHP-FPM と Nginx の構成と保護

6. Nginx Web サーバーからのリクエストを処理するために、PHP-FPM は Unix ソケットまたは TCP ソケットでリッスンできます。これは、 /etc/php-fpm.d/www.conf 設定ファイルのlisten パラメータ。

vi /etc/php-fpm.d/www.conf

デフォルトでは、次のスクリーンショットに示すように、Unix ソケットでリッスンするように構成されています。ここでの値は、後で Nginx サーバーのブロック ファイルに指定します。

7. Unix ソケットを使用している場合は、スクリーンショットに示されているように、正しい所有権と権限を設定する必要もあります。次のパラメータのコメントを解除し、Nginx が実行されているユーザーとグループに一致するように値をユーザーとグループに設定します。

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. 次に、/etc/php.ini 構成ファイルでシステム全体のタイム ゾーンも設定します。

vi /etc/php.ini

“;date.timezone ” 行を探してコメントを外し、スクリーンショットに示されているように値を設定します (地域/大陸および国に適用される値を使用してください)。

 
date.timezone = Africa/Kampala

9. 他の拡張機能を使用して PHP コードを実行する悪意のあるユーザーからのリクエストを Nginx が PHP-FPM に渡すリスクを軽減するには、次のパラメータのコメントを解除し、その値を < に設定します。code>0

cgi.fix_pathinfo=1

10. 前の点に関連して、/etc/php-fpm.d/www.conf ファイル内の次のパラメータのコメントも解除します。詳しい説明についてはコメントを読んでください。

security.limit_extensions = .php .php3 .php4 .php5 .php7

ステップ 3: Composer と Laravel PHP フレームワークのインストール

11. 次に、次のコマンドを実行して Composer パッケージをインストールします。最初のコマンドはインストーラーをダウンロードし、PHP を使用してインストーラーを実行します。

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

12. Composer がインストールされたので、それを使用して次のように Laravel ファイルと依存関係をインストールします。 mysite.com を Laravel ファイルが保存されるディレクトリの名前に置き換えます。絶対パス (または Nginx 構成ファイルのルート パス) は /var/www/html/mysite になります。 .comです。

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

プロセス中にすべてがうまくいけば、アプリケーションは正常にインストールされ、次のスクリーンショットに示すようにキーが生成されるはずです。

13. インストール プロセス中に、.env 環境ファイルが作成され、必要なアプリケーションも生成されるため、以前のように手動で作成する必要はありません。これを確認するには、ls コマンドを使用して、laravel ルートディレクトリの長いリストを実行します。

ls -la mysite.com/

14. 次に、ストレージブートストラップ/ キャッシュディレクトリに正しい所有権と権限を設定して、Nginx Web から書き込みできるようにする必要があります。サーバ。

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. サーバーで SELinux が有効になっている場合は、ストレージブートストラップ/ キャッシュのセキュリティ コンテキストも更新する必要があります。 > ディレクトリ。

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

ステップ 4: Laravel 用に Nginx サーバー ブロックを構成する

16. Nginx が Web サイトやアプリケーションの提供を開始するには、.conf ファイル内にそのサーバー ブロックを作成する必要があります。 >/etc/nginx/conf.d/ ディレクトリを示します。

vi /etc/nginx/conf.d/mysite.com.conf

次の設定をコピーしてファイルに貼り付けます。 root パラメータとfastcgi_passパラメータに注意してください。

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.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-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. ファイルを保存し、実行して Nginx 構成構文が正しいかどうかを確認します。

nginx -t

18. 次に、PHP-FPM サービスと Nginx サービスを再起動して、最近の変更を有効にします。

systemctl restart php-fpm
systemctl restart Nginx

ステップ5: WebブラウザからLaravel Webサイトにアクセスする

19. Laravel ウェブサイト mysite.com にアクセスします。これは完全修飾ドメイン名 (FQDN) ではなく、登録されていません (テスト目的でのみ使用されます)。 、ローカル マシン上の /etc/hosts ファイルを使用してローカル DNS を作成します。

次のコマンドを実行して、必要なファイルにサーバーの IP アドレスとドメインを追加します (設定に従って値を置き換えます)。

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. 次に、ローカル マシンで Web ブラウザを開き、次のアドレスを使用して移動します。

http://mysite.com

CentOS 8Laravel が正常にデプロイされました。これで、Laravel を使用して Web サイトまたは Web アプリケーションの開発を開始できます。詳細については、「Laravel 入門ガイド」を参照してください。