Vyhledávání na webu

Jak nainstalovat Yii PHP Framework na Ubuntu


Yii (vyslovováno Yee nebo [ji:]) je bezplatný a open source, rychlý, vysoce výkonný, bezpečný, flexibilní a přitom pragmatický, a efektivní generický webový programovací rámec pro vývoj všech druhů webových aplikací pomocí PHP.

V tomto článku se dozvíte, jak nainstalovat nejnovější verzi rámce Yii ve verzích Ubuntu LTS (long-term support), abyste mohli začít vyvíjet moderní webové aplikace PHP.

Podpora platformy

Yii má následující vydání Ubuntu LTS (dlouhodobá podpora):

  • Ubuntu 20.04 LTS („Focal“)
  • Ubuntu 18.04 LTS („Bionic“)
  • Ubuntu 16.04 LTS („Xenial“)

Požadavky

  • Běžící instance serveru Ubuntu.
  • Zásobník LEMP s PHP 5.4.0 nebo vyšším.
  • A Composer – správce balíčků na úrovni aplikace pro PHP.

Na této straně

  • Instalace Yii Framework přes Composer v Ubuntu
  • Spuštění Yii pomocí PHP Development Server
  • Spuštění projektu Yii v produkci pomocí NGINX HTTP serveru
  • Povolte HTTPS v aplikacích Yii pomocí Let’s Encrypt

Yii lze nainstalovat dvěma způsoby, pomocí správce balíčků Composer nebo instalací z archivního souboru. První je doporučený způsob, protože vám umožňuje instalovat nová rozšíření nebo aktualizovat Yii jediným příkazem.

Instalace Yii Framework přes Composer v Ubuntu

Pokud nemáte nainstalovaný Composer, můžete jej nainstalovat pomocí následujících příkazů, které později nainstalují Yii a spravují jeho závislosti.

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

Po instalaci skladatele se přesuňte do adresáře /var/www/html/, ve kterém budou uloženy soubory vašich webových aplikací nebo webových stránek, a poté nainstalujte balíček Yii pomocí composer (testproject nahraďte názvem adresáře vaší webové aplikace).

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

Spuštění Yii pomocí PHP Development Server

V tuto chvíli jste připraveni začít používat rámec Yii pro vývoj. Chcete-li spustit vývojový server PHP, přejděte do adresáře testprojects (název vašeho adresáře by se měl lišit v závislosti na tom, co jste zadali v předchozím příkazu), poté spusťte vývojový server. Ve výchozím nastavení by měl běžet na portu 8080.

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

Chcete-li spustit vývojový server na jiném portu, například portu 5000, použijte příznak --port, jak je znázorněno.

php yii serve --port=5000

Poté otevřete webový prohlížeč a procházejte pomocí následující adresy:

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

Spuštění projektu Yii v produkci pomocí NGINX HTTP serveru

K nasazení a přístupu k aplikaci Yii v produkčním prostředí je zapotřebí server HTTP, jako je NGINX, Apache/HTTPD nebo jakýkoli jiný podporovaný software webového serveru.

Chcete-li přistupovat k aplikaci Yii bez zadávání portu, musíte vytvořit požadovaný záznam DNS A, který vaši doménu nasměruje na váš aplikační server frameworku Yii. .

V této příručce si ukážeme, jak nasadit aplikaci Yii pomocí NGINX. Musíte tedy vytvořit konfigurační soubor virtuálního hostitele nebo bloku serveru v adresáři /etc/nginx/sites-available/ pro vaši aplikaci, aby ji mohl NGINX obsluhovat.

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

Zkopírujte a vložte do něj následující konfiguraci (nahraďte testprojects.me a www.testprojects.me názvem vaší domény). Určete také způsob, jakým bude NGINX předat požadavky FastCGI do PHP-FPM, v tomto příkladu používáme soket 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;
    }
}

Uložte soubor a zavřete jej.

Poté zkontrolujte správnost syntaxe konfigurace NGINX, pokud je v pořádku, povolte novou aplikaci, jak je znázorněno:

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

Poté restartujte službu NGINX, abyste použili nové změny:

sudo systemctl restart nginx

Vraťte se do webového prohlížeče a procházejte pomocí názvu své domény.

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

Povolte HTTPS v aplikacích Yii pomocí Let’s Encrypt

Nakonec musíte na svém webu povolit HTTPS. Můžete buď použít bezplatný certifikát Let’s Encrypt SSL/TLS (který je automatizovaný a uznávaný všemi moderními webovými prohlížeči), nebo získat certifikát od komerční CA.

Pokud se rozhodnete použít certifikát Let’s Encrypt, lze jej automaticky nainstalovat a nakonfigurovat pomocí nástroje certbot. Chcete-li nainstalovat certbot, musíte nainstalovat snapd.

sudo snap install --classic certbot

Poté pomocí certbota získejte a nainstalujte/nakonfigurujte svůj bezplatný certifikát SSL/TLS pro použití s webovým serverem NGINX (zadejte platný e-mail pro obnovení a dokončete instalaci podle pokynů):

sudo certbot --nginx

Nyní znovu přejděte do webového prohlížeče a ověřte, že vaše aplikace Yii nyní běží na HTTPS (nezapomeňte, že HTTP by mělo automaticky přesměrovat na HTTPS).

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

Další informace, jako je připojení vaší aplikace k databázi, najdete v dokumentaci rámce Yii na oficiálních webových stránkách projektu Yii. Vyzkoušejte to a podělte se o své názory na Yii nebo se zeptejte na jakékoli otázky prostřednictvím formuláře pro zpětnou vazbu níže.