Website-Suche

So installieren Sie das Yii PHP Framework unter Ubuntu


Yii (ausgesprochen Yee oder [ji:]) ist ein kostenloses und quelloffenes, schnelles, leistungsstarkes, sicheres, flexibles und dennoch pragmatisches, und effizientes generisches Web-Programmier-Framework für die Entwicklung aller Arten von Webanwendungen mit PHP.

In diesem Artikel erfahren Sie, wie Sie die neueste Version des Yii-Frameworks in Ubuntu LTS-Versionen (Langzeitunterstützung) installieren, um mit der Entwicklung moderner PHP-Webanwendungen zu beginnen.

Plattformunterstützung

Yii verfügt über die folgenden Ubuntu LTS-Versionen (Langzeitunterstützung):

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

Anforderungen

  • Eine laufende Instanz des Ubuntu-Servers.
  • Ein LEMP-Stack mit PHP 5.4.0 oder höher.
  • Ein Composer – ein Paketmanager auf Anwendungsebene für PHP.

Auf dieser Seite

  • Yii Framework über Composer in Ubuntu installieren
  • Yii mit PHP Development Server ausführen
  • Ausführen des Yii-Projekts in der Produktion mithilfe eines NGINX-HTTP-Servers
  • Aktivieren Sie HTTPS für Yii-Anwendungen mit Let’s Encrypt

Es gibt zwei Möglichkeiten, Yii zu installieren: mit dem Composer-Paketmanager oder durch die Installation aus einer Archivdatei. Ersteres ist die empfohlene Methode, da Sie damit neue Erweiterungen installieren oder Yii mit einem einzigen Befehl aktualisieren können.

Yii Framework über Composer in Ubuntu installieren

Wenn Sie Composer nicht installiert haben, können Sie es mit den folgenden Befehlen installieren, wodurch später Yii installiert und seine Abhängigkeiten verwaltet werden.

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

Sobald Sie Composer installiert haben, wechseln Sie in das Verzeichnis /var/www/html/, in dem Ihre Webanwendungen oder Website-Dateien gespeichert werden, und installieren Sie dann das Yii-Paket mit dem composer (ersetzen Sie testproject durch den Namen des Verzeichnisses Ihrer Webanwendung).

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

Yii mit PHP Development Server ausführen

An diesem Punkt können Sie mit der Verwendung des Yii-Frameworks für die Entwicklung beginnen. Um den PHP-Entwicklungsserver auszuführen, wechseln Sie in das Verzeichnis testprojects (Ihr Verzeichnisname sollte unterschiedlich sein, je nachdem, was Sie im vorherigen Befehl angegeben haben) und starten Sie dann den Entwicklungsserver. Standardmäßig sollte es auf Port 8080 laufen.

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

Um den Entwicklungsserver auf einem anderen Port auszuführen, beispielsweise Port 5000, verwenden Sie das Flag --port wie gezeigt.

php yii serve --port=5000

Öffnen Sie dann Ihren Webbrowser und navigieren Sie über die folgende Adresse:

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

Ausführen des Yii-Projekts in der Produktion mithilfe eines NGINX-HTTP-Servers

Um eine Yii-Anwendung in der Produktion bereitzustellen und darauf zuzugreifen, ist ein HTTP-Server wie NGINX, Apache/HTTPD oder eine andere unterstützte Webserversoftware erforderlich.

Um auf die Yii-Anwendung zuzugreifen, ohne Ihren Port einzugeben, müssen Sie den erforderlichen DNS-A-Eintrag erstellen, um Ihre Domain auf Ihren Yii-Framework-Anwendungsserver zu verweisen .

In dieser Anleitung zeigen wir, wie Sie eine Yii-Anwendung mit NGINX bereitstellen. Sie müssen also eine virtuelle Host- oder Serverblock-Konfigurationsdatei im Verzeichnis /etc/nginx/sites-available/ für Ihre Anwendung erstellen, damit NGINX sie bereitstellen kann.

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

Kopieren Sie die folgende Konfiguration und fügen Sie sie ein (ersetzen Sie testprojects.me und www.testprojects.me durch Ihren Domainnamen). Geben Sie außerdem an, wie NGINX FastCGI-Anfragen an PHP-FPM weiterleitet. In diesem Beispiel verwenden wir einen UNIX-Socket (/ 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;
    }
}

Speichern Sie die Datei und schließen Sie sie.

Überprüfen Sie dann die NGINX-Konfigurationssyntax auf Richtigkeit. Wenn sie in Ordnung ist, aktivieren Sie die neue Anwendung wie gezeigt:

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

Starten Sie dann den NGINX-Dienst neu, um die neuen Änderungen zu übernehmen:

sudo systemctl restart nginx

Gehen Sie zurück zu Ihrem Webbrowser und navigieren Sie mit Ihrem Domainnamen.

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

Aktivieren Sie HTTPS für Yii-Anwendungen mit Let’s Encrypt

Zuletzt müssen Sie HTTPS auf Ihrer Website aktivieren. Sie können entweder ein kostenloses SSL/TLS-Zertifikat von Let’s Encrypt verwenden (das automatisiert ist und von allen modernen Webbrowsern erkannt wird) oder ein Zertifikat von einer kommerziellen Zertifizierungsstelle erwerben.

Wenn Sie sich für die Verwendung eines Let’s Encrypt-Zertifikats entscheiden, kann dieses mithilfe des Tools certbot automatisch installiert und konfiguriert werden. Um certbot zu installieren, müssen Sie snapd installieren, um es zu installieren.

sudo snap install --classic certbot

Verwenden Sie dann certbot, um Ihr kostenloses SSL/TLS-Zertifikat für die Verwendung mit dem NGINX-Webserver zu erhalten und zu installieren/konfigurieren (geben Sie eine gültige E-Mail-Adresse für die Erneuerung an und folgen Sie den Anweisungen, um die Installation abzuschließen):

sudo certbot --nginx

Gehen Sie nun noch einmal zu Ihrem Webbrowser, um zu bestätigen, dass Ihre Yii-Anwendung jetzt auf HTTPS ausgeführt wird (denken Sie daran, dass HTTP automatisch zu umleiten sollte). >HTTPS).

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

Weitere Informationen, beispielsweise zum Verbinden Ihrer Anwendung mit einer Datenbank, finden Sie in der Yii-Framework-Dokumentation auf der offiziellen Yii-Projektwebsite. Probieren Sie es aus und teilen Sie uns Ihre Meinung zu Yii mit oder stellen Sie Fragen über das Feedback-Formular unten.