Kā instalēt Yii PHP ietvaru CentOS 8


Yii ir atvērtā koda, augstas veiktspējas, elastīga, efektīva un droša PHP sistēma, lai ātri izveidotu modernas tīmekļa lietojumprogrammas. Tas ir vispārējs un pilnas kaudzes tīmekļa programmēšanas ietvars koda rakstīšanai objektorientētā veidā un nodrošina daudzas pārbaudītas un lietošanai gatavas funkcijas. Tas nāk ar vairākiem saprātīgiem noklusējumiem un iebūvētiem rīkiem, kas palīdz rakstīt stabilu un drošu kodu.

Šeit ir dažas galvenās Yii iezīmes:

  • Tīrs OOP balstīts ietvars.
  • Uz komponentiem balstīta arhitektūra.
  • Īsteno MVC (Model-View-Controller) arhitektūras modeli.
  • Atbalsta vaicājumu veidotājus un ActiveRecord gan relāciju, gan NoSQL datu bāzēm.
  • Daudzpakāpju kešatmiņas atbalsts.
  • RESTful API izstrādes atbalsts.
  • Tas ir ārkārtīgi paplašināms, ļaujot lietotājiem pielāgot vai aizstāt jebkuru koda fragmentu jau pašā kodolā. Turklāt lietotāji var izmantot vai izstrādāt atkārtoti izplatāmus paplašinājumus.

Yii 2.0 ir pašreizējā ietvara paaudze (rakstīšanas laikā), kurai nepieciešama PHP 5.4.0 vai jaunāka versija, bet vislabāk darbojas ar jaunāko PHP 7 versiju. Tas atbalsta dažas no jaunākajām tīmekļa tehnoloģijām un protokoliem, tostarp Composer, PSR , nosaukumvietas, iezīmes un citi.

Būdams vispārējs tīmekļa izstrādes ietvars kopā ar tā nozīmīgajām funkcijām, Yii var izmantot, lai izstrādātu gandrīz jebkura veida tīmekļa lietojumprogrammas no lietotāju/administratoru portāliem, forumiem, satura pārvaldības sistēmām (CMS) līdz e-komercijas projektiem, RESTful tīmekļa pakalpojumiem, un vēl daudz vairāk plašā mērogā.

  1. CentOS 8 servera palaistā instance.
  2. LEMP kaudze ar PHP 5.4.0 vai jaunāku versiju.
  3. Komponists - PHP lietojumprogrammu līmeņa pakotņu pārvaldnieks.

Šajā rakstā mēs parādīsim, kā instalēt Yii PHP sistēmu CentOS 8 serverī, lai sāktu izstrādāt PHP lietojumprogrammas, izmantojot Yii.

Yii instalēšana, izmantojot komponistu

Ir vairāki veidi, kā instalēt Yii, taču ieteicamais Yii instalēšanas veids ir Composer pakotņu pārvaldnieka izmantošana, jo tas ļauj atjaunināt Yii ar vienu komandu, kā arī ļauj instalēt jaunus paplašinājumus.

Ja jūsu CentOS 8 serverī vēl nav instalēts Composer, varat to instalēt, izpildot šādas komandas.

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

Kad esat instalējis Composer, jaunāko stabilo Yii lietojumprogrammas veidnes versiju varat instalēt Apache vai Nginx Web pieejamā direktorijā ar nosaukumu testapp . Ja vēlaties, varat izvēlēties citu direktorijas nosaukumu.

# cd /var/www/html/      [Apache Root Directory]
OR
# cd /usr/share/nginx/html/   [Nginx Root Directory]
# composer create-project --prefer-dist yiisoft/yii2-app-basic testapp

Kad instalēšana ir pabeigta, vai nu konfigurējiet tīmekļa serveri (skatiet nākamo sadaļu), vai arī izmantojiet integrēto PHP tīmekļa serveri, izpildot šo komandu projekta testapp saknes direktorijā.

# cd testapp
# php yii serve

Piezīme: Pēc noklusējuma HTTP serveris klausās portu 8080. Tomēr, ja šis ports jau tiek izmantots, varat izmantot citu portu, pievienojot argumentu --port , kā parādīts.

# php yii serve --port=8888

Tagad atveriet pārlūkprogrammu un ierakstiet šo URL, lai piekļūtu instalētajai Yii lietojumprogrammai.

http://localhost:8888

Tīmekļa serveru konfigurēšana Yii

Ražošanas serverī, iespējams, vēlēsities konfigurēt savu tīmekļa serveri, lai tas apkalpotu Yii tīmekļa lietojumprogrammu, izmantojot URL http://www.example.com/index.php , nevis http:// www.example.com/basic/testapp/index.php . Tādā gadījumā jūsu tīmekļa servera dokumenta sakne jānorāda uz direktoriju testapp/web .

Izveidojiet konfigurācijas failu ar nosaukumu /etc/nginx/conf.d/testapp.conf.

# vi /etc/nginx/conf.d/testapp.conf

Pēc tam tajā nokopējiet un ielīmējiet šādu konfigurāciju. Neaizmirstiet aizstāt tecmintapp.lan ar sava domēna nosaukumu un /usr/share/nginx/html/testapp/web ar ceļu, kurā atrodas jūsu lietotnes faili.

server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

    server_name tecmintapp.lan;
    root        /usr/share/nginx/html/testapp/web;
    index       index.php;

    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log;

    location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php$is_args$args;
    }

    # uncomment to avoid processing of calls to non-existing static files by Yii
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;

    # deny accessing php files for the /assets directory
    location ~ ^/assets/.*\.php$ {
        deny all;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        try_files $uri =404;
    }

    location ~* /\. {
        deny all;
    }
}

Saglabājiet failu un restartējiet Nginx, lai veiktu pēdējās izmaiņas.

# systemctl restart nginx

Izmantojiet šo konfigurāciju Apache failā httpd.conf vai virtuālās resursdatora konfigurācijā.

# Set document root to be "testapp/web"
DocumentRoot "/var/www/html/testapp/web"

<Directory "/var/www/html/testapp/web">
    # use mod_rewrite for pretty URL support
    RewriteEngine on
    
    # if $showScriptName is false in UrlManager, do not allow accessing URLs with script name
    RewriteRule ^index.php/ - [L,R=404]
    
    # If a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    # Otherwise forward the request to index.php
    RewriteRule . index.php

    # ...other settings...
</Directory>

Saglabājiet failu un restartējiet Apache, lai veiktu pēdējās izmaiņas.

# systemctl restart httpd

Yii tīmekļa lietojumprogrammas testēšana, izmantojot pārlūku

Pirms pārbaudāt mūsu Yii tīmekļa lietojumprogrammu, palaidiet šādu komandu, atjauniniet direktorija /web/assets/ drošības kontekstu, lai padarītu to rakstāmu tīmekļa procesam.

# chcon -R -t httpd_sys_content_rw_t '/usr/share/nginx/html/testapp/web/assets/' [for Nginx]
# chcon -R -t httpd_sys_content_rw_t '/var/www/html/testapp/web/assets/'         [for Apache] 

Pēc tam atjauniniet ugunsmūra kārtulas, lai atļautu HTTP un HTTPS pieprasījumus caur ugunsmūri Nginx serverim.

# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --zone=public --add-service=https --permanent
# firewall-cmd --reload

Visbeidzot, pārbaudiet, vai jūsu tīmekļa lietojumprogramma darbojas labi un vai to apkalpo Nginx vai Apache. Atveriet tīmekļa pārlūku un norādiet uz šo adresi:

http://tecmintapp.lan 

Noklusējuma Yii lietojumprogrammas tīmekļa lapai jābūt parādītai, kā parādīts nākamajā ekrānuzņēmumā.

Apsveicam! Jūs esat veiksmīgi instalējis jaunākās paaudzes Yii PHP ietvaru un konfigurējis to darbam ar Nginx vai Apache CentOS 8.

Plašāku informāciju un to, kā sākt lietot Yii tīmekļa lietojumprogrammas veidošanai, skatiet Yii galīgajā rokasgrāmatā.