ウェブサイト検索

Ubuntu に Yii PHP フレームワークをインストールする方法


Yii (イー または [ji:] と発音します) は、無料でオープンソース、高速、高性能、安全、柔軟でありながら実用的な、 PHP を使用してあらゆる種類の Web アプリケーションを開発するための効率的な汎用 Web プログラミング フレームワーク。

この記事では、Ubuntu LTS (長期サポート) リリースにYii フレームワークの最新バージョンをインストールして、最新の PHP Web アプリケーションの開発を開始する方法を学びます。

プラットフォームのサポート

Yii は、次の Ubuntu LTS (長期サポート) リリースを保持しています。

  • Ubuntu 20.04 LTS (「フォーカル」)
  • Ubuntu 18.04 LTS (「バイオニック」)
  • Ubuntu 16.04 LTS (「Xenial」)

要件

  • Ubuntu サーバーの実行中のインスタンス。
  • PHP 5.4.0 以降の LEMP スタック。
  • Composer – PHP のアプリケーション レベルのパッケージ マネージャー。

このページでは

  • Ubuntu で Composer 経由で Yii Framework をインストールする
  • PHP 開発サーバーを使用して Yii を実行する
  • NGINX HTTP サーバーを使用して本番環境で Yii プロジェクトを実行する
  • Let’s Encrypt を使用して Yii アプリケーションで HTTPS を有効にする

Yii をインストールするには、Composer パッケージ マネージャーを使用する方法と、アーカイブ ファイルからインストールする方法の 2 つがあります。前者は、1 つのコマンドで新しい拡張機能をインストールしたり、Yii を更新したりできるため、推奨される方法です。

Ubuntu で Composer 経由で Yii Framework をインストールする

Composer がインストールされていない場合は、次のコマンドを使用してインストールできます。これにより、後で Yii がインストールされ、その依存関係が管理されます。

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

Composer をインストールしたら、Web アプリケーションまたは Web サイトのファイルを保存するディレクトリ /var/www/html/ に移動し、Yii パッケージを >composer (testproject を Web アプリケーションのディレクトリの名前に置き換えます)。

cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic testproject

PHP 開発サーバーを使用して Yii を実行する

この時点で、 開発にYii フレームワークを使用する準備が整いました。 PHP 開発サーバーを実行するには、testprojects ディレクトリに移動し (ディレクトリ名は前のコマンドで指定した内容によって異なります)、開発サーバーを起動します。デフォルトでは、ポート8080で実行されます。

cd /var/www/html/testproject/
php yii serve

開発サーバーを別のポート (たとえば、ポート 5000) で実行するには、示されているように --port フラグを使用します。

php yii serve --port=5000

次に、Web ブラウザを開いて、次のアドレスを使用して移動します。

http://SERVER_IP:8080
OR
http://SERVER_IP:5000

NGINX HTTP サーバーを使用して本番環境で Yii プロジェクトを実行する

運用環境で Yii アプリケーションをデプロイしてアクセスするには、NGINX、Apache/HTTPD、またはその他のサポートされている Web サーバー ソフトウェアなどの HTTP サーバーが必要です。

ポートを入力せずに Yii アプリケーションにアクセスするには、ドメインが Yii フレームワーク アプリケーション サーバーを指すように、必要な DNS A レコードを作成する必要があります。 。

このガイドでは、NGINX を使用して Yii アプリケーションをデプロイする方法を説明します。したがって、NGINX がサービスを提供できるように、アプリケーションの仮想ホストまたはサーバー ブロック構成ファイルを /etc/nginx/sites-available/ ディレクトリに作成する必要があります。

sudo vim /etc/nginx/sites-available/testproject.me.conf

次の設定をコピーして貼り付けます (testprojects.mewww.testprojects.me をドメイン名に置き換えます)。また、NGINXFastCGI リクエストを PHP-FPM に渡す手段も指定します。この例では、UNIX ソケット (/) を使用しています。 run/php/php7.4-fpm.sock):

server {
    set $host_path "/var/www/html/testproject";
    #access_log  /www/testproject/log/access.log  main;

    server_name  testprojects.me www.testprojects.me;
    root   $host_path/web;
    set $yii_bootstrap "index.php";

    charset utf-8;

    location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }

    #avoid processing of calls to unexisting static files by yii
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }

    # pass the PHP scripts to FastCGI server listening on UNIX socket 
    location ~ \.php {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;

        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }
       fastcgi_pass   unix:/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

       #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}

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

次に、NGINX 構成構文が正しいかどうかを確認し、問題がない場合は、次のように新しいアプリケーションを有効にします。

sudo nginx -t
sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf

次に、NGINX サービスを再起動して、新しい変更を適用します。

sudo systemctl restart nginx

Web ブラウザに戻り、ドメイン名を使用して移動します。

http://testprojects.me
OR
http://www.testprojects.me

Let’s Encrypt を使用して Yii アプリケーションで HTTPS を有効にする

最後に、ウェブサイトでHTTPSを有効にする必要があります。無料の Let’s Encrypt SSL/TLS 証明書 (自動化され、最新のすべての Web ブラウザで認識される) を使用するか、商用 CA から証明書を取得することができます。

Let’s Encrypt 証明書を使用する場合は、certbot ツールを使用して証明書を自動的にインストールし、構成できます。 certbot をインストールするには、snapd をインストールしてインストールする必要があります。

sudo snap install --classic certbot

次に、certbot を使用して、NGINX Web サーバーで使用する無料の SSL/TLS 証明書を取得し、インストール/構成します (更新用の有効な電子メールを入力し、プロンプトに従ってインストールを完了します)。

sudo certbot --nginx

もう一度 Web ブラウザにアクセスして、Yii アプリケーションが HTTPS で実行されていることを確認します (HTTP は自動的に にリダイレクトされることに注意してください) >HTTPS)。

http://testprojects.me
OR
http://www.testprojects.me

アプリケーションをデータベースに接続する方法などの詳細については、Yii プロジェクトの公式 Web サイトから Yii フレームワークのドキュメントを参照してください。ぜひ試してみて、Yii についてのご意見を共有したり、以下のフィードバック フォームからご質問ください。