GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04へのPhpとNginxのインストールとセットアップ

PHPは汎用スクリプト言語です。これは主にWeb開発で人気があります。動的でインタラクティブなWebサイトの開発に使用できます。これは、HTMLに埋め込むことができた最初のサーバー側言語のひとつであり、データ用に外部ファイルを呼び出すことなく、Webページに機能を簡単に追加できるようにしました。 PHPは、習得しやすいプログラミング言語の1つです。

これは、MySQL、PostgreSQL、Oracle、Sybase、Informix、MicrosoftSQLServerなどの多くの一般的なデータベースと統合されています。 WordPress、Magento、Laravelなどの多くの人気のあるCMSとフレームワークはPHPで書かれています。

この記事を書いている時点では、デフォルトのUbuntu20.04リポジトリにはPHP7.4バージョンが含まれています。

前提条件

このガイドに従うには、次のものがあることを確認してください。

  1. インターネットに接続されているUbuntu20.04サーバーを更新しました
  2. サーバーまたはsudoアクセス権を持つユーザーへのrootアクセス
  3. Linuxターミナルを使用してコマンドを実行することに慣れている必要があります。

Ubuntu20.04にPHPをインストールして構成する手順

  1. サーバーが最新であることを確認してください
  2. サーバーにphp7.4をインストールします
  3. Nginxのインストール
  4. phpファイルを提供するようにNginxを構成する

1。サーバーが最新であることを確認してください

先に進む前に、サーバーが更新されていることを確認しましょう。次のコマンドを使用して、1。サーバーリポジトリを更新します。2。サーバーパッケージを最新リリースにアップグレードします。

# Update repos
sudo apt update

# Upgrade packages
sudo apt -y upgrade

2。サーバーにphp7.4をインストールします

デフォルトのリポジトリにはphpバージョン7.4が含まれているため、次のコマンドでインストールしてみましょう。

sudo apt install php -y

コマンドphp -vを使用して、インストールされているバージョンを確認します :

~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

この設定では、Nginxでphpファイルを提供する予定です。 Nginxには、PHPファイルを処理するための組み込みのサポートがありません。 PHPファイルの処理にはPHP-FPM(「fastCGIプロセスマネージャー」)を使用します。

Apacheがインストールされて実行されている場合、Nginxは機能しません。 Nginxを使用するので、システムにインストールされている場合は、このコマンドを使用してapacheを削除しましょう:

$ sudo apt remove apache2 -y

php-fpmをインストールしましょう このコマンドで:

sudo apt install php-fpm -y

インストールが完了すると、FPMサービスが自動的に開始されます。サービスはphp7.4-fpmとしてsystemdに追加されます 。サービスのステータスを確認するには、次を実行します。

$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 16:18:41 UTC; 3min 18s ago
       Docs: man:php-fpm7.4(8)
   Main PID: 56092 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4710)
     Memory: 7.1M
     CGroup: /system.slice/php7.4-fpm.service
             ├─56092 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─56113 php-fpm: pool www
             └─56114 php-fpm: pool www

Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

上記のような出力が表示されるはずです。

3。 Nginxのインストール

PHPとphp-fpmがシステムにインストールされたので、nginxをインストールする必要があります。 Nginxを使用すると、ドメインからのトラフィックを処理するために使用できる仮想ホストを設定できます。

次のコマンドを使用してnginxをインストールします:

sudo apt install nginx -y

インストールが完了すると、デフォルトでNginxが起動します。ステータスを確認して、期待どおりに動作していることを確認してください。次のような出力が表示されます:

$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
       Docs: man:nginx(8)
   Main PID: 56990 (nginx)
      Tasks: 3 (limit: 4710)
     Memory: 3.7M
     CGroup: /system.slice/nginx.service
             ├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─56991 nginx: worker process
             └─56992 nginx: worker process

Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>

Nginxが実際に実行されて到達可能であることを確認するには、次のコマンドを使用します:

curl http://server_ip/

server_ipの場所 サーバーのIPです。何らかの理由でサーバーのパブリックIPがわからない場合は、これを使用して確認してください。

curl -4 icanhazip.com

Nginxのデフォルトページが表示されます。

4。 phpファイルを提供するようにNginxを構成する

サーバーでNginxをセットアップして実行したので、phpファイルを提供するようにしましょう。この例では、php情報ページを提供するようにNginxを構成します。

これを実現するには、特定のドメインのトラフィックを処理するNginxに仮想ホストを設定する必要があります(example.citizix.comを使用します) )。これを機能させるには、DNSホスト内のそのドメインのDNSレコードを更新して、Aを設定する必要があります。 レコードはそのドメインまたはサブドメインを指します。その方法の詳細については、DNSプロバイダーのドキュメントを参照してください。

digコマンドを使用して、ドメインがサーバーに正しく解決できることを確認します。

❯ dig -t A example.citizix.com

; <<>> DiG 9.10.6 <<>> -t A example.citizix.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10212
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.citizix.com.       IN  A

;; ANSWER SECTION:
example.citizix.com.    300 IN  A   172.67.197.11

;; Query time: 828 msec
;; SERVER: 192.168.157.227#53(192.168.157.227)
;; WHEN: Tue Sep 28 20:42:05 EAT 2021
;; MSG SIZE  rcvd: 80

次に、次の手順に従って、簡単なスクリプトを機能させる必要があります。

  1. 静的コンテンツを保存するディレクトリを作成します(/var/www/example.citizix.comを使用します) )
    sudo mkdir -p /var/www/example.citizix.com
  2. 作成したディレクトリにNginxユーザーがアクセスできることを確認します
    sudo chown -R www-data:www-data /var/www/example.citizix.com
    sudo chmod -R 755 /var/www/example.citizix.com
  3. インデックスファイルを追加する/var/www/example.citizix.com/index.php ディレクトリ(/var/www/example.citizix.com)にphp情報を表示するコンテンツを含む )
    ファイルを編集します:

    sudo vim /var/www/example.citizix.com/index.php

    このコンテンツを追加します:

    <?php
    phpinfo()
    ?>

    ファイルを保存して閉じます。

  4. nginxのデフォルトディレクトリ/etc/nginx/conf.dにnginx構成を作成します 。 1.ファイル/etc/nginx/conf.d/example.citizix.com.confを作成します 必要なコンテンツを含む。
    sudo vim /etc/nginx/conf.d/example.citizix.com.conf

このコンテンツを追加します:

server {
    listen 80;
    server_name example.citizix.com;

    root /var/www/example.citizix.com;
    index index.php;

    location ~ \.php$ {
        fastcgi_intercept_errors on;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

次のコマンドでnginx構成が正しいことを確認します:

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、次のコマンドを使用してnginxとphp-fpmを再起動する必要があります。

sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm

サービスが起動したことを確認します:

sudo systemctl status nginx
sudo systemctl status php7.4-fpm

サービスが正常に再起動したことを確認する必要があります!

すべてがうまくいけば、下のスクリーンショットに示すようなphp情報ページが表示されます。

それで全部です!これまで、Ubuntu20.04にphp7.4をインストールし、Nginxで単純なファイルを提供することができました。


Ubuntu
  1. Ubuntu16.04Linuxでの基本的なPHP7とNginxの構成

  2. CentosとUbuntuでのNTPの設定

  3. Ubuntu20.04にPHPOPcacheをインストールして構成する

  1. Ubuntu 14.10へのLLMP(Lighttpd、PHP、MySQL)のインストール

  2. Ubuntu 20.04にPHPとNginx(LEMP)をインストールしてセットアップする方法

  3. Ubuntu 16.04にNginxをインストールするときにエラーが発生しますか?

  1. Ubuntu18.04および19.10をインストールした後に行うこと

  2. Ubuntu18.04または20.04にPHP7.4および8.0をインストールする方法

  3. Ubuntu14.04および16.04へのNginxのインストール