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 Laravel på CentOS 8. Du kan nå begynne å utvikle nettstedet eller nettapplikasjonen din ved å bruke Laravel. For mer informasjon, se Laravel Komme i gang-veiledningen.