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.me
と www.testprojects.me
をドメイン名に置き換えます)。また、NGINX が FastCGI リクエストを 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 についてのご意見を共有したり、以下のフィードバック フォームからご質問ください。