Giunsa ang Pag-install sa Laravel PHP Framework sa Nginx sa CentOS 8


Ang Laravel usa ka open-source, ilado, ug moderno nga PHP-based nga web framework nga adunay makapahayag, elegante, ug sayon sabton nga syntax nga makapasayon sa paghimo og dagko, lig-on nga mga aplikasyon sa web.

Ang mga yawe nga bahin niini naglakip sa usa ka yano, paspas nga pag-ruta nga makina, kusgan nga sulud sa pag-injection sa dependency, daghang mga back-end para sa sesyon ug pagtipig sa cache, ekspresyon ug intuitive nga database ORM (Object-relational Mapping), lig-on nga pagproseso sa trabaho sa background, ug real-time nga pag-broadcast sa panghitabo.

Usab, kini naggamit sa mga himan sama sa Composer - usa ka PHP package manager alang sa pagdumala sa mga dependency ug Artisan - usa ka command-line interface alang sa pagtukod ug pagdumala sa mga aplikasyon sa web.

Niini nga artikulo, mahibal-an nimo kung giunsa ang pag-install sa labing bag-ong bersyon sa Laravel PHP web framework sa pag-apod-apod sa CentOS 8 Linux.

Ang Laravel framework adunay mga mosunod nga kinahanglanon:

  • PHP >= 7.2.5 uban niining mga PHP extension nga OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype ug JSON.
  • Komposer – para sa pag-instalar ug pagdumala sa mga dependency.

Lakang 1: Pag-instalar sa LEMP Stack sa CentOS 8

1. Sa pagsugod, i-update ang mga pakete sa software sa sistema ug i-install ang LEMP stack (Linux, Nginx, MariaDB/MySQL, ug PHP) gamit ang mosunod nga dnf commands.

# dnf update
# dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Kung kompleto na ang pag-install sa LEMP, kinahanglan nimong sugdan ang mga serbisyo sa PHP-PFM, Nginx ug MariaDB gamit ang mosunod nga mga command systemctl.

# systemctl start php-fpm nginx mariadb
# systemctl enable php-fpm nginx mariadb
# systemctl status php-fpm nginx mariadb

3. Sunod, kinahanglan nimo nga luwason ug patig-a ang makina sa database sa MariaDB gamit ang script sa seguridad sama sa gipakita.

# mysql_secure_installation

Tubaga ang mosunod nga mga pangutana aron masiguro ang pag-instalar sa server.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4. Kung ikaw adunay firewalld nga serbisyo nga nagdagan, kinahanglan nimo nga ablihan ang HTTP ug HTTPS nga serbisyo sa firewall aron mahimo ang mga hangyo sa kliyente sa Nginx web server.

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

5. Sa katapusan, mahimo nimong kumpirmahon nga ang imong LEMP stack nagdagan gamit ang usa ka browser sa IP address sa imong sistema.

http://server-IP

Lakang 2: Pag-configure ug Pagsiguro sa PHP-FPM ug Nginx

6. Aron maproseso ang mga hangyo gikan sa Nginx web server, ang PHP-FPM mahimong maminaw sa Unix socket o TCP socket ug kini gihubit sa listen parameter sa /etc/php-fpm.d/www.conf configuration file.

# vi /etc/php-fpm.d/www.conf

Sa kasagaran, kini gi-configure aron maminaw sa usa ka Unix socket sama sa gipakita sa mosunod nga screenshot. Ang bili dinhi itakda sa Nginx server block file sa ulahi.

7. Kung naggamit ug Unix socket, kinahanglan usab nimo nga itakda ang husto nga pagpanag-iya ug mga pagtugot niini sama sa gipakita sa screenshot. I-uncomment ang mga mosunud nga mga parameter ug itakda ang ilang mga kantidad sa user ug grupo aron ipahiangay ang user ug ang grupo nga Nginx nagdagan ingon.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. Sunod, i-set usab ang system-wide time zone sa /etc/php.ini configuration file.

# vi /etc/php.ini

Pangitaa ang linya \;date.timezone” ug i-uncomment kini, dayon itakda ang bili niini sama sa gipakita sa screenshot (gamita ang mga bili nga magamit sa imong rehiyon/kontinente ug nasud).

 
date.timezone = Africa/Kampala

9. Aron maminusan ang risgo sa Nginx nga mopasa sa mga hangyo gikan sa mga malisyoso nga tiggamit nga naggamit sa ubang mga extension aron ipatuman ang PHP code ngadto sa PHP-FPM, uncomment ang mosunod nga parameter ug ibutang ang bili niini ngadto sa 0.

cgi.fix_pathinfo=1

10. Kalabot sa miagi nga punto, uncomment usab ang mosunod nga parameter sa /etc/php-fpm.d/www.conf file. Basaha ang komento para sa dugang katin-awan.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Lakang 3: Pag-instalar sa Composer ug Laravel PHP Framework

11. Sunod, i-install ang Composer package pinaagi sa pagpadagan sa mosunod nga mga sugo. Ang unang sugo nag-download sa installer, dayon nagpadagan niini gamit ang PHP.

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

12. Karon nga na-install na ang Composer, gamita kini aron ma-install ang Laravel files ug dependencies sama sa mosunod. Ilisan ang mysite.com sa ngalan sa direktoryo diin ang mga Laravel nga mga file itago, ang hingpit nga agianan (o gamut nga agianan sa Nginx configuration file) mao ang /var/www/html/mysite.com.

# cd /var/www/html/
# composer create-project --prefer-dist laravel/laravel mysite.com

Kung maayo ang tanan sa panahon sa proseso, ang aplikasyon kinahanglan nga ma-install nga malampuson ug usa ka yawe kinahanglan nga mamugna sama sa gipakita sa mosunod nga screenshot.

13. Atol sa proseso sa pag-instalar, ang .env environment file gimugna ug ang gikinahanglan nga aplikasyon nahimo usab, mao nga dili nimo kinahanglan nga mugnaon kini nga mano-mano sama kaniadto. Aron makumpirma kini, pagdagan ang usa ka taas nga lista sa direktoryo sa ugat sa laravel gamit ang ls nga mando.

# ls -la mysite.com/

14. Sunod, kinahanglan nimo nga i-configure ang husto nga pagpanag-iya ug mga pagtugot sa pagtipig ug ang mga bootstrap/cache nga mga direktoryo aron masulat sa Nginx web server.

# chown -R :nginx /var/www/html/mysite.com/storage/
# chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
# chmod -R 0777 /var/www/html/mysite.com/storage/
# chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. Kung gipagana ang SELinux sa imong server, kinahanglan nimo usab nga i-update ang konteksto sa seguridad sa mga direktoryo sa pagtipig ug bootstrap/cache.

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
# restorecon -Rv '/var/www/html/mysite.com'

Lakang 4: I-configure ang Nginx Server Block Para sa Laravel

16. Para makasugod ang Nginx sa pagserbisyo sa imong website o aplikasyon, kinahanglan nimo nga maghimo ug server block para niini sa .conf file ubos sa /etc/nginx/conf.d/ directory sama sa gipakita.

# vi /etc/nginx/conf.d/mysite.com.conf

Kopyaha ug idikit ang mosunod nga configuration sa file. Timan-i ang gamut ug fastcgi_pass nga mga parameter.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. I-save ang file ug susiha kung ang Nginx configuration syntax husto pinaagi sa pagdagan.

# nginx -t

18. Dayon i-restart ang PHP-FPM ug Nginx nga mga serbisyo alang sa bag-o nga mga pagbag-o aron matuman.

# systemctl restart php-fpm
# systemctl restart Nginx

Lakang 5: Pag-access sa Laravel Website gikan sa usa ka Web Browser

19. Aron ma-access ang website sa Laravel sa mysite.com, nga dili usa ka hingpit nga kwalipikado nga domain name (FQDN) ug wala kini rehistrado (gigamit lamang kini alang sa mga katuyoan sa pagsulay), among gamiton ang /etc/hosts file sa imong lokal nga makina sa paghimo sa lokal nga DNS.

Pagdalagan ang mosunod nga sugo aron idugang ang server IP address ug domain sa gikinahanglan nga file (ilisan ang bili sumala sa imong mga setting).

# ip add		#get remote server IP
$ echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. Sunod, ablihi ang usa ka web browser sa lokal nga makina ug gamita ang mosunod nga adres sa pag-navigate.

http://mysite.com

Malampuson nimong na-deploy ang Laravel sa CentOS 8. Makasugod ka na sa pag-develop sa imong website o web application gamit ang Laravel. Para sa dugang nga impormasyon, tan-awa ang Laravel Pagsugod nga giya.