Die Bereitstellung einer Laravel-Anwendung auf Ubuntu mit dem LEMP-Stack (Linux, Nginx, MySQL, PHP) kann entmutigend erscheinen, aber die schrittweise Aufschlüsselung macht es überschaubar. Dieser Leitfaden führt Sie durch den Prozess von der Servereinrichtung bis zur Bereitstellung einer Laravel-Anwendung.
Stellen Sie zunächst sicher, dass Ihr Server auf dem neuesten Stand ist.
sudo apt update && sudo apt upgrade -y
Nginx wird Ihre Anwendung bedienen.
sudo apt install nginx -y
Nach der Installation können Sie Nginx starten und aktivieren, damit es beim Booten ausgeführt wird:
sudo systemctl start nginx sudo systemctl enable nginx
Sie können überprüfen, ob Nginx ausgeführt wird, indem Sie die IP-Adresse Ihres Servers in einem Browser aufrufen.
Als nächstes installieren wir den MySQL-Datenbankserver.
sudo apt install mysql-server -y
Sichern Sie die MySQL-Installation:
sudo mysql_secure_installation
Dadurch werden Sie aufgefordert, ein Root-Passwort einzurichten und unsichere Standardeinstellungen zu entfernen.
Laravel benötigt PHP, also installieren wir es zusammen mit einigen notwendigen Erweiterungen:
sudo apt install php-fpm php-mysql php-cli php-xml php-mbstring php-curl php-zip -y
Überprüfen Sie die PHP-Installation:
php -v
Sie sollten etwa Folgendes sehen:
PHP 7.x.x (cli) (built: ...)
Melden Sie sich als Root-Benutzer bei der MySQL-Konsole an:
sudo mysql
Erstellen Sie eine neue Datenbank und einen neuen Benutzer für die Laravel-Anwendung:
CREATE DATABASE laravel_app; CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
Stellen Sie sicher, dass der neue Datenbankbenutzer eine Verbindung herstellen kann:
mysql -u laravel_user -p
Sie werden zur Eingabe des Passworts aufgefordert und geben dann Folgendes ein:
SHOW DATABASES;
Sie sollten laravel_app in der Liste sehen.
Laravel verwendet Composer als Abhängigkeitsmanager. Composer installieren:
sudo apt install composer -y
Navigieren Sie zu dem Verzeichnis, in dem Sie Laravel installieren möchten (z. B. /var/www/):
cd /var/www/ composer create-project --prefer-dist laravel/laravel laravel_app
Laravel erfordert, dass einige Verzeichnisse vom Webserver beschreibbar sind:
sudo chown -R www-data:www-data /var/www/laravel_app sudo chmod -R 775 /var/www/laravel_app/storage sudo chmod -R 775 /var/www/laravel_app/bootstrap/cache
Öffnen Sie im Laravel-Projektstamm die .env-Datei und konfigurieren Sie die Datenbankeinstellungen:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_app DB_USERNAME=laravel_user DB_PASSWORD=strong_password
Wir erstellen eine Nginx-Konfigurationsdatei für das Laravel-Projekt.
sudo nano /etc/nginx/sites-available/laravel_app
Fügen Sie der Datei die folgende Konfiguration hinzu:
server { listen 80; server_name your_domain_or_ip; root /var/www/laravel_app/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.x-fpm.sock; # Change this to the correct PHP version. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
Ersetzen Sie Ihre_Domäne_oder_IP durch Ihren tatsächlichen Domänennamen oder Ihre Server-IP-Adresse.
Aktivieren Sie die neue Nginx-Konfiguration, indem Sie einen symbolischen Link zu Sites erstellen, die aktiviert sind:
sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/
Testen Sie die Nginx-Konfiguration, um sicherzustellen, dass keine Syntaxfehler vorliegen:
sudo nginx -t
Wenn alles in Ordnung ist, starten Sie Nginx neu:
sudo systemctl reload nginx
Führen Sie die Laravel-Migrationen aus, um die Datenbank einzurichten:
cd /var/www/laravel_app php artisan migrate
Sie sollten nun auf die Laravel-Anwendung zugreifen können, indem Sie im Browser zur IP oder Domäne Ihres Servers navigieren. Sie sehen die Standard-Begrüßungsseite von Laravel.
Wenn Sie eine Domain haben, sichern Sie Ihre Website mit Let's Encrypt:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain
Folgen Sie den Anweisungen, um ein SSL-Zertifikat zu installieren. Certbot konfiguriert Nginx automatisch so, dass der HTTP-Verkehr auf HTTPS umgeleitet wird.
Warteschlangen erledigen Aufgaben wie das Versenden von E-Mails oder die Verarbeitung von Aufträgen im Hintergrund.
php artisan queue:work
Verwenden Sie die Aufgabenplanungsfunktion von Laravel für Aufgaben wie das Leeren von Caches, das Versenden täglicher E-Mails usw.
sudo crontab -e
Folgende Zeile hinzufügen:
* * * * * php /var/www/laravel_app/artisan schedule:run >> /dev/null 2>&1
Sie haben mithilfe des LEMP-Stacks erfolgreich eine Laravel-Anwendung auf einem Ubuntu-Server bereitgestellt. Von hier aus können Sie Ihre Anwendung weiterentwickeln, sichern und auf Leistung überwachen.
Wenn Sie auf Probleme stoßen, überprüfen Sie die Nginx-Fehlerprotokolle unter /var/log/nginx/error.log oder die Laravel-Protokolle unter /var/www/laravel_app/storage/logs/laravel.log.
Mit diesen Schritten haben Sie eine vollständige praktische Laravel-Bereitstellung abgeschlossen!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3