Hvordan installere Laravel PHP Framework med Nginx på CentOS 8


Laravel er et åpen kildekode, velkjent og moderne PHP-basert nettrammeverk med uttrykksfull, elegant og lettfattelig syntaks som gjør det enkelt å bygge store, robuste nettapplikasjoner.

Nøkkelfunksjonene inkluderer en enkel, rask rutingmotor, kraftig avhengighetsinjeksjonsbeholder, flere bakender for økt- og hurtiglagring, ekspressiv og intuitiv database ORM (Object-relational Mapping), robust bakgrunnsjobbbehandling og hendelseskringkasting i sanntid.

Den bruker også verktøy som Composer – en PHP-pakkebehandler for å administrere avhengigheter og Artisan – et kommandolinjegrensesnitt for å bygge og administrere webapplikasjoner.

I denne artikkelen vil du lære hvordan du installerer den nyeste versjonen av Laravel PHP-nettrammeverket på CentOS 8 Linux-distribusjon.

Serverkrav

Laravel-rammeverket har følgende krav:

  • PHP >= 7.2.5 med disse PHP-utvidelsene OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype og JSON.
  • Komponist – for å installere og administrere avhengigheter.

Trinn 1: Installere LEMP Stack i CentOS 8

1. For å komme i gang, oppdater systemprogramvarepakker og installer LEMP stack (Linux, Nginx, MariaDB/MySQL og PHP) ved å bruke 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-installasjonen er fullført, må du starte PHP-PFM, Nginx og >MariaDB-tjenester som bruker følgende systemctl-kommandoer.

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

3. Deretter må du sikre og herde MariaDB-databasemotoren ved å bruke sikkerhetsskriptet som vist.

mysql_secure_installation

Svar på følgende spørsmål for å sikre serverinstallasjonen.

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 du har brannmur-tjenesten kjørende, må du åpne HTTP- og HTTPS-tjenesten i brannmuren for å aktivere klientforespørsler til Nginx-nettserveren.

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

5. Til slutt kan du bekrefte at LEMP-stakken din kjører ved hjelp av en nettleser på systemets IP-adresse.

http://server-IP

Trinn 2: Konfigurere og sikre PHP-FPM og Nginx

6. For å behandle forespørsler fra Nginx-nettserveren, kan PHP-FPM lytte på en Unix-socket eller TCP-socket, og dette er definert av lytt-parameteren i /etc/php-fpm.d/www.conf konfigurasjonsfilen.

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

Som standard er den konfigurert til å lytte på en Unix-kontakt som vist i følgende skjermbilde. Verdien her vil bli spesifisert i Nginx-serverblokkfilen senere.

7. Hvis du bruker en Unix-socket, bør du også angi riktig eierskap og rettigheter for den som vist på skjermbildet. Fjern kommentarene til følgende parametere og angi verdiene deres til brukeren og gruppen for å matche brukeren og gruppen Nginx kjører som.

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

8. Deretter angir du også tidssonen for hele systemet i /etc/php.ini konfigurasjonsfilen.

vi /etc/php.ini

Se etter linjen “;date.timezone ” og fjern kommentarene, og angi deretter verdien som vist på skjermbildet (bruk verdier som gjelder for din region/kontinent og ditt land).

 
date.timezone = Africa/Kampala

9. For å redusere risikoen for at Nginx sender forespørsler fra ondsinnede brukere som bruker andre utvidelser til å kjøre PHP-kode til PHP-FPM, fjerner du kommentaren til følgende parameter og setter verdien til < kode>0.

cgi.fix_pathinfo=1

10. I forhold til forrige punkt, fjern også kommentaren til følgende parameter i filen /etc/php-fpm.d/www.conf. Les kommentaren for mer forklaring.

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

Trinn 3: Installere Composer og Laravel PHP Framework

11. Installer deretter Composer-pakken ved å kjøre følgende kommandoer. Den første kommandoen laster ned installasjonsprogrammet, og kjører det deretter med PHP.

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

12. Nå som Composer er installert, bruk den til å installere Laravel-filer og avhengigheter som følger. Erstatt mysite.com med navnet på katalogen der Laravel-filene skal lagres, den absolutte banen (eller rotbanen i Nginx-konfigurasjonsfilen) 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 bra under prosessen, bør applikasjonen installeres vellykket og en nøkkel skal genereres som vist i følgende skjermbilde.

13. Under installasjonsprosessen ble miljøfilen .env opprettet og den nødvendige applikasjonen ble også generert, så du trenger ikke å opprette dem manuelt som før. For å bekrefte dette, kjør en lang liste over laravel-rotkatalogen ved å bruke ls-kommandoen.

ls -la mysite.com/

14. Deretter må du konfigurere riktig eierskap og tillatelser på lagring og bootstrap/cache-katalogene for å kunne skrives av Nginx-nettet 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. Hvis SELinux er aktivert på serveren din, bør du også oppdatere sikkerhetskonteksten til lagring og bootstrap/cache kataloger.

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'

Trinn 4: Konfigurer Nginx Server Block For Laravel

16. For at Nginx skal begynne å betjene nettstedet eller applikasjonen din, må du opprette en serverblokk for den i en .conf-fil under >/etc/nginx/conf.d/-katalogen som vist.

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

Kopier og lim inn følgende konfigurasjon i filen. Legg merke til parametrene root og fastcgi_pass.

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. Lagre filen og sjekk om Nginx-konfigurasjonssyntaksen er riktig ved å kjøre.

nginx -t

18. Start deretter PHP-FPM- og Nginx-tjenestene på nytt for at de siste endringene skal tre i kraft.

systemctl restart php-fpm
systemctl restart Nginx

Trinn 5: Få tilgang til Laravel-nettstedet fra en nettleser

19. For å få tilgang til Laravel-nettstedet på mysite.com, som ikke er et fullstendig kvalifisert domenenavn (FQDN) og det ikke er registrert (det brukes kun til testformål) , vil vi bruke /etc/hosts-filen på din lokale maskin for å lage lokal DNS.

Kjør følgende kommando for å legge til serverens IP-adresse og domene i den nødvendige filen (erstatt verdien i henhold til innstillingene dine).

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

20. Deretter åpner du en nettleser på den lokale maskinen og bruker følgende adresse for å navigere.

http://mysite.com

Du har implementert LaravelCentOS 8. Du kan nå begynne å utvikle nettstedet eller nettapplikasjonen din ved å bruke Laravel. For mer informasjon, se Laravel Komme i gang-veiledningen.