Wyszukiwanie w witrynie

Jak zainstalować Yii PHP Framework na Ubuntu


Yii (wymawiane Yee lub [ji:]) to darmowy i open source, szybki, wydajny, bezpieczny, elastyczny, a jednocześnie pragmatyczny, i wydajna, ogólna platforma programowania sieciowego do tworzenia wszelkiego rodzaju aplikacji internetowych przy użyciu języka PHP.

W tym artykule dowiesz się, jak zainstalować najnowszą wersję Yii framework w wydaniach Ubuntu LTS (długoterminowe wsparcie), aby rozpocząć tworzenie nowoczesnych aplikacji internetowych PHP.

Wsparcie platformy

Yii posiada następujące wydania Ubuntu LTS (długoterminowe wsparcie):

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

Wymagania

  • Działająca instancja serwera Ubuntu.
  • Stos LEMP z PHP 5.4.0 lub nowszym.
  • A Composer – menedżer pakietów na poziomie aplikacji dla PHP.

Na tej stronie

  • Instalacja Yii Framework poprzez Composer w Ubuntu
  • Uruchamianie Yii przy użyciu serwera deweloperskiego PHP
  • Uruchamianie projektu Yii w środowisku produkcyjnym przy użyciu serwera HTTP NGINX
  • Włącz HTTPS w aplikacjach Yii za pomocą Let’s Encrypt

Istnieją dwa sposoby instalacji Yii: przy użyciu menedżera pakietów Composer lub instalując go z pliku archiwum. Zalecany jest ten pierwszy sposób, ponieważ umożliwia instalację nowych rozszerzeń lub aktualizację Yii za pomocą jednego polecenia.

Instalacja Yii Framework poprzez Composer w Ubuntu

Jeśli nie masz zainstalowanego programu Composer, możesz go zainstalować za pomocą następujących poleceń, które później zainstalują Yii i zarządzają jego zależnościami.

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

Po zainstalowaniu narzędzia Composer przejdź do katalogu /var/www/html/, w którym będą przechowywane pliki Twoich aplikacji internetowych lub stron internetowych, a następnie zainstaluj pakiet Yii za pomocą polecenia composer (zamień testproject na nazwę katalogu swojej aplikacji internetowej).

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

Uruchamianie Yii przy użyciu serwera deweloperskiego PHP

W tym momencie możesz zacząć używać frameworka Yii do programowania. Aby uruchomić serwer programistyczny PHP, przejdź do katalogu testprojects (nazwa twojego katalogu powinna być inna w zależności od tego, co określiłeś w poprzednim poleceniu), a następnie uruchom serwer programistyczny. Domyślnie powinien działać na porcie 8080.

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

Aby uruchomić serwer programistyczny na innym porcie, na przykład porcie 5000, użyj flagi --port, jak pokazano.

php yii serve --port=5000

Następnie otwórz przeglądarkę internetową i nawiguj, korzystając z następującego adresu:

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

Uruchamianie projektu Yii w środowisku produkcyjnym przy użyciu serwera HTTP NGINX

Aby wdrożyć aplikację Yii w środowisku produkcyjnym i uzyskać do niej dostęp, wymagany jest serwer HTTP, taki jak NGINX, Apache/HTTPD lub inny obsługiwany serwer WWW.

Aby uzyskać dostęp do aplikacji Yii bez wpisywania portu, musisz utworzyć wymagany rekord DNS A, który będzie wskazywał Twoją domenę na serwer aplikacji Yii framework .

W tym przewodniku pokażemy, jak wdrożyć aplikację Yii za pomocą NGINX. Musisz więc utworzyć plik konfiguracyjny wirtualnego hosta lub bloku serwera w katalogu /etc/nginx/sites-available/ dla swojej aplikacji, aby NGINX mógł ją obsłużyć.

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

Skopiuj i wklej do niego poniższą konfigurację (zastąp testprojects.me i www.testprojects.me nazwą swojej domeny). Określ także sposób, w jaki NGINX będzie przekazywać żądania FastCGI do PHP-FPM. W tym przykładzie używamy gniazda 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;
    }
}

Zapisz plik i zamknij go.

Następnie sprawdź poprawność składni konfiguracji NGINX, jeśli jest OK, włącz nową aplikację jak pokazano:

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

Następnie uruchom ponownie usługę NGINX, aby zastosować nowe zmiany:

sudo systemctl restart nginx

Wróć do przeglądarki internetowej i nawiguj za pomocą nazwy domeny.

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

Włącz HTTPS w aplikacjach Yii za pomocą Let’s Encrypt

Na koniec musisz włączyć HTTPS w swojej witrynie. Możesz skorzystać z bezpłatnego certyfikatu Let’s Encrypt SSL/TLS (który jest zautomatyzowany i rozpoznawany przez wszystkie nowoczesne przeglądarki internetowe) lub uzyskać certyfikat od komercyjnego urzędu certyfikacji.

Jeśli zdecydujesz się na użycie certyfikatu Let’s Encrypt, można go automatycznie zainstalować i skonfigurować za pomocą narzędzia certbot. Aby zainstalować certbota, musisz zainstalować snapd, aby go zainstalować.

sudo snap install --classic certbot

Następnie użyj certbot, aby uzyskać i zainstalować/skonfigurować bezpłatny certyfikat SSL/TLS do użytku z serwerem internetowym NGINX (podaj prawidłowy adres e-mail w celu odnowienia i postępuj zgodnie z instrukcjami, aby ukończyć instalację):

sudo certbot --nginx

Teraz przejdź jeszcze raz do swojej przeglądarki internetowej, aby potwierdzić, że Twoja aplikacja Yii działa teraz na HTTPS (pamiętaj, że HTTP powinien automatycznie przekierowywać do HTTPS).

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

Aby uzyskać więcej informacji, takich jak połączenie aplikacji z bazą danych, zobacz dokumentację frameworka Yii na oficjalnej stronie projektu Yii. Spróbuj i podziel się swoimi przemyśleniami na temat Yii lub zadaj pytania za pomocą poniższego formularza opinii.