CentOS 8 இல் Yii PHP கட்டமைப்பை எவ்வாறு நிறுவுவது


நவீன வலை பயன்பாடுகளை விரைவாக உருவாக்குவதற்கான திறந்த மூல, உயர் செயல்திறன், நெகிழ்வான, திறமையான மற்றும் பாதுகாப்பான PHP கட்டமைப்பாகும். இது ஒரு பொருள் சார்ந்த பாணியில் குறியீட்டை எழுதுவதற்கான பொதுவான மற்றும் முழு-அடுக்கு வலை நிரலாக்க கட்டமைப்பாகும் மற்றும் பல நிரூபிக்கப்பட்ட மற்றும் பயன்படுத்த தயாராக உள்ள அம்சங்களை வழங்குகிறது. திடமான மற்றும் பாதுகாப்பான குறியீட்டை எழுத உதவும் பல நியாயமான இயல்புநிலைகள் மற்றும் உள்ளமைக்கப்பட்ட கருவிகளுடன் இது வருகிறது.

யியின் சில முக்கிய அம்சங்கள் இங்கே:

  • தூய OOP- அடிப்படையிலான கட்டமைப்பு.
  • ஒரு கூறு அடிப்படையிலான கட்டமைப்பு.
  • எம்.வி.சி (மாடல்-வியூ-கன்ட்ரோலர்) கட்டடக்கலை வடிவத்தை செயல்படுத்துகிறது.
  • தொடர்புடைய மற்றும் NoSQL தரவுத்தளங்களுக்கான வினவல் உருவாக்குநர்கள் மற்றும் ActiveRecord ஐ ஆதரிக்கிறது.
  • பல அடுக்கு கேச்சிங் ஆதரவு.
  • RESTful API மேம்பாட்டு ஆதரவு.
  • எந்தவொரு குறியீட்டையும் மையத்திலிருந்து தனிப்பயனாக்க அல்லது மாற்ற பயனர்களை அனுமதிப்பது மிகவும் விரிவானது. தவிர, பயனர்கள் மறுபங்கீடு செய்யக்கூடிய நீட்டிப்புகளைப் பயன்படுத்தலாம் அல்லது உருவாக்கலாம்.

Yii 2.0 என்பது தற்போதைய தலைமுறை கட்டமைப்பாகும் (எழுதும் நேரத்தில்) இது PHP 5.4.0 அல்லது அதற்கு மேல் தேவைப்படுகிறது, ஆனால் PHP 7 இன் சமீபத்திய பதிப்பில் சிறப்பாக இயங்குகிறது. இது இசையமைப்பாளர், பி.எஸ்.ஆர் உள்ளிட்ட சில சமீபத்திய வலை தொழில்நுட்பங்கள் மற்றும் நெறிமுறைகளை ஆதரிக்கிறது. , பெயர்வெளிகள், பண்புகள் மற்றும் பிற.

அதன் குறிப்பிடத்தக்க அம்சங்களுடன் இணைந்து பொதுவான வலை அபிவிருத்தி கட்டமைப்பாக இருப்பதால், பயனர்/நிர்வாக போர்ட்டல்கள், மன்றங்கள், உள்ளடக்க மேலாண்மை அமைப்புகள் (சிஎம்எஸ்), மின் வணிகம் திட்டங்கள், ரெஸ்ட்ஃபுல் வலை சேவைகள், மற்றும் பெரிய அளவில் அதிகம்.

  1. CentOS 8 சேவையகத்தின் இயங்கும் நிகழ்வு.
  2. PHP 5.4.0 அல்லது அதற்கு மேற்பட்ட LEMP அடுக்கு.
  3. ஒரு இசையமைப்பாளர் - PHP க்கான பயன்பாட்டு-நிலை தொகுப்பு மேலாளர்.

இந்த கட்டுரையில், Yii ஐப் பயன்படுத்தி PHP பயன்பாடுகளை உருவாக்கத் தொடங்க ஒரு CentOS 8 சேவையகத்தில் Yii PHP கட்டமைப்பை எவ்வாறு நிறுவுவது என்பதைக் காண்பிப்போம்.

இசையமைப்பாளரைப் பயன்படுத்தி Yii ஐ நிறுவுகிறது

Yii ஐ நிறுவ பல வழிகள் உள்ளன, ஆனால் Yii ஐ நிறுவ பரிந்துரைக்கப்பட்ட வழி இசையமைப்பாளர் தொகுப்பு நிர்வாகியைப் பயன்படுத்துகிறது, ஏனெனில் இது Yii ஐ ஒரே கட்டளையுடன் புதுப்பிக்க உங்களை அனுமதிக்கிறது, மேலும் புதிய நீட்டிப்புகளை நிறுவவும் இது உங்களுக்கு உதவுகிறது.

உங்கள் CentOS 8 சேவையகத்தில் நீங்கள் ஏற்கனவே இசையமைப்பாளரை நிறுவவில்லை என்றால், பின்வரும் கட்டளைகளை இயக்குவதன் மூலம் அதை நிறுவலாம்.

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

இசையமைப்பாளர் நிறுவப்பட்டவுடன், நீங்கள் ஒரு அப்பாச்சி அல்லது என்ஜினெக்ஸ் வலை அணுகக்கூடிய கோப்பகத்தின் கீழ் testapp எனப்படும் Yii பயன்பாட்டு வார்ப்புருவின் சமீபத்திய நிலையான பதிப்பை நிறுவலாம். நீங்கள் விரும்பினால் வேறு அடைவு பெயரைத் தேர்ந்தெடுக்கலாம்.

# 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

நிறுவல் முடிந்ததும், உங்கள் வலை சேவையகத்தை உள்ளமைக்கவும் (அடுத்த பகுதியைப் பார்க்கவும்) அல்லது testapp திட்ட ரூட் கோப்பகத்தில் பின்வரும் கட்டளையை செயல்படுத்துவதன் மூலம் ஒருங்கிணைந்த PHP வலை சேவையகத்தைப் பயன்படுத்தவும்.

# cd testapp
# php yii serve

குறிப்பு: இயல்பாக, HTTP- சேவையகம் போர்ட் 8080 ஐக் கேட்கும். இருப்பினும், அந்த போர்ட் ஏற்கனவே பயன்பாட்டில் இருந்தால், காட்டப்பட்டுள்ளபடி --port வாதத்தைச் சேர்ப்பதன் மூலம் வெவ்வேறு துறைமுகத்தைப் பயன்படுத்தலாம்.

# php yii serve --port=8888

இப்போது, உங்கள் உலாவியைத் திறந்து நிறுவப்பட்ட Yii பயன்பாட்டை அணுக பின்வரும் URL ஐ தட்டச்சு செய்க.

http://localhost:8888

Yii க்கான வலை சேவையகங்களை உள்ளமைக்கிறது

ஒரு தயாரிப்பு சேவையகத்தில், http:// க்கு பதிலாக http://www.example.com/index.php என்ற URL வழியாக Yii வலை பயன்பாட்டிற்கு சேவை செய்ய உங்கள் வலை சேவையகத்தை உள்ளமைக்க விரும்பலாம். www.example.com/basic/testapp/index.php . அவ்வாறான நிலையில், உங்கள் வலை சேவையக ஆவண மூலத்தை testapp/web கோப்பகத்தில் சுட்டிக்காட்ட வேண்டும்.

/Etc/nginx/conf.d/testapp.conf எனப்படும் உள்ளமைவு கோப்பை உருவாக்கவும்.

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

அடுத்து, பின்வரும் கட்டமைப்பை அதில் நகலெடுத்து ஒட்டவும். tecmintapp.lan ஐ உங்கள் டொமைன் பெயருடன் மாற்றவும், /usr/share/nginx/html/testapp/web ஐ உங்கள் பயன்பாட்டு கோப்புகள் அமைந்துள்ள பாதையுடன் மாற்றவும்.

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

சமீபத்திய மாற்றங்களைச் செயல்படுத்த கோப்பைச் சேமித்து Nginx ஐ மறுதொடக்கம் செய்யுங்கள்.

# systemctl restart nginx

அப்பாச்சியின் httpd.conf கோப்பில் அல்லது மெய்நிகர் ஹோஸ்ட் உள்ளமைவுக்குள் பின்வரும் உள்ளமைவைப் பயன்படுத்தவும்.

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

சமீபத்திய மாற்றங்களைச் செயல்படுத்த கோப்பைச் சேமித்து அப்பாச்சியை மறுதொடக்கம் செய்யுங்கள்.

# systemctl restart httpd

ஒரு உலாவி வழியாக Yii வலை பயன்பாட்டை சோதிக்கிறது

எங்கள் Yii வலை பயன்பாட்டை சோதிக்கும் முன், பின்வரும் கட்டளையை இயக்குவதன் மூலம், வலை செயல்முறைக்கு எழுதக்கூடியதாக மாற்ற /web/assets/ கோப்பகத்தின் பாதுகாப்பு சூழலைப் புதுப்பிப்பதை உறுதிசெய்க.

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

அடுத்து, ஃபயர்வால் வழியாக HTTP மற்றும் HTTPS கோரிக்கைகளை Nginx சேவையகத்திற்கு அனுமதிக்க உங்கள் ஃபயர்வால்ட் விதிகளைப் புதுப்பிக்கவும்.

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

இறுதியாக, உங்கள் வலை பயன்பாடு நன்றாக வேலை செய்கிறதா மற்றும் Nginx அல்லது Apache ஆல் வழங்கப்படுகிறதா என்று சோதிக்கவும். வலை உலாவியைத் திறந்து பின்வரும் முகவரிக்கு சுட்டிக்காட்டவும்:

http://tecmintapp.lan 

இயல்புநிலை Yii பயன்பாட்டு வலைப்பக்கம் பின்வரும் ஸ்கிரீன்ஷாட்டில் காட்டப்பட்டுள்ளபடி காட்டப்படும்.

வாழ்த்துக்கள்! நீங்கள் Yii PHP கட்டமைப்பின் சமீபத்திய தலைமுறையை வெற்றிகரமாக நிறுவியுள்ளீர்கள், மேலும் CentOS 8 இல் Nginx அல்லது Apache உடன் பணிபுரியும்படி கட்டமைத்துள்ளீர்கள்.

மேலும் தகவலுக்கு மற்றும் உங்கள் வலை பயன்பாட்டை உருவாக்க Yii ஐ எவ்வாறு பயன்படுத்துவது என்பதை அறிய, Yii உறுதியான வழிகாட்டியைப் பார்க்கவும்.