Yadda ake Shigar da Tsarin Yii PHP akan Ubuntu


Yii (lafazin Yee ko [ji:]) kyauta ce kuma budaddiyar hanya, mai sauri, aiki mai kyau, amintacce, mai sassauci amma mai iya aiki, kuma ingantaccen tsarin shirye-shiryen gidan yanar gizo don haɓaka kowane nau'ikan aikace-aikacen yanar gizo ta amfani da PHP.

A cikin wannan labarin, zaku koyi yadda ake girka sabon tsarin tsarin Yii a cikin Ubuntu LTS (tallafi na dogon lokaci) don fara haɓaka aikace-aikacen Yanar gizo na PHP na zamani.

Yii yana riƙe da Ubuntu LTS mai zuwa (tallafi na dogon lokaci):

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

  • Misali mai gudana na sabar Ubuntu.
  • Matsayin LEMP tare da PHP 5.4.0 ko sama.
  • Mai tsarawa - mai sarrafa kunshin matakin-aikace don PHP.

A wannan shafin

  • Shigar da Tsarin Yii ta hanyar Composer a Ubuntu
  • Gudun Yii Ta Amfani da Sabis ɗin Ci Gaban PHP
  • Gudanar da Yii a cikin Productionirƙirar Amfani da NGINX HTTP Server
  • Enable HTTPS on Aikace-aikacen Yii Ta Amfani da Bari Mu Encrypt

Akwai hanyoyi biyu don shigar da Yii, ta amfani da mai sarrafa kunshin Composer ko ta girka shi daga fayil ɗin ajiya. Na farko shine hanyar da aka ba da shawarar, saboda tana ba ku damar shigar da sabbin kari ko sabunta Yii ta hanyar umarni ɗaya.

Idan baku sanya Composer ba, zaku iya girka shi ta amfani da waɗannan umarnin, wanda daga baya zai sanya Yii kuma ya sarrafa abubuwan dogaro da shi.

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

Da zarar ka sanya mawaki, matsa cikin kundin adireshin /var/www/html/ wanda zai adana maka aikace-aikacen gidan yanar sadarwar ka ko fayilolin gidan yanar sadarwar ka, sannan ka sanya Yii din ta hanyar amfani da mai rubutun (ka maye gurbin aikin gwajin da sunan kundin adireshi na yanar gizo).

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

A wannan gaba, kun shirya don fara amfani da tsarin Yii don ci gaba. Don gudanar da sabar ci gaban PHP, matsa zuwa cikin kundin adireshin ayyukan gwajin (sunan adireshinku ya zama ya bambanta dangane da abin da kuka bayyana a cikin umarnin da ya gabata), sannan ƙaddamar da sabar ci gaban. Ta hanyar tsoho, yakamata yayi aiki akan tashar 8080.

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

Don gudanar da sabar ci gaba a wata tashar, misali, tashar jiragen ruwa 5000, yi amfani da tutar --port kamar yadda aka nuna.

$ php yii serve --port=5000

Bayan haka sai ka buɗe burauzar gidan yanar gizon ka ka yi amfani da adreshin mai zuwa:

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

Don turawa da samun damar aikace-aikacen Yii a cikin samarwa, yana buƙatar uwar garken HTTP kamar su kayan aikin sabar yanar gizo mai goyan baya.

Don samun damar aikace-aikacen Yii ba tare da buga tashar jiragen ruwan ku ba, kuna buƙatar ƙirƙirar DNS ɗin da ake buƙata A rikodin don nuna yankinku zuwa sabar aikace-aikacen tsarin Yii.

Don wannan jagorar, za mu nuna yadda za a tura aikace-aikacen Yii tare da NGINX. Don haka, kuna buƙatar ƙirƙirar mahaɗan kama-da-wane ko fayil ɗin daidaitawar sabar sabar a karkashin/etc/nginx/shafukan-wadatar/kundin adireshi don aikace-aikacenku don NGINX ya iya yi masa aiki.

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

Kwafa da liƙa bayanan mai zuwa a ciki (maye gurbin testprojects.me da www.testprojects.me tare da sunan yankinku). Hakanan saka takamaiman hanyoyin NGINX zai wuce buƙatun FastCGI zuwa PHP-FPM, a cikin wannan misalin, muna amfani da soket ɗin 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;
    }
}

Adana fayil ɗin kuma rufe shi.

Sannan duba tsarin daidaita NGINX don daidaito, idan yayi Ok, kunna sabon aikin kamar yadda aka nuna:

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

Sannan sake kunna sabis na NGINX don amfani da sababbin canje-canje:

$ sudo systemctl restart nginx

Koma zuwa burauzar gidan yanar gizonku ku yi tafiya tare da sunan yankinku.

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

Aƙarshe, kuna buƙatar kunna HTTPS akan gidan yanar gizonku. Kuna iya amfani da kyauta Bari En Encrypt SSL/TLS takardar shaidar (wanda aka sarrafa ta atomatik kuma ya gane ta duk masu bincike na gidan yanar gizo na zamani) ko kuma sami takardar sheda daga CA na kasuwanci.

Idan ka yanke shawarar amfani da takardar shedar bari ta Encrypt, ana iya shigar da ita ta atomatik tare da daidaita ta ta amfani da kayan aikin certbot. Don shigar da certbot, kuna buƙatar shigar da snapd don shigar da shi.

$ sudo snap install --classic certbot

Don haka yi amfani da certbot don samun da kafa/saita takaddun shaidar SSL/TLS na kyauta don amfani tare da sabar yanar gizo NGINX (samar da ingantaccen imel don sabuntawa kuma bi tsokana don kammala shigarwa):

$ sudo certbot --nginx

Yanzu je kan burauzar yanar gizonku sau ɗaya don tabbatar da cewa aikace-aikacenku na Yii yana gudana a kan HTTPS (ku tuna HTTP ya kamata ta atomatik ta tura zuwa HTTPS).

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

Don ƙarin bayani kamar haɗa aikace-aikacenku zuwa bayanan bayanai, duba takaddun tsarin Yii daga gidan yanar gizon aikin Yii. Gwada shi kuma ka raba abubuwan da kake tunani game da Yii ko yi kowace tambaya ta hanyar hanyar bayar da martani a ƙasa.