Website-Suche

So installieren Sie das Laravel PHP Framework mit Nginx unter CentOS 8


Laravel ist ein Open-Source-, bekanntes und modernes PHP-basiertes Web-Framework mit ausdrucksstarker, eleganter und leicht verständlicher Syntax, das die Erstellung großer, robuster Webanwendungen erleichtert.

Zu seinen Hauptmerkmalen gehören eine einfache, schnelle Routing-Engine, ein leistungsstarker Dependency-Injection-Container, mehrere Back-Ends für Sitzungs- und Cache-Speicher, ausdrucksstarkes und intuitives Datenbank-ORM (Object-Relational Mapping), robuste Hintergrund-Jobverarbeitung und Echtzeit-Ereignisübertragung.

Außerdem werden Tools wie Composer – ein PHP-Paketmanager zum Verwalten von Abhängigkeiten und Artisan – eine Befehlszeilenschnittstelle zum Erstellen und Verwalten von Webanwendungen verwendet.

In diesem Artikel erfahren Sie, wie Sie die neueste Version des Laravel PHP-Webframeworks auf der Linux-Distribution CentOS 8 installieren.

Serveranforderungen

Für das Laravel-Framework gelten folgende Anforderungen:

  • PHP >= 7.2.5 mit diesen PHP-Erweiterungen OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype und JSON.
  • Composer – zum Installieren und Verwalten von Abhängigkeiten.

Schritt 1: LEMP Stack in CentOS 8 installieren

1. Aktualisieren Sie zunächst die Systemsoftwarepakete und installieren Sie den LEMP-Stack (Linux, Nginx, MariaDB/MySQL und PHP) mit den folgenden DNF-Befehlen.

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

2. Wenn die LEMP-Installation abgeschlossen ist, müssen Sie PHP-PFM, Nginx und MariaDB-Dienste mit den folgenden systemctl-Befehlen.

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

3. Als Nächstes müssen Sie die MariaDB-Datenbank-Engine mithilfe des Sicherheitsskripts wie gezeigt sichern und härten.

mysql_secure_installation

Beantworten Sie die folgenden Fragen, um die Serverinstallation zu sichern.

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. Wenn der Dienst firewalld ausgeführt wird, müssen Sie den Dienst HTTP und HTTPS in der Firewall öffnen um Client-Anfragen an den Nginx-Webserver zu ermöglichen.

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

5. Schließlich können Sie mithilfe eines Browsers unter der IP-Adresse Ihres Systems bestätigen, dass Ihr LEMP-Stack ausgeführt wird.

http://server-IP

Schritt 2: Konfigurieren und Sichern von PHP-FPM und Nginx

6. Um Anfragen vom Nginx-Webserver zu verarbeiten, kann PHP-FPM einen Unix-Socket oder TCP-Socket abhören und dies wird durch definiert listen-Parameter in der Konfigurationsdatei /etc/php-fpm.d/www.conf.

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

Standardmäßig ist es so konfiguriert, dass es einen Unix-Socket abhört, wie im folgenden Screenshot gezeigt. Der Wert hier wird später in der Nginx-Serverblockdatei angegeben.

7. Wenn Sie einen Unix-Socket verwenden, sollten Sie auch den richtigen Besitz und die richtigen Berechtigungen dafür festlegen, wie im Screenshot gezeigt. Kommentieren Sie die folgenden Parameter aus und legen Sie ihre Werte auf den Benutzer und die Gruppe fest, damit sie mit dem Benutzer und der Gruppe übereinstimmen, unter denen Nginx ausgeführt wird.

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

8. Als nächstes legen Sie auch die systemweite Zeitzone in der Konfigurationsdatei /etc/php.ini fest.

vi /etc/php.ini

Suchen Sie nach der Zeile “;date.timezone ” und kommentieren Sie sie aus. Legen Sie dann den Wert wie im Screenshot gezeigt fest (verwenden Sie Werte, die für Ihre Region/Ihren Kontinent und Ihr Land gelten).

 
date.timezone = Africa/Kampala

9. Um das Risiko zu verringern, dass Nginx Anfragen von böswilligen Benutzern, die andere Erweiterungen zum Ausführen von PHP-Code verwenden, an PHP-FPM weiterleitet, entfernen Sie das Kommentarzeichen für den folgenden Parameter und setzen Sie seinen Wert auf < Code>0.

cgi.fix_pathinfo=1

10. Entkommentieren Sie im Zusammenhang mit dem vorherigen Punkt auch den folgenden Parameter in der Datei /etc/php-fpm.d/www.conf. Lesen Sie den Kommentar für weitere Erklärungen.

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

Schritt 3: Composer und Laravel PHP Framework installieren

11. Als nächstes installieren Sie das Composer-Paket, indem Sie die folgenden Befehle ausführen. Der erste Befehl lädt das Installationsprogramm herunter und führt es dann mit PHP aus.

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

12. Nachdem Composer nun installiert ist, können Sie damit Laravel-Dateien und -Abhängigkeiten wie folgt installieren. Ersetzen Sie mysite.com durch den Namen des Verzeichnisses, in dem die Laravel-Dateien gespeichert werden. Der absolute Pfad (oder Root-Pfad in der Nginx-Konfigurationsdatei) lautet /var/www/html/mysite .com.

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

Wenn während des Vorgangs alles gut geht, sollte die Anwendung erfolgreich installiert werden und ein Schlüssel generiert werden, wie im folgenden Screenshot gezeigt.

13. Während des Installationsprozesses wurde die Umgebungsdatei .env erstellt und auch die erforderliche Anwendung generiert, sodass Sie diese nicht wie zuvor manuell erstellen müssen. Um dies zu bestätigen, führen Sie mit dem Befehl ls eine lange Liste des Laravel-Stammverzeichnisses aus.

ls -la mysite.com/

14. Als Nächstes müssen Sie den richtigen Besitz und die richtigen Berechtigungen für die Verzeichnisse Speicher und Bootstrap/Cache konfigurieren, damit sie vom Nginx-Web beschrieben werden können 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. Wenn SELinux auf Ihrem Server aktiviert ist, sollten Sie auch den Sicherheitskontext des Speichers und des Bootstrap/Cache aktualisieren > Verzeichnisse.

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'

Schritt 4: Konfigurieren Sie den Nginx-Serverblock für Laravel

16. Damit Nginx mit der Bereitstellung Ihrer Website oder Anwendung beginnen kann, müssen Sie einen Serverblock dafür in einer .conf-Datei unter /etc/nginx/conf.d/ Verzeichnis wie gezeigt.

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

Kopieren Sie die folgende Konfiguration und fügen Sie sie in die Datei ein. Beachten Sie die Parameter root und 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. Speichern Sie die Datei und prüfen Sie, ob die Nginx-Konfigurationssyntax korrekt ist, indem Sie sie ausführen.

nginx -t

18. Starten Sie dann die Dienste PHP-FPM und Nginx neu, damit die letzten Änderungen wirksam werden.

systemctl restart php-fpm
systemctl restart Nginx

Schritt 5: Zugriff auf die Laravel-Website über einen Webbrowser

19. Um auf die Laravel-Website unter mysite.com zuzugreifen, die kein vollqualifizierter Domänenname (FQDN) ist und nicht registriert ist (sie wird nur zu Testzwecken verwendet) verwenden wir die Datei /etc/hosts auf Ihrem lokalen Computer, um lokales DNS zu erstellen.

Führen Sie den folgenden Befehl aus, um die Server-IP-Adresse und die Domäne in der erforderlichen Datei hinzuzufügen (ersetzen Sie den Wert entsprechend Ihren Einstellungen).

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

20. Öffnen Sie als Nächstes einen Webbrowser auf dem lokalen Computer und verwenden Sie die folgende Adresse zum Navigieren.

http://mysite.com

Sie haben Laravel erfolgreich auf CentOS 8 bereitgestellt. Sie können jetzt mit der Entwicklung Ihrer Website oder Webanwendung mit Laravel beginnen. Weitere Informationen finden Sie in der Laravel-Anleitung „Erste Schritte“.