読み込み中...

【初心者向け】PHPとNginxの組み合わせを10ステップで解説

PHPとNginxの初心者向けガイドのサムネイル PHP
この記事は約7分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

PHPとNginxの組み合わせは、ウェブ開発の世界で非常に人気があります。

この記事を読むことで、PHPとNginxの基本的な使い方から、詳細な設定方法、サンプルコードの解説、注意点と対処法、さらにはカスタマイズ方法まで、初心者でも理解できるように詳しく解説します。

●PHPとNginxの基本

PHPはサーバーサイドのスクリプト言語で、ウェブページの動的な要素を制御します。

一方、Nginxは高性能なウェブサーバーで、静的なコンテンツの配信やリバースプロキシとしての役割を果たします。

これらを組み合わせることで、効率的でスケーラブルなウェブアプリケーションを構築することが可能になります。

●PHPとNginxのインストール

○PHPのインストール

まずはPHPのインストールから始めます。

下記のコマンドを使用して、PHPをインストールします。

sudo apt update
sudo apt install php-fpm

これらのコマンドは、Ubuntuのパッケージマネージャーを使用してPHPとPHP-FPMをインストールします。PHP-FPMは、PHPのFastCGIプロセスマネージャーで、Nginxと連携するために必要です。

○Nginxのインストール

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

下記のコマンドを使用して、Nginxをインストールします。

sudo apt update
sudo apt install nginx

これらのコマンドは、Ubuntuのパッケージマネージャーを使用してNginxをインストールします。

●PHPとNginxの設定

○PHPの設定

PHPを設定するためには、php.iniファイルを編集する必要があります。

このファイルは、PHPの設定を制御するためのものです。

sudo nano /etc/php/7.4/fpm/php.ini

このコマンドは、nanoエディタを使用してphp.iniファイルを開きます。

ここで、cgi.fix_pathinfo=0と設定します。

これは、NginxがPHPスクリプトを適切に処理するための重要な設定です。

○Nginxの設定

Nginxの設定は、主にNginxの設定ファイルを編集することで行います。

このファイルは、/etc/nginx/sites-available/defaultの場所にあります。

sudo nano /etc/nginx/sites-available/default

このコマンドは、nanoエデダーを使用してNginxの設定ファイルを開きます。

ここで、次のように設定します。

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

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

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

この設定では、Nginxが80ポートでリクエストを受け付け、/var/www/htmlディレクトリをドキュメントルートとして設定しています。

また、PHPファイルのリクエストはPHP-FPMに渡すように設定しています。

●サンプルコード1:基本的なPHPスクリプト

次に、基本的なPHPスクリプトを作成します。

このスクリプトは、PHPが正しく動作していることを確認するためのものです。

<?php
phpinfo();
?>

このコードは、phpinfo関数を使用してPHPの設定情報を表示します。

このスクリプトを/var/www/htmlディレクトリに保存し、ブラウザからアクセスすることで、PHPの設定情報を確認することができます。

●サンプルコード2:Nginxの設定ファイル

Nginxの設定ファイルは、ウェブサーバーの動作を制御します。

基本的なNginxの設定ファイルの例を紹介します。

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/html;
        index index.php;
    }

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

この設定では、ウェブサーバーが80ポートでリクエストを受け付け、example.comのドメインでアクセスされたリクエストを処理します。

また、/var/www/htmlディレクトリをドキュメントルートとして設定し、PHPファイルのリクエストはPHP-FPMに渡すように設定しています。

●サンプルコード3:PHPとNginxの連携

PHPとNginxを連携させるためには、Nginxの設定ファイルを編集する必要があります。

PHPとNginxを連携させるための設定例を解説します。

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

この設定では、Nginxが.php拡張子のファイルを見つけたときに、それをPHP-FPMに渡すように指示しています。

ここで、fastcgi_passディレクティブは、PHP-FPMがリッスンしているソケットを指定します。

●PHPとNginxの注意点と対処法

PHPとNginxを使用する際には、いくつかの注意点があります。

1.PHPとNginxのバージョン

PHPとNginxのバージョンが互換性を持つことを確認してください。

特定のバージョンのPHPは、特定のバージョンのNginxとしか動作しない場合があります。

2.エラーログ

PHPやNginxの問題をトラブルシューティングする際には、エラーログを確認することが重要です。

エラーログは、通常、/var/log/nginx/error.logや/var/log/php7.4-fpm.logなどの場所にあります。

3.セキュリティ

PHPスクリプトは、サーバー上で実行されるため、セキュリティに注意が必要です。

例えば、ユーザーからの入力をそのまま使用すると、SQLインジェクションなどの脆弱性を引き起こす可能性があります。

●PHPとNginxのカスタマイズ方法

PHPとNginxの設定は、それぞれの設定ファイルを通じてカスタマイズすることができます。

例えば、PHPの設定はphp.iniファイルを、Nginxの設定はnginx.confファイルを編集することで変更することができます。

また、PHPとNginxの動作をさらに細かく制御するためには、.htaccessファイルやphp-fpm.confファイルを使用することもできます。

これらのファイルを使用することで、URLのリライトルールの設定やPHP-FPMのプロセス管理など、高度な設定を行うことが可能です。

まとめ

この記事では、PHPとNginxの基本的な使い方から詳細な設定方法、サンプルコードの解説、注意点と対処法、そしてカスタマイズ方法まで、初心者でも理解できるように詳しく解説しました。

これらの知識を身につけることで、PHPとNginxを使用したウェブ開発の世界が広がります。

これからも学びを深めて、さらに高度なウェブアプリケーションの開発に挑戦してみてください。