Sådan installeres Laravel PHP Framework med Nginx på CentOS 8


Laravel er en open source, velkendt og moderne PHP-baseret webramme med udtryksfuld, elegant og let forståelig syntaks, der gør det let at opbygge store, robuste webapplikationer.

Dens nøglefunktioner inkluderer en enkel, hurtig routing-motor, kraftig afhængighedsindsprøjtningsbeholder, flere bagenden til session og cache-opbevaring, ekspressiv og intuitiv database ORM (Object-relationel kortlægning), robust baggrundsjobbehandling og realtidsudsendelse af begivenheder.

Det bruger også værktøjer som Composer - en PHP-pakkehåndtering til styring af afhængigheder og Artisan - en kommandolinjegrænseflade til opbygning og styring af webapplikationer.

I denne artikel lærer du, hvordan du installerer den nyeste version af Laravel PHP-webrammen på CentOS 8 Linux-distribution.

Laravel-rammen har følgende krav:

  • PHP> = 7.2.5 med disse PHP-udvidelser OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype og JSON.
  • Komponist - til installation og styring af afhængigheder.

Trin 1: Installation af LEMP Stack i CentOS 8

1. For at starte skal du opdatere systemsoftwarepakker og installere LEMP stack (Linux, Nginx, MariaDB/MySQL og PHP) ved hjælp af følgende dnf-kommandoer.

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

2. Når LEMP-installationen er afsluttet, skal du starte PHP-PFM-, Nginx- og MariaDB-tjenester ved hjælp af følgende systemctl-kommandoer.

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

3. Dernæst skal du sikre og hærde MariaDB-databasemotoren ved hjælp af sikkerhedsscriptet som vist.

# mysql_secure_installation

Svar på følgende spørgsmål for at sikre serverinstallationen.

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. Hvis firewallldtjenesten kører, skal du åbne HTTP- og HTTPS-tjenesten i firewallen for at aktivere klientanmodninger til Nginx-webserveren.

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

5. Endelig kan du bekræfte, at din LEMP-stak kører ved hjælp af en browser på dit systems IP-adresse.

http://server-IP

Trin 2: Konfiguration og sikring af PHP-FPM og Nginx

6. For at behandle anmodninger fra Nginx-webserveren kan PHP-FPM lytte på et Unix-stik- eller TCP-stik, og dette defineres af lytteparameteren i konfigurationsfilen /etc/php-fpm.d/www.conf.

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

Som standard er det konfigureret til at lytte til et Unix-stik som vist i det følgende skærmbillede. Værdien her vil blive specificeret i Nginx-serverblokfilen senere.

7. Hvis du bruger et Unix-stik, skal du også indstille det korrekte ejerskab og tilladelser til det som vist på skærmbilledet. Fjern kommentar til følgende parametre, og indstil deres værdier til brugeren og gruppen, så de svarer til brugeren og gruppen, som Nginx kører som.

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

8. Dernæst skal du også indstille tidszonen for hele systemet i konfigurationsfilen /etc/php.ini.

# vi /etc/php.ini

Kig efter linjen "; date.timezone" og fjern kommentar til den, og indstil derefter dens værdi som vist på skærmbilledet (brug værdier, der gælder for din region/kontinent og land).

 
date.timezone = Africa/Kampala

9. For at mindske risikoen for, at Nginx videresender anmodninger fra ondsindede brugere, der bruger andre udvidelser til at udføre PHP-kode til PHP-FPM, skal du fjerne kommentar til følgende parameter og indstille dens værdi til 0 .

cgi.fix_pathinfo=1

10. I forhold til det foregående punkt skal du også fjerne kommentar til følgende parameter i /etc/php-fpm.d/www.conf filen. Læs kommentaren for mere forklaring.

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

Trin 3: Installation af komponist og Laravel PHP Framework

11. Installer derefter Composer-pakken ved at køre følgende kommandoer. Den første kommando downloader installationsprogrammet og kører det derefter ved hjælp af PHP.

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

12. Nu hvor Composer er installeret, skal du bruge den til at installere Laravel-filer og afhængigheder som følger. Udskift mysite.com med navnet på det bibliotek, hvor Laravel-filerne gemmes, den absolutte sti (eller rodstien i Nginx-konfigurationsfilen) vil være /var/www/html/mysite.com.

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

Hvis alt går godt under processen, skal applikationen installeres med succes, og der skal genereres en nøgle som vist i det følgende skærmbillede.

13. Under installationsprocessen blev miljøfilen .env oprettet, og den nødvendige applikation blev også genereret, så du behøver ikke oprette dem manuelt som før. For at bekræfte dette skal du køre en lang liste over laravel-rodmappen ved hjælp af kommandoen ls.

# ls -la mysite.com/

14. Dernæst skal du konfigurere det korrekte ejerskab og tilladelser til opbevaring og bootstrap/cache-mapper, der kan skrives af Nginx-webserveren.

# 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. Hvis SELinux er aktiveret på din server, skal du også opdatere sikkerhedskonteksten for opbevaring og bootstrap/cache-mapper.

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

Trin 4: Konfigurer Nginx-serverblok til Laravel

16. For at Nginx kan begynde at betjene dit websted eller din applikation, skal du oprette en serverblok for den i en .conf -fil under /etc/nginx/conf.d/ -mappen som vist.

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

Kopier og indsæt følgende konfiguration i filen. Vær opmærksom på root- og fastcgi_pass-parametrene.

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. Gem filen, og kontroller, om Nginx-konfigurationens syntaks er korrekt ved at køre.

# nginx -t

18. Genstart derefter PHP-FPM- og Nginx-tjenesterne for at de seneste ændringer skal træde i kraft.

# systemctl restart php-fpm
# systemctl restart Nginx

Trin 5: Adgang til Laravel-webstedet fra en webbrowser

19. For at få adgang til Laravel-webstedet på mysite.com, som ikke er et fuldt kvalificeret domænenavn (FQDN), og det ikke er registreret (det bruges kun til testformål), bruger vi filen/etc/hosts på din lokale maskine for at oprette lokal DNS.

Kør følgende kommando for at tilføje serverens IP-adresse og domæne i den krævede fil (udskift værdien i henhold til dine indstillinger).

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

20. Åbn derefter en webbrowser på den lokale maskine, og brug følgende adresse til at navigere.

http://mysite.com

Du har implementeret Laravel på CentOS 8. Du kan nu begynde at udvikle dit websted eller webapplikation ved hjælp af Laravel. For mere information, se Laravel Kom godt i gang-vejledning.