Kā CentOS 8 instalēt Laravel PHP Framework ar Nginx


Laravel ir atvērtā koda, plaši pazīstams un mūsdienīgs PHP balstīts tīmekļa ietvars ar izteiksmīgu, elegantu un viegli saprotamu sintaksi, kas atvieglo lielu, izturīgu tīmekļa lietojumprogrammu izveidi.

Tās galvenās iezīmes ir vienkāršs, ātrs maršrutēšanas dzinējs, jaudīgs atkarības iesmidzināšanas konteiners, vairākas sesiju un kešatmiņas glabāšanas vietas, izteiksmīga un intuitīva ORM datu bāze (Object-relational Mapping), efektīva darba fona apstrāde un reāllaika notikumu apraide.

Tas arī izmanto tādus rīkus kā Composer - PHP pakotņu pārvaldnieks atkarību pārvaldīšanai un Artisan - komandrindas interfeisu tīmekļa lietojumprogrammu veidošanai un pārvaldībai.

Šajā rakstā uzzināsiet, kā CentOS 8 Linux izplatīšanā instalēt jaunāko Laravel PHP tīmekļa ietvara versiju.

Laravel ietvaram ir šādas prasības:

  • PHP> = 7.2.5 ar šiem PHP paplašinājumiem OpenSSL, ACVN, Mbstring, Tokenizer, XML, Ctype un JSON.
  • Komponists - atkarību instalēšanai un pārvaldīšanai.

1. darbība: LEMP skursteņa instalēšana CentOS 8

1. Lai sāktu, atjauniniet sistēmas programmatūras pakotnes un instalējiet LEMP skursteni (Linux, Nginx, MariaDB/MySQL un PHP), izmantojot šādas dnf komandas.

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

2. Kad LEMP instalēšana ir pabeigta, jums jāuzsāk PHP-PFM, Nginx un MariaDB pakalpojumi, izmantojot šādas systemctl komandas.

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

3. Pēc tam jums jānostiprina un jānostiprina MariaDB datu bāzes dzinējs, izmantojot drošības skriptu, kā parādīts.

# mysql_secure_installation

Lai nodrošinātu servera instalēšanu, atbildiet uz šiem jautājumiem.

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. Ja darbojas ugunsmūra pakalpojums, ugunsmūrī jāatver HTTP un HTTPS pakalpojums, lai iespējotu klienta pieprasījumus Nginx tīmekļa serverim.

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

5. Visbeidzot, jūs varat apstiprināt, ka LEMP kaudze darbojas, izmantojot pārlūku uz jūsu sistēmas IP adreses.

http://server-IP

2. darbība: PHP-FPM un Nginx konfigurēšana un drošība

6. Lai apstrādātu pieprasījumus no Nginx tīmekļa servera, PHP-FPM var klausīties Unix ligzdā vai TCP ligzdā, un to nosaka klausīšanās parametrs konfigurācijas failā /etc/php-fpm.d/www.conf.

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

Pēc noklusējuma tā ir konfigurēta, lai klausītos Unix kontaktligzdā, kā parādīts nākamajā ekrānuzņēmumā. Šeit vērtība tiks norādīta Nginx servera bloka failā vēlāk.

7. Ja izmantojat Unix kontaktligzdu, tai jāiestata arī pareizās īpašumtiesības un atļaujas, kā parādīts ekrānuzņēmumā. Noņemiet komentārus no šiem parametriem un iestatiet to vērtības lietotājam un grupai, lai tie atbilstu lietotājam un grupai Nginx darbojas kā.

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

8. Pēc tam iestatiet arī visas sistēmas laika joslu /etc/php.ini konfigurācijas failā.

# vi /etc/php.ini

Meklējiet rindiņu “; date.timezone” un noņemiet komentāru, pēc tam iestatiet tās vērtību, kā parādīts ekrānuzņēmumā (izmantojiet vērtības, kas attiecas uz jūsu reģionu/kontinentu un valsti).

 
date.timezone = Africa/Kampala

9. Lai mazinātu risku, ka Nginx nodos pieprasījumus no ļaunprātīgiem lietotājiem, kuri izmanto citus paplašinājumus, lai izpildītu PHP kodu uz PHP-FPM, noņemiet komentāru no šī parametra un iestatiet tā vērtību uz 0 .

cgi.fix_pathinfo=1

10. Saistībā ar iepriekšējo punktu failā /etc/php-fpm.d/www.conf noņemiet arī komentāru. Plašāku skaidrojumu lasiet komentārā.

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

3. darbība: instalējiet Composer un Laravel PHP Framework

11. Pēc tam instalējiet Composer pakotni, izpildot šādas komandas. Pirmā komanda lejupielādē instalēšanas programmu, pēc tam palaiž to, izmantojot PHP.

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

12. Tagad, kad komponists ir instalēts, izmantojiet to, lai instalētu Laravel failus un atkarības šādi. Nomainiet mysite.com ar direktorija nosaukumu, kurā tiks saglabāti Laravel faili, absolūtais ceļš (vai saknes ceļš Nginx konfigurācijas failā) būs /var/www/html/mysite.com.

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

Ja procesa laikā viss norit labi, programma ir jāinstalē veiksmīgi un jāveido atslēga, kā parādīts nākamajā ekrānuzņēmumā.

13. Instalēšanas laikā tika izveidots vides fails .env un tika izveidota arī nepieciešamā lietojumprogramma, tāpēc jums nav nepieciešams tos manuāli izveidot tāpat kā iepriekš. Lai to apstiprinātu, palaidiet garu laravel saknes direktorija sarakstu, izmantojot komandu ls.

# ls -la mysite.com/

14. Tālāk jums jākonfigurē pareizās krātuves un sāknēšanas/kešatmiņas direktoriju īpašumtiesības un atļaujas, lai tos varētu rakstīt Nginx tīmekļa serveris.

# 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. Ja jūsu serverī ir iespējots SELinux, jums arī jāatjaunina krātuves un sāknēšanas/kešatmiņas direktoriju drošības konteksts.

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

4. darbība. Konfigurējiet Nginx servera bloku Laravel

16. Lai Nginx sāktu apkalpot jūsu vietni vai lietojumprogrammu, jums jāizveido tai servera bloks failā .conf zem /etc/nginx/conf.d/ direktorija, kā parādīts.

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

Nokopējiet un ielīmējiet failā šādu konfigurāciju. Ņem vērā root un fastcgi_pass parametrus.

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. Saglabājiet failu un, palaižot, pārbaudiet, vai Nginx konfigurācijas sintakse ir pareiza.

# nginx -t

18. Pēc tam restartējiet PHP-FPM un Nginx pakalpojumus, lai jaunākās izmaiņas stātos spēkā.

# systemctl restart php-fpm
# systemctl restart Nginx

5. solis: Piekļuve Laravel vietnei no tīmekļa pārlūkprogrammas

19. Lai piekļūtu Laravel vietnei mysite.com, kas nav pilnībā kvalificēts domēna vārds (FQDN) un tas nav reģistrēts (tas tiek izmantots tikai testēšanas vajadzībām), mēs izmantosim jūsu vietējā mašīnā failu/etc/hosts lai izveidotu vietējo DNS.

Izpildiet šo komandu, lai vajadzīgajā failā pievienotu servera IP adresi un domēnu (aizstājiet vērtību atbilstoši iestatījumiem).

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

20. Pēc tam vietējā mašīnā atveriet tīmekļa pārlūkprogrammu un, lai pārvietotos, izmantojiet šo adresi.

http://mysite.com

Jūs esat veiksmīgi izvietojis Laravel vietnē CentOS 8. Tagad varat sākt izstrādāt savu vietni vai tīmekļa lietojumprogrammu, izmantojot Laravel. Lai iegūtu papildinformāciju, skatiet Laravel darba sākšanas rokasgrāmatu.