Πώς να εγκαταστήσετε το Yii PHP Framework στο Ubuntu


Το Yii (προφέρεται Yee ή [ji:]) είναι ένα δωρεάν και ανοιχτού κώδικα, γρήγορο, υψηλής απόδοσης, ασφαλές, ευέλικτο αλλά ρεαλιστικό, και αποτελεσματικό γενικό πλαίσιο προγραμματισμού Ιστού για την ανάπτυξη όλων των ειδών διαδικτυακών εφαρμογών με χρήση PHP.

Σε αυτό το άρθρο, θα μάθετε πώς να εγκαταστήσετε την πιο πρόσφατη έκδοση του πλαισίου Yii σε εκδόσεις Ubuntu LTS (μακροχρόνια υποστήριξη) για να ξεκινήσετε την ανάπτυξη σύγχρονων εφαρμογών Web PHP.

Υποστήριξη πλατφόρμας

Το Yii διαθέτει τις ακόλουθες εκδόσεις Ubuntu LTS (μακροπρόθεσμη υποστήριξη):

  • Ubuntu 20.04 LTS ("Focal")
  • Ubuntu 18.04 LTS ("Bionic")
  • Ubuntu 16.04 LTS ("Xenial")

Απαιτήσεις

  • Ένα στιγμιότυπο του διακομιστή Ubuntu που εκτελείται.
  • Μια στοίβα LEMP με PHP 5.4.0 ή νεότερη έκδοση.
  • A Composer – ένας διαχειριστής πακέτων σε επίπεδο εφαρμογής για την PHP.

Σε αυτήν την σελίδα

  • Εγκατάσταση του Yii Framework μέσω του Composer στο Ubuntu
  • Εκτέλεση του Yii με χρήση διακομιστή ανάπτυξης PHP
  • Εκτέλεση έργου Yii στην παραγωγή με χρήση διακομιστή HTTP NGINX
  • Ενεργοποιήστε το HTTPS σε εφαρμογές Yii χρησιμοποιώντας το Let’s Encrypt

Υπάρχουν δύο τρόποι εγκατάστασης του Yii, χρησιμοποιώντας τη διαχείριση πακέτων Composer ή εγκαθιστώντας το από ένα αρχείο αρχειοθέτησης. Ο πρώτος είναι ο προτεινόμενος τρόπος, καθώς σας δίνει τη δυνατότητα να εγκαταστήσετε νέες επεκτάσεις ή να ενημερώσετε το Yii με μία μόνο εντολή.

Εγκατάσταση του Yii Framework μέσω του Composer στο Ubuntu

Εάν δεν έχετε εγκαταστήσει το 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/ που θα αποθηκεύει τα αρχεία των εφαρμογών ιστού ή των ιστότοπών σας και, στη συνέχεια, εγκαταστήστε το πακέτο Yii χρησιμοποιώντας το συνθέτης (αντικαταστήστε το testproject με το όνομα του καταλόγου της εφαρμογής Ιστού σας).

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

Εκτέλεση του Yii με χρήση διακομιστή ανάπτυξης PHP

Σε αυτό το σημείο, είστε έτοιμοι να αρχίσετε να χρησιμοποιείτε το πλαίσιο 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

Εκτέλεση έργου Yii στην παραγωγή με χρήση διακομιστή HTTP NGINX

Για την ανάπτυξη και πρόσβαση σε μια εφαρμογή Yii στην παραγωγή, απαιτείται διακομιστής HTTP όπως NGINX, Apache/HTTPD ή οποιοδήποτε άλλο υποστηριζόμενο λογισμικό διακομιστή Ιστού.

Για να αποκτήσετε πρόσβαση στην εφαρμογή Yii χωρίς να πληκτρολογήσετε τη θύρα σας, πρέπει να δημιουργήσετε την απαιτούμενη εγγραφή A DNS για να κατευθύνετε τον τομέα σας στον διακομιστή εφαρμογής πλαισίου Yii .

Για αυτόν τον οδηγό, θα δείξουμε πώς να αναπτύξετε μια εφαρμογή Yii με το NGINX. Επομένως, πρέπει να δημιουργήσετε ένα αρχείο διαμόρφωσης εικονικού κεντρικού υπολογιστή ή μπλοκ διακομιστή στον κατάλογο /etc/nginx/sites-available/ για την εφαρμογή σας, ώστε το NGINX να μπορεί να το εξυπηρετήσει.

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

Αντιγράψτε και επικολλήστε την ακόλουθη διαμόρφωση σε αυτήν (αντικαταστήστε τα testprojects.me και www.testprojects.me με το όνομα τομέα σας). Καθορίστε επίσης τα μέσα που το NGINX θα μεταβιβάζει αιτήματα FastCGI στο PHP-FPM, σε αυτό το παράδειγμα, χρησιμοποιούμε μια υποδοχή 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;
    }
}

Αποθηκεύστε το αρχείο και κλείστε το.

Στη συνέχεια, ελέγξτε τη σύνταξη διαμόρφωσης 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

Ενεργοποιήστε το HTTPS σε εφαρμογές Yii χρησιμοποιώντας το Let’s Encrypt

Τέλος, πρέπει να ενεργοποιήσετε το HTTPS στον ιστότοπό σας. Μπορείτε είτε να χρησιμοποιήσετε ένα δωρεάν πιστοποιητικό Let’s Encrypt SSL/TLS (το οποίο είναι αυτοματοποιημένο και αναγνωρίζεται από όλα τα σύγχρονα προγράμματα περιήγησης ιστού) είτε να αποκτήσετε ένα πιστοποιητικό από μια εμπορική ΑΠ.

Εάν αποφασίσετε να χρησιμοποιήσετε ένα πιστοποιητικό Let’s Encrypt, μπορεί να εγκατασταθεί και να διαμορφωθεί αυτόματα χρησιμοποιώντας το εργαλείο certbot. Για να εγκαταστήσετε το certbot, πρέπει να εγκαταστήσετε το snapd για να το εγκαταστήσετε.

sudo snap install --classic certbot

Στη συνέχεια, χρησιμοποιήστε το certbot για να αποκτήσετε και να εγκαταστήσετε/διαμορφώσετε το δωρεάν πιστοποιητικό SSL/TLS για χρήση με τον διακομιστή ιστού NGINX (δώστε ένα έγκυρο email για ανανέωση και ακολουθήστε τις οδηγίες για να ολοκληρώσετε την εγκατάσταση):

sudo certbot --nginx

Τώρα μεταβείτε στο πρόγραμμα περιήγησής σας για άλλη μια φορά για να επιβεβαιώσετε ότι η εφαρμογή σας Yii εκτελείται τώρα σε HTTPS (θυμηθείτε ότι το HTTP θα πρέπει να ανακατευθύνει αυτόματα στο HTTPS).

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

Για περισσότερες πληροφορίες, όπως η σύνδεση της εφαρμογής σας σε μια βάση δεδομένων, ανατρέξτε στην τεκμηρίωση του πλαισίου Yii από τον επίσημο ιστότοπο του έργου Yii. Δοκιμάστε το και μοιραστείτε τις σκέψεις σας σχετικά με το Yii ή κάντε οποιεσδήποτε ερωτήσεις μέσω της παρακάτω φόρμας σχολίων.