zoukankan      html  css  js  c++  java
  • 如何在Ubuntu上安装Yii PHP Framework

    Yii是一个免费的开源、快速、高性能、安全、灵活而又实用、高效的通用网络编程框架,用于使用PHP开发各种网络应用。
    在本文中,你将学习如何在Ubuntu LTS版本中安装最新版本的Yii框架,以开始开发现代PHP Web应用程序。
    平台支持
    Yii持有以下Ubuntu LTS(长期支持)版本。
    Ubuntu 20.04 LTS ("Focal")
    Ubuntu 18.04 LTS ("Bionic")
    Ubuntu 16.04 LTS ("Xenial")
    准备工作
    一个正在运行的Ubuntu服务器实例。
    一个PHP 5.4.0或以上的LEMP协议栈。
    一个Composer--PHP的应用程序级包管理器。
    有两种方法来安装Yii,使用Composer包管理器或从存储库文件安装。推荐前面的方式,因为它可以让你通过一个命令安装新的扩展或更新Yii。
    1、在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,移动到/var/www/html/目录下,这将存储你的web应用程序或网站文件,然后使用composer安装Yii包(用你的web应用程序的目录名替换testproject)。
    $ cd /var/www/html/
    $ composer create-project --prefer-dist yiisoft/yii2-app-basic testproject
    2、使用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
    3、在生产中使用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
    复制并粘贴下面的配置(用你的域名替换a5idc.net和www.a5idc.net)。同时指定NGINX向PHP-FPM传递FastCGI请求的方式,在本例中,我们使用UNIX套接字(/run/php/php7.4-fpm.sock)。
    erver {
    set $host_path "/var/www/html/testproject";
    #access_log /www/testproject/log/access.log main;

    server_name a5idc.net www.a5idc.net;
    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配置语法是否正确,如果OK,启用新的应用程序,如下所示。
    $ sudo nginx -t
    $ sudo ln -s /etc/nginx/sites-available/a5idc.net.conf /etc/nginx/sites-enabled/a5idc.net.conf
    然后重新启动NGINX服务以应用新的更改。
    $ sudo systemctl restart nginx
    回到你的网页浏览器,用你的域名导航。
    http://a5idc.net
    OR
    http://www.a5idc.net


    4、使用Let's Encrypt在Yii应用程序上启用HTTPS。
    最后,你需要在你的网站上启用HTTPS。你可以使用一个免费的Let's Encrypt SSL/TLS证书(它是自动的,并被所有的现代网络浏览器识别)或从商业CA获取证书。
    如果你决定使用Let's Encrypt证书,它可以使用certbot工具自动安装和配置。要安装certbot,你需要安装snapd来安装它。
    $ sudo snap install --classic certbot
    然后使用certbot获取并安装/配置你的免费SSL/TLS证书,用于NGINX网站服务器(提供有效的邮箱进行更新,并按照提示完成安装)。
    $ sudo certbot --nginx
    现在进入你的网页浏览器,再次确认你的Yii应用程序现在运行在HTTPS上(记住HTTP应该自动重定向到HTTPS)。
    有关将您的应用程序连接到数据库的更多信息,请参见Yii项目官方网站上的Yii框架文档。

  • 相关阅读:
    网络编程总结
    网络编程进阶---->>> hamc模块 socketserver模块验证合法性 两者进行通信连接
    黏包
    socket概念 套接字
    网络协议
    python之路——网络基础
    模块复习 staticmethod和classmethod的区别
    Dubbo执行流程?
    Dubbo在安全机制方面是如何解决的
    Dubbo中有哪些角色?
  • 原文地址:https://www.cnblogs.com/a5idc/p/13671584.html
Copyright © 2011-2022 走看看