如何在 Ubuntu 上安装 Yii PHP 框架
Yii(发音为 Yee 或 [ji:])是一个免费、开源、快速、高性能、安全、灵活且实用的、高效的通用 Web 编程框架,用于使用 PHP 开发各种 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 框架
- 使用 PHP 开发服务器运行 Yii
- 使用 NGINX HTTP 服务器在生产环境中运行 Yii 项目
- 使用 Let’s Encrypt 在 Yii 应用程序上启用 HTTPS
有两种方法安装 Yii,使用 Composer 包管理器或从存档文件安装。前者是推荐的方式,因为它允许您通过单个命令安装新扩展或更新 Yii。
在 Ubuntu 中通过 Composer 安装 Yii 框架
如果您没有安装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 应用程序或网站文件的目录 /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
然后打开您的网络浏览器并使用以下地址进行导航:
http://SERVER_IP:8080
OR
http://SERVER_IP:5000
使用 NGINX HTTP 服务器在生产环境中运行 Yii 项目
要在生产中部署和访问 Yii 应用程序,需要 HTTP 服务器,例如 NGINX、Apache/HTTPD 或任何其他受支持的 Web 服务器软件。
要在不输入端口的情况下访问 Yii 应用程序,您需要创建所需的 DNS A
记录,以将您的域指向 Yii 框架应用程序服务器。
在本指南中,我们将展示如何使用 NGINX 部署 Yii 应用程序。因此,您需要在您的应用程序的 /etc/nginx/sites-available/ 目录下创建一个虚拟主机或服务器块配置文件,以便 NGINX 可以为其提供服务。
sudo vim /etc/nginx/sites-available/testproject.me.conf
将以下配置复制并粘贴到其中(将 testprojects.me
和 www.testprojects.me
替换为您的域名)。还指定NGINX将FastCGI请求传递给PHP-FPM的方式,在本例中,我们使用UNIX套接字(/运行/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
返回您的网络浏览器并使用您的域名进行导航。
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 获取并安装/配置您的免费 SSL/TLS 证书以与 NGINX Web 服务器一起使用(提供有效的电子邮件用于续订并按照提示完成安装):
sudo certbot --nginx
现在再次访问您的网络浏览器,确认您的 Yii 应用程序现在正在 HTTPS 上运行(记住 HTTP 应自动重定向到 >HTTPS)。
http://testprojects.me
OR
http://www.testprojects.me
有关将应用程序连接到数据库等更多信息,请参阅 Yii 项目官方网站上的 Yii 框架文档。尝试一下并分享您对 Yii 的想法,或通过下面的反馈表提出任何问题。