וטנובואב Yii PHP Framework תא ןיקתהל דציכ


Yii (אטובמ Yee וא [ji:]) ב םישמתשמה טנרטניא ימושיי ינימ לכ חותיפל ליעיו יטמגרפ ךא שימג ,חטבואמ ,םיהובג םיעוציב ,ריהמ ,חותפ דוק חותפו תישפוח םירתא תונכת תרגסמ אוה- PHP.

.PHP לש םיינרדומ טנרטניא ימושיי חותיפב ליחתהל ידכ (ךורא חווטל הכימת) LTS וטנובוא תורודהמב Yii תרגסמ לש הנורחאה הסרגה תא ןיקתהל דציכ דמלת הז רמאמב

Yii וטנובוא לש תואבה תורודהמב הקיזחמ LTS (ךורא חווטל הכימת):

      הז דומעב

        .תחא הדוקפב Yii תא ןכדעל וא תושדח תומויס ןיקתהל ךל תרשפאמ איהש ןוויכמ ,תצלמומה ךרדה איה הנושארה .ןויכרא ץבוקמ ותנקתה ידי לע וא Composer לש תוליבחה להנמ תועצמאב ,Yii תא ןיקתהל םיכרד יתש ןנש

        .ולש תולתה תא להניו Yii תא ןיקתי ךשמהבש ,תואבה תודוקפה תועצמאב ותוא ןיקתהל לכות ,ןקתומ Composer ךל ןיא םא

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

        .(טנרטניאה םושיי תיירפס ךלש לש םשב testproject תא ףלחה) ןיחלמה תועצמאב Yii תליבח תא ןקתה זאו ,ךלש םירתאה יצבק תא וא ךלש טנרטניאה ימושיי תא ןסחאתש /var/www/html/ היירפס

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

        .8080 האיציב לועפל רומא אוה ,לדחמ תרירבכ .חותיפה תרש תא לעפה זאו (תמדוקה הדוקפב תנייצש המל םאתהב הנוש תויהל ךירצ ךלש הירפסה םש) testprojects תיירפסל רובע ,PHP לש חותיפה תרש תא ץירהל ידכ .ח

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

        .גצומש יפכ --port לגדב שמתשה ,5000 האיצי ,לשמל ,תרחא האיציב חותיפה תרש תא ץירהל ידכ

        $ php yii serve --port=5000
        

        :האבה תבותכה תועצמאב טוונו טנרטניאה ןפדפד תא חתפ ןכמ רחאל

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

        .תכמתנ טנרטניא יתרש תנכות ןוגכ HTTP תרש שרדנ ,רוצייב Yii םושייל תשגלו סורפל ידכ

        .ךלש Yii תרגסמה ימושיי תרשל ךלש םוחתה תא ןווכל ידכ תשרדנה A

        .ותוא תרשל לכוי NGINX -ש ידכ ךלש םושייה רובע/etc/nginx/sites-available/היירפסה תחת תרש תומיסח לש הרוצת ץבוק וא ילאוטריו חראמ רוציל ךילע ןכל .NGINX םע Yii םושיי סורפל דציכ הארנ הז ך

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

        :UNIX (/run/php/php7.4-fpm.sock) עקשב םישמתשמ ונא וז המגודב ,PHP-FPM -ל FastCGI תושקב ריבעי NGINX -ש םיעצמאה תא םג ןייצ .(ךלש ןיימודה םשב www.testprojects.me testp

        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
        

        .ירחסמ CA -מ הדועת שוכרל וא (םיינרדומה טנרטניאה ינפדפד לכ ידי לע תרכומו תיטמוטוא רשא) SSL/TLS תנפצהל םולשת אלל SSL תדועתב שמתשהל ךתורשפאב .ךלש טנרטניאה רתאב HTTPS ליעפהל ךילע ,ףוסבל

        .ותוא ןיקתהל ידכ snapd תא ןיקתהל ךילע ,certbot תא ןיקתהל ידכ .certbot ילכ תועצמאב יטמוטוא ןפואב התוא רידגהלו ןיקתהל ןתינ ,Let's Encrypt תדועתב שמתשהל טילחת םא

        $ sudo snap install --classic certbot
        

        :(הנקתהה תמלשהל תויחנהה יפל לעפו שודיחל יקוח ל"אוד קפס) NGINX טנרטניאה תרש םע שומישל ךלש תימניחה SSL/TLS -ה תדועת תא רידגהל/ןיקתהלו גישהל ידכ certbot -ב שמתשה זאו

        $ sudo certbot --nginx
        

        .(HTTPS -ל תיטמוטוא תונפהל רומא HTTP -ש רוכז) HTTPS -ב תעכ לעופ ךלש Yii -ה םושיי יכ רשאל ידכ תפסונ םעפ ךלש טנרטניאה ןפדפדל רובע תעכ

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

        .הטמלש בושמה ספוט תועצמאב תולאש לאש וא Yii יבגל ךיתובשחמ תא ףתשלו הסנ .Yii טקיורפ לש ימשרה רתאהמ Yii לש תרגסמה דועיתב ןייע ,םינותנ דסמל ךלש םושייה רוביח ןוגכ ףסונ עדימ תלבקל