Wéi installéiere Laravel PHP Framework mat Nginx op CentOS 8


Laravel ass en Open-Source, bekannten a modernen PHP-baséierte Webframework mat expressiver, eleganter an einfach ze verstoen Syntax, déi et einfach mécht grouss, robust Webapplikatiounen ze bauen.

Seng Schlësselfeatures enthalen en einfachen, schnelle Routingmotor, mächtege Ofhängegkeet-Injektiounsbehälter, Multiple Back-Ends fir Sessioun- a Cache-Späichere, expressiv an intuitiv Datebank ORM (Object-relational Mapping), robusten Hannergrondjobveraarbechtung, an Echtzäit Event Broadcasting.

Och benotzt et Tools wéi Composer - e PHP Package Manager fir Ofhängegkeeten ze managen an Artisan - e Kommandozeil Interface fir Webapplikatiounen ze bauen an ze managen.

An dësem Artikel léiert Dir wéi Dir déi lescht Versioun vum Laravel PHP Web Framework op CentOS 8 Linux Verdeelung installéiert.

De Laravel Kader huet déi folgend Ufuerderungen:

  • PHP >= 7.2.5 mat dësen PHP-Extensiounen OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype an JSON.
  • Komponist - fir Ofhängegkeeten z'installéieren an ze managen.

Schrëtt 1: LEMP Stack an CentOS 8 installéieren

1. Fir unzefänken, Update System Software Packagen an installéieren LEMP Stack (Linux, Nginx, MariaDB/MySQL, a PHP) mat de folgenden dnf Kommandoen.

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

2. Wann d'LEMP Installatioun fäerdeg ass, musst Dir d'PHP-PFM, Nginx a MariaDB Servicer starten mat de folgende Systemctl Kommandoen.

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

3. Als nächst musst Dir d'MariaDB Datebankmotor sécheren an härten mat der Sécherheetsskript wéi gewisen.

# mysql_secure_installation

Beäntwert déi folgend Froen fir d'Serverinstallatioun ze sécheren.

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. Wann Dir de Firewalld-Service leeft, musst Dir den HTTP- an HTTPS-Service an der Firewall opmaachen fir Client-Ufroen op den Nginx Webserver z'aktivéieren.

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

5. Endlech kënnt Dir bestätegen datt Äre LEMP-Stack mat engem Browser op der IP Adress vun Ärem System leeft.

http://server-IP

Schrëtt 2: PHP-FPM an Nginx konfiguréieren a sécheren

6. Fir Ufroe vum Nginx Webserver ze veraarbecht, kann PHP-FPM op engem Unix Socket oder TCP Socket lauschteren an dëst gëtt definéiert vum Listenparameter an der /etc/php-fpm.d/www.conf Konfiguratiounsdatei.

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

Par défaut ass et konfiguréiert fir op engem Unix Socket ze lauschteren wéi am folgende Screenshot gewisen. De Wäert hei gëtt spéider an der Nginx Server Blockdatei spezifizéiert.

7. Wann Dir en Unix Socket benotzt, sollt Dir och déi richteg Besëtzer an Permissiounen drop setzen, wéi am Screenshot gewisen. Decommentéiert déi folgend Parameteren a setzt hir Wäerter op de Benotzer a Grupp fir de Benotzer an d'Grupp ze passen Nginx leeft als.

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

8. Als nächst setzt och d'Systemwäit Zäitzon an der /etc/php.ini Konfiguratiounsdatei.

# vi /etc/php.ini

Kuckt no der Linn \;date.timezone an decommentéiert se, setzt dann säi Wäert wéi am Screenshot gewisen (benotzt Wäerter déi op Är Regioun/Kontinent a Land gëllen).

 
date.timezone = Africa/Kampala

9. Fir de Risiko ze reduzéieren datt Nginx Ufroe vu béiswëlleg Benotzer passéiert, déi aner Extensiounen benotze fir PHP Code op PHP-FPM auszeféieren, decommentéiert de folgende Parameter a setzt säi Wäert op 0.

cgi.fix_pathinfo=1

10. Am Zesummenhang mat dem viregte Punkt, decommentéiert och de folgende Parameter an der /etc/php-fpm.d/www.conf Datei. Liest de Kommentar fir méi Erklärung.

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

Schrëtt 3: Installéiere vum Composer a Laravel PHP Framework

11. Als nächst installéiert de Composer Package andeems Dir déi folgend Kommandoen ausféiert. Den éischte Kommando luet den Installateur erof, da leeft et mat PHP.

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

12. Elo datt de Composer installéiert ass, benotzt et fir Laravel Dateien an Ofhängegkeeten ze installéieren wéi follegt. Ersetzen mysite.com mam Numm vum Verzeechnes wou d'Laravel Dateien gespäichert ginn, den absolute Wee (oder Root Wee an der Nginx Konfiguratiounsdatei) wäert /var/www/html/mysite.com sinn.

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

Wann alles gutt während dem Prozess geet, soll d'Applikatioun erfollegräich installéiert ginn an e Schlëssel soll generéiert ginn wéi am folgenden Screenshot gewisen.

13. Wärend dem Installatiounsprozess gouf d'Ëmweltdatei .env erstallt an déi erfuerderlech Applikatioun gouf och generéiert, sou datt Dir se net manuell erstellt wéi virdrun. Fir dëst ze bestätegen, lafen eng laang Oplëschtung vum Laravel Root Verzeichnis mat ls Kommando.

# ls -la mysite.com/

14. Als nächst musst Dir d'korrekt Eegentum an d'Permissiounen op der Späichere konfiguréieren an d'Bootstrap/Cache Verzeichnisser fir vum Nginx Webserver ze schreiwen.

# 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. Wann SELinux op Ärem Server aktivéiert ass, sollt Dir och de Sécherheetskontext vun de Späicher- a Bootstrap/Cache-Verzeichnungen aktualiséieren.

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

Schrëtt 4: Nginx Server Block Fir Laravel konfiguréieren

16. Fir Nginx fir Är Websäit oder Applikatioun ze servéieren, musst Dir e Serverblock dofir erstellen an enger .conf Datei ënner /etc/nginx/conf.d/ Verzeichnis wéi gewisen.

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

Kopéiert a paste déi folgend Konfiguratioun an der Datei. Notéiert d'Root a fastcgi_pass Parameteren.

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. Späichert d'Datei a kontrolléiert ob d'Nginx Konfiguratiounssyntax richteg ass andeems se lafen.

# nginx -t

18. Da starten d'PHP-FPM- an Nginx-Servicer nei fir déi rezent Ännerungen a Kraaft ze huelen.

# systemctl restart php-fpm
# systemctl restart Nginx

Schrëtt 5: Zougang zu Laravel Websäit vun engem Webbrowser

19. Fir Zougang zu der Laravel Websäit op mysite.com, déi net e vollqualifizéierten Domain Numm (FQDN) ass an net registréiert ass (et gëtt nëmme fir Testzwecker benotzt), benotze mir d' /etc/hosts Datei op Ärer lokaler Maschinn fir lokal DNS ze kreéieren.

Fëllt de folgende Kommando aus fir d'Server IP Adress an d'Domain an der erfuerderter Datei ze addéieren (ersetzt de Wäert no Ären Astellungen).

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

20. Als nächst, öffnen e Webbrowser op der lokaler Maschinn a benotzt déi folgend Adress fir ze navigéieren.

http://mysite.com

Dir hutt Laravel erfollegräich ofgesat op CentOS 8. Dir kënnt elo ufänken Är Websäit oder Webapplikatioun mat Laravel z'entwéckelen. Fir méi Informatioun, kuckt Laravel Getting Started Guide.