ວິທີຕິດຕັ້ງກອບ Yii PHP ໃນ CentOS 8


Yii ແມ່ນໂປແກຼມເປີດໂປແກຼມ open-source, ມີປະສິດຕິພາບສູງ, ມີຄວາມຍືດຫຍຸ່ນ, ມີປະສິດຕິພາບແລະປອດໄພ ສຳ ລັບການສ້າງໂປແກຼມ Web ທີ່ທັນສະ ໄໝ. ມັນແມ່ນໂຄງຮ່າງການຂຽນໂປແກຼມເວັບແບບທົ່ວໄປແລະເຕັມຮູບແບບ ສຳ ລັບການຂຽນລະຫັດໃນແບບທີ່ມີຈຸດປະສົງແລະມີຫລາຍລັກສະນະທີ່ພິສູດແລ້ວແລະພ້ອມທີ່ຈະ ນຳ ໃຊ້. ມັນມາພ້ອມກັບຫລາຍໆຕົວຢ່າງທີ່ສົມເຫດສົມຜົນແລະເຄື່ອງມືທີ່ຕິດຕັ້ງທີ່ຊ່ວຍໃຫ້ທ່ານຂຽນລະຫັດທີ່ແຂງແລະປອດໄພ.

ນີ້ແມ່ນບາງລັກສະນະ ສຳ ຄັນຂອງ Yii:

  • ກອບທີ່ອີງໃສ່ OOP ບໍລິສຸດ.
  • ສະຖາປັດຕະຍະ ກຳ ທີ່ອີງໃສ່ສ່ວນປະກອບ.
  • ປະຕິບັດຕາມແບບສະຖາປັດຕະຍະ ກຳ MVC (Model-View-Controller).
  • ສະ ໜັບ ສະ ໜູນ ຜູ້ສ້າງແບບສອບຖາມແລະ ActiveRecord ສຳ ລັບຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງແລະ NoSQL.
  • ສະ ໜັບ ສະ ໜູນ ການ ນຳ ໃຊ້ຖານຄວາມ ຈຳ ຫຼາຍຊັ້ນ.
  • ສະ ໜັບ ສະ ໜູນ ການພັດທະນາ API ທີ່ດີທີ່ສຸດ.
  • ມັນສາມາດຂະຫຍາຍໄດ້ຫຼາຍທີ່ສຸດເຊິ່ງຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດປັບແຕ່ງຫຼືປ່ຽນແທນລະຫັດໃດໆຈາກຫຼັກ. ນອກຈາກນີ້, ຜູ້ໃຊ້ສາມາດ ນຳ ໃຊ້ຫຼືພັດທະນາການແຈກຢາຍທີ່ສາມາດແຈກຢາຍໄດ້.

Yii 2.0 ແມ່ນລຸ້ນປັດຈຸບັນຂອງກອບ (ໃນເວລາຂຽນ) ເຊິ່ງຮຽກຮ້ອງໃຫ້ໃຊ້ PHP 5.4.0 ຫຼືສູງກວ່າແຕ່ໃຊ້ໄດ້ດີທີ່ສຸດກັບ PHP ລຸ້ນລ້າສຸດ 7. ມັນຮອງຮັບບາງເຕັກໂນໂລຢີແລະໂປໂຕຄອນ ໃໝ່ ຫຼ້າສຸດ, ລວມທັງ Composer, PSR , namespaces, ລັກສະນະ, ແລະອື່ນໆ.

ເປັນໂຄງຮ່າງການພັດທະນາເວບໄຊທ໌ທົ່ວໄປໂດຍສົມທົບກັບຄຸນລັກສະນະທີ່ ສຳ ຄັນ, Yii ສາມາດຖືກ ນຳ ໃຊ້ເພື່ອພັດທະນາໂປແກຼມ Web ເກືອບທຸກປະເພດຈາກຜູ້ ນຳ ໃຊ້/admin, ປະຕູ, ລະບົບບໍລິຫານເນື້ອຫາ (CMS), ໄປສູ່ໂຄງການການຄ້າທາງອີເລັກໂທຣນິກ, ບໍລິການເວັບທີ່ດີທີ່ສຸດ, ແລະມີຫຼາຍຂະ ໜາດ ໃຫຍ່.

<

  • ຕົວຢ່າງທີ່ໃຊ້ງານຂອງເຊີບເວີ CentOS 8.
  • ຊຸດ LAMP ຫຼື LEMP ທີ່ມີ PHP 5.4.0 ຂຶ້ນໄປ.
  • ເຄື່ອງປະກອບຂໍ້ມູນ - ເປັນຜູ້ຈັດການລະດັບໂປແກຼມ ສຳ ລັບ PHP.
  • ໃນບົດຂຽນນີ້, ພວກເຮົາຈະສະແດງວິທີການຕິດຕັ້ງກອບ Yii PHP ເທິງເຊີຟເວີ CentOS 8 ເພື່ອເລີ່ມຕົ້ນພັດທະນາໂປແກຼມ PHP ໂດຍໃຊ້ Yii.

    ການຕິດຕັ້ງ Yii ໂດຍໃຊ້ Composer

    ມີຫລາຍວິທີໃນການຕິດຕັ້ງ Yii, ແຕ່ວິທີທີ່ແນະ ນຳ ໃນການຕິດຕັ້ງ Yii ແມ່ນການ ນຳ ໃຊ້ຜູ້ຈັດການຊຸດ Composer, ເພາະມັນຊ່ວຍໃຫ້ທ່ານສາມາດອັບເດດ Yii ດ້ວຍ ຄຳ ສັ່ງດຽວແລະຍັງຊ່ວຍໃຫ້ທ່ານສາມາດຕິດຕັ້ງສ່ວນຂະຫຍາຍ ໃໝ່ ໄດ້.

    ຖ້າທ່ານບໍ່ໄດ້ຕິດຕັ້ງ Composer ຢູ່ໃນເຊີບເວີ CentOS 8 ຂອງທ່ານ, ທ່ານສາມາດຕິດຕັ້ງມັນໂດຍການເຮັດວຽກຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

    ດ້ວຍການຕິດຕັ້ງຄອມພິວເຕີ້ຄອມພິວເຕີ້, ທ່ານສາມາດຕິດຕັ້ງໂປແກຼມ ນຳ ໃຊ້ Yii ແບບ ໃໝ່ ທີ່ມີຄວາມ ໝັ້ນ ຄົງທີ່ສຸດພາຍໃຕ້ໄດເລກະທໍລີທີ່ສາມາດເຂົ້າເຖິງ Apache ຫຼື Nginx Web ທີ່ເອີ້ນວ່າ testapp . ທ່ານສາມາດເລືອກຊື່ໄດເລກະທໍລີທີ່ແຕກຕ່າງກັນຖ້າທ່ານຕ້ອງການ.

    # 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
    

    ຫຼັງຈາກການຕິດຕັ້ງ ສຳ ເລັດແລ້ວ, ທ່ານສາມາດຕັ້ງຄ່າ server server ຂອງທ່ານ (ເບິ່ງພາກຕໍ່ໄປ) ຫຼື ນຳ ໃຊ້ server web PHP ແບບປະສົມປະສານໂດຍປະຕິບັດ ຄຳ ສັ່ງຕໍ່ໄປນີ້ໃນລະບົບຮາກຖານຂໍ້ມູນໂຄງການ.

    # cd testapp
    # php yii serve
    

    ໝາຍ ເຫດ: ໂດຍຄ່າເລີ່ມຕົ້ນ, HTTP-server ຈະຟັງ port 8080. ເຖິງຢ່າງໃດກໍ່ຕາມ, ຖ້າ port ນັ້ນໃຊ້ຢູ່ແລ້ວ, ທ່ານສາມາດໃຊ້ພອດຕ່າງກັນໄດ້ໂດຍການເພີ່ມ --port ການໂຕ້ຖຽງດັ່ງທີ່ສະແດງ.

    # php yii serve --port=8888
    

    ຕອນນີ້, ເປີດຕົວທ່ອງເວັບຂອງທ່ານແລະພິມ URL ຕໍ່ໄປນີ້ເພື່ອເຂົ້າຫາໂປແກຼມ Yii ທີ່ຖືກຕິດຕັ້ງ.

    http://localhost:8888
    

    ການຕັ້ງຄ່າເຄື່ອງແມ່ຂ່າຍເວັບ ສຳ ລັບ Yii

    ໃນເຄື່ອງແມ່ຂ່າຍການຜະລິດ, ທ່ານອາດຈະຕ້ອງການ ກຳ ຫນົດຄ່າເວັບໄຊທ໌້ຂອງທ່ານເພື່ອຮັບໃຊ້ໂປແກຼມ Yii ເວັບຜ່ານ URL http://www.example.com/index.php ແທນ http:/www.example.com/basic/testapp/index.php . ໃນກໍລະນີດັ່ງກ່າວ, ທ່ານຕ້ອງຊີ້ໃຫ້ເອກະສານເຊີຟເວີເວັບຂອງທ່ານຢູ່ຮາກໄປຫາໄດເລກະທໍລີ /web .

    ສ້າງເອກະສານການຕັ້ງຄ່າທີ່ເອີ້ນວ່າ /etc/nginx/conf.d/testapp.conf.

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

    ຕໍ່ໄປ, ຄັດລອກແລະວາງການຕັ້ງຄ່າຕໍ່ໄປນີ້ໃນມັນ. ຢ່າລືມທີ່ຈະປ່ຽນ tecmintapp.lan ດ້ວຍຊື່ໂດເມນຂອງທ່ານແລະ /usr/share/nginx/html/testapp/web ດ້ວຍເສັ້ນທາງທີ່ໄຟລ໌ແອັບ app ຂອງທ່ານຕັ້ງຢູ່.

    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 ຂອງ Apache ຫຼືພາຍໃນການຕັ້ງຄ່າໂຮດຕິ້ງເສມືນ.

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

    ບັນທຶກເອກະສານດັ່ງກ່າວແລະເລີ່ມຕົ້ນ Apache ຄືນ ໃໝ່ ເພື່ອສົ່ງຜົນຕໍ່ການປ່ຽນແປງທີ່ຜ່ານມາ.

    # systemctl restart httpd
    

    ການທົດສອບ Yii Web Application ຜ່ານ Browser

    ກ່ອນທີ່ຈະທົດສອບການ ນຳ ໃຊ້ Yii ຂອງເວັບໄຊທ໌ຂອງພວກເຮົາ, ໃຫ້ແນ່ໃຈວ່າຈະປັບປຸງສະພາບການຄວາມປອດໄພຂອງໄດເລກະທໍລີ /ເວັບໄຊຕ໌/ຊັບສິນ/ ເພື່ອເຮັດໃຫ້ມັນສາມາດຂຽນໄດ້ ສຳ ລັບຂະບວນການຂອງເວັບ, ໂດຍການເຮັດວຽກຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

    ຕໍ່ໄປ, ປັບປຸງກົດລະບຽບ firewalld ຂອງທ່ານເພື່ອອະນຸຍາດໃຫ້ການຮ້ອງຂໍ HTTP ແລະ HTTPS ຜ່ານ firewall ກັບ server 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 ລຸ້ນ ໃໝ່ ລ້າສຸດຢ່າງສົມບູນແລະໄດ້ຕັ້ງຄ່າມັນເພື່ອເຮັດວຽກກັບ Nginx ຫຼື Apache ໃນ CentOS 8.

    ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມແລະວິທີການເລີ່ມຕົ້ນການ ນຳ ໃຊ້ Yii ສຳ ລັບການສ້າງໂປແກຼມ ນຳ ໃຊ້ເວັບຂອງທ່ານ, ໃຫ້ເບິ່ງ ຄຳ ແນະ ນຳ ທີ່ແນ່ນອນຂອງ Yii.