Bii o ṣe le Fi Framework YP PHI sori ẹrọ lori CentOS 8


Yii jẹ orisun-ṣiṣi, iṣẹ ṣiṣe giga, rirọ, ṣiṣe ati aabo ilana PHP fun yiyara awọn ohun elo Wẹẹbu igbalode ni kiakia. O jẹ ilana siseto wẹẹbu jeneriki ati akopọ ni kikun fun koodu kikọ ni aṣa ohun-elo ati pese ọpọlọpọ awọn ẹya ti a fihan ati imurasilẹ lati lo. O wa pẹlu nọmba ti awọn aiyipada deede ati awọn irinṣẹ ti a ṣe sinu rẹ ti o ṣe iranlọwọ fun ọ lati kọ koodu to lagbara ati aabo.

Eyi ni diẹ ninu awọn ẹya bọtini Yii:

  • Ilana ipilẹ OOP mimọ.
  • Ẹya-orisun paati.
  • N ṣe apẹẹrẹ MVC (Oluṣakoso-Wo-Adarí) apẹẹrẹ ayaworan.
  • Ṣe atilẹyin awọn akọle ibeere ati ActiveRecord fun ibatan mejeeji ati awọn apoti isura infomesonu NoSQL.
  • Atilẹyin caching ọpọ-ipele.
  • Atilẹyin idagbasoke idagbasoke API.
  • O jẹ lalailopinpin extensible gbigba awọn olumulo laaye lati ṣe akanṣe tabi rọpo eyikeyi nkan ti koodu si ọtun lati ipilẹ. Yato si, awọn olumulo le lo tabi dagbasoke awọn amugbooro redistributable.

Yii 2.0 ni iran lọwọlọwọ ti ilana (ni akoko kikọ) eyiti o nilo PHP 5.4.0 tabi loke ṣugbọn o nṣiṣẹ dara julọ pẹlu ẹya tuntun ti PHP 7. O ṣe atilẹyin diẹ ninu awọn imọ-ẹrọ Wẹẹbu tuntun ati awọn ilana, pẹlu Olupilẹṣẹ iwe, PSR , awọn aye orukọ, awọn iwa, ati awọn miiran.

Jije ilana idagbasoke idagbasoke wẹẹbu jeneriki ni apapo pẹlu awọn ẹya pataki rẹ, Yii le ṣee lo lati ṣe agbekalẹ fere eyikeyi iru awọn ohun elo Wẹẹbu lati awọn ọna ẹrọ olumulo/abojuto, awọn apejọ, awọn eto iṣakoso akoonu (CMS), si awọn iṣẹ akanṣe e-commerce, Awọn iṣẹ Wẹẹbu RESTful, ati pupọ diẹ sii ni ipele nla.

  1. Apẹẹrẹ ti nṣiṣẹ ti olupin CentOS 8.
  2. A akopọ LEMP pẹlu PHP 5.4.0 tabi loke.
  3. Olupilẹṣẹ iwe-oluṣakoso ohun elo ipele-ipele fun PHP.

Ninu nkan yii, a yoo fi ọ han bi o ṣe le fi ilana Yii PHP sori ẹrọ lori olupin CentOS 8 lati bẹrẹ idagbasoke awọn ohun elo PHP nipa lilo Yii.

Fifi Yii Lilo Olupilẹṣẹ iwe

Awọn ọna pupọ lo wa lati fi sori ẹrọ Yii, ṣugbọn ọna ti a ṣe iṣeduro lati fi sori ẹrọ Yii ni lilo oluṣakoso package Olupilẹṣẹ, bi o ṣe gba ọ laaye lati ṣe imudojuiwọn Yii pẹlu aṣẹ kan ati pe o tun jẹ ki o fi awọn amugbooro tuntun sori ẹrọ.

Ti o ko ba ti fi Olupilẹṣẹ sii sori olupin CentOS 8 rẹ, o le fi sii nipasẹ ṣiṣe awọn ofin wọnyi.

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

Pẹlu Olupilẹṣẹ ti a fi sii, o le fi ẹya idurosinsin tuntun ti awoṣe ohun elo Yii sii labẹ Apache kan tabi itọsọna Wiwọle Wẹẹbu Nginx ti a pe ni testapp . O le yan orukọ itọsọna miiran ti o ba fẹ.

# 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

Lẹhin fifi sori ẹrọ ti pari, boya tunto olupin wẹẹbu rẹ (wo abala atẹle) tabi lo olupin wẹẹbu PHP ti a ṣepọ nipasẹ ṣiṣe pipaṣẹ wọnyi ni testapp itọsọna gbongbo iṣẹ.

# cd testapp
# php yii serve

Akiyesi: Nipa aiyipada, HTTP-olupin yoo tẹtisi ibudo 8080. Sibẹsibẹ, ti ibudo yẹn ba ti wa tẹlẹ, o le lo ibudo oriṣiriṣi nipasẹ fifi kun --port ariyanjiyan bi o ti han.

# php yii serve --port=8888

Bayi, ṣii ẹrọ aṣawakiri rẹ ki o tẹ URL atẹle lati wọle si ohun elo Yii ti a fi sii.

http://localhost:8888

Tito leto Awọn olupin Wẹẹbu fun Yii

Lori olupin iṣelọpọ, o le fẹ tunto olupin rẹ lati sin ohun elo wẹẹbu Yii nipasẹ URL http://www.example.com/index.php dipo http:// www.example.com/basic/testapp/index.php . Ni ọran yẹn, o gbọdọ tọka gbongbo iwe-ipamọ olupin ayelujara rẹ si itọsọna testapp/wẹẹbu .

Ṣẹda faili iṣeto kan ti a pe /etc/nginx/conf.d/testapp.conf.

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

Nigbamii, daakọ ati lẹẹ iṣeto ni atẹle ninu rẹ. Ranti lati ropo tecmintapp.lan pẹlu orukọ ibugbe rẹ ati /usr/share/nginx/html/testapp/web pẹlu ọna ti awọn faili ohun elo rẹ wa.

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;
    }
}

Fipamọ faili naa ki o tun bẹrẹ Nginx lati ṣe awọn ayipada to ṣẹṣẹ.

# systemctl restart nginx

Lo iṣeto ni atẹle ni faili httpd.conf ti Apache tabi laarin iṣeto ogun alejo gbigba kan.

# 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>

Fipamọ faili naa ki o tun bẹrẹ Apache lati ṣe awọn ayipada to ṣẹṣẹ.

# systemctl restart httpd

Idanwo Yii Ohun elo Wẹẹbu Nipasẹ Ẹrọ aṣawakiri kan

Ṣaaju idanwo ohun elo wẹẹbu Yii wa rii daju lati ṣe imudojuiwọn ipo aabo ti itọsọna /wẹẹbu/ohun-ini/ lati jẹ ki o kọ si ilana wẹẹbu, nipa ṣiṣe pipaṣẹ atẹle.

# 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] 

Nigbamii, ṣe imudojuiwọn awọn ofin ina rẹ lati gba HTTP ati awọn ibeere HTTPS nipasẹ ogiriina si olupin Nginx.

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

Lakotan, ṣe idanwo ti ohun elo wẹẹbu rẹ ba ṣiṣẹ daradara ati pe Nginx tabi Apache n ṣiṣẹ. Ṣii aṣawakiri wẹẹbu kan ki o tọka si adirẹsi atẹle:

http://tecmintapp.lan 

Oju-iwe wẹẹbu ohun elo Yii aiyipada yẹ ki o han bi o ṣe han ninu sikirinifoto atẹle.

Oriire! O ti ṣaṣeyọri ti fi iran tuntun ti ilana YPi PHP sori ẹrọ ati tunto rẹ lati ṣiṣẹ pẹlu Nginx tabi Apache lori CentOS 8.

Fun alaye diẹ sii ati bii o ṣe le bẹrẹ lilo Yii fun kikọ ohun elo wẹẹbu rẹ, wo itọsọna pipe Yii.