Laravel ist ein beliebtes Open-Source-Framework für PHP-Webanwendungen. Es hat eine ausdrucksstarke, elegante Syntax und bietet Werkzeuge, die für große, robuste Anwendungen benötigt werden. Deployer ist ein modulares Open-Source-PHP-Bereitstellungstool, vollgepackt mit zeitsparenden Funktionen und Optimierungen. Es unterstützt die Bereitstellung vieler beliebter Frameworks, einschließlich Laravel, Symfony, Zend Framework und CodeIgniter. In diesem Tutorial zeigen wir Ihnen, wie Sie eine Laravel-Anwendung mit Deployer auf Ubuntu 16.04 bereitstellen.
Anforderungen
- Ubuntu 16.04-Server mit Root- oder Sudo-Zugriff.
- Git-Server. Sie können entweder Ihren eigenen selbst gehosteten Git-Server oder alle gängigen Git-Dienste wie Gitlab, Github oder Bitbucket verwenden.
Einrichtung der lokalen Entwicklungsumgebung
Sie werden Ihre Laravel-Anwendung von Ihrem lokalen Computer aus bereitstellen, also müssen Sie zuerst die lokale Entwicklungsumgebung einrichten und Deployer installieren.
Wenn Sie Composer noch nicht auf Ihrem lokalen Computer installiert haben, installieren Sie ihn zuerst mit:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer
Erstellen Sie als Nächstes ein neues Laravel-Projekt auf Ihrem lokalen Computer:
composer create-project --prefer-dist laravel/laravel my-laravel-app
Um Deployer auf Ihrem lokalen Computer zu installieren, führen Sie die folgenden Befehle in der Konsole aus:
curl -LO https://deployer.org/deployer.phar mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep
Verbinden Sie sich schließlich mit dem Git-Server, indem Sie Ihren lokalen PC-SSH-Schlüssel zum Git-Server hinzufügen.
Wenn Sie keine SSH-Schlüssel haben, können Sie unseren Artikel zum Einrichten von SSH-Schlüsseln unter Ubuntu 16.04 besuchen
Wenn Sie einen von Git gehosteten Dienst verwenden, können Sie in dessen Dokumentation nachsehen, wie Sie Ihrem Konto einen SSH-Schlüssel hinzufügen.
- SSH-Schlüssel zum GitHub-Konto hinzufügen
- SSH-Schlüssel zum GitLab-Konto hinzufügen
- SSH-Schlüssel zum Bitbucket-Konto hinzufügen
Installieren und konfigurieren Sie PHP
Nachdem Ihr lokaler Entwicklungscomputer nun bereit ist, bevor wir mit der Bereitstellung beginnen können, müssen wir den Server konfigurieren, indem wir alle erforderlichen Dienste installieren.
Führen Sie Folgendes aus, um die neueste stabile Version von PHP Version 7 und alle erforderlichen Module zu installieren:
sudo apt update sudo apt install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-mcrypt php-pear php7.0-curl
Außerdem müssen wir noch Composer installieren:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer
Nginx installieren und konfigurieren
Installieren Sie die neueste stabile Nginx-Version aus den offiziellen Ubuntu-Repositories:
sudo apt install nginx
Erstellen Sie als Nächstes einen neuen Nginx-Serverblock:
sudo nano /etc/nginx/sites-available/my-laravel-app.com
server { listen 80; server_name my-laravel-app.com; root /var/www/html/my-laravel-app.com/current/public; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } }
Aktivieren Sie die Serversperre, indem Sie einen symbolischen Link erstellen:
sudo ln -s /etc/nginx/sites-available/my-laravel-app.com /etc/nginx/sites-enabled/my-laravel-app.com
Testen Sie die Nginx-Konfiguration und starten Sie nginx neu:
sudo nginx -t sudo service nginx restart
MySQL-Datenbank erstellen
Wenn Sie MySQL nicht installiert haben, können Sie unser Tutorial zur Installation von MySQL unter Ubuntu 16.04 besuchen
Um eine Datenbank für die Laravel-Anwendung zu erstellen, führen Sie die folgenden Befehle aus:
mysql -u root -p
CREATE DATABASE laravel; GRANT ALL PRIVILEGES ON laravel.* TO 'laraveluser'@'localhost' IDENTIFIED BY 'your-password'; FLUSH PRIVILEGES; \q
Erstellen Sie einen Bereitstellungsbenutzer
Der Hauptzweck dieses Benutzers besteht darin, unsere Laravel-Anwendung bereitzustellen, indem er Befehle auf unserem Server ausführt.
Um den Benutzer zu erstellen, führen Sie den folgenden Befehl aus:
sudo adduser deployer
Sowohl Nginx als auch PHP FPM laufen als Benutzer www-data. Die vom Deployer-Benutzer erstellten Dateien und Verzeichnisse müssen vom www-Benutzer beschreibbar sein.
Führen Sie den folgenden Befehl aus, um den Benutzer deployer zur Gruppe www-data hinzuzufügen:
sudo usermod -aG www-data deployer
Ändern Sie den Besitz des Dokumentstammverzeichnisses, indem Sie Folgendes ausführen:
sudo chown deployer:www-data /var/www/html/my-laravel-app.com
und Benutzergruppen-ID festlegen
sudo chmod g+s /var/www/html/my-laravel-app.com
Mit dem obigen Befehl erben alle neuen Dateien und Unterverzeichnisse, die innerhalb von `/var/www/html/my-laravel-app.com` erstellt werden, die Verzeichnisgruppen-ID.
Fügen Sie Ihren öffentlichen SSH-Schlüssel für den lokalen Benutzer zur Datei /home/deployer/.ssh/authorized_keys hinzu, damit Sie sich von Ihrem lokalen Computer aus ohne Passwort als Benutzerbereitsteller beim Remote-Server anmelden und die Bereitstellungsbefehle ausführen können.
Schließlich müssen Sie den SSH-Schlüssel des Deployer-Benutzers zu Ihrem Git-Server hinzufügen, genau wie Sie es mit Ihrem lokalen Computerbenutzer getan haben.
Bereitstellung verwenden
Öffnen Sie Ihr lokales Computerterminal und wechseln Sie zum Laravel-Projektverzeichnis.
cd ~/my-laravel-app
Führen Sie den folgenden Befehl aus, um eine Rezeptdatei mit dem Namen deploy.php
zu erstellen .
dep init -t Laravel
Öffnen Sie die Datei und konfigurieren und legen Sie die richtigen Repository-Anmeldeinformationen fest und konfigurieren Sie den Host-Parameter wie folgt:
host('your_remove_server_ip') ->user('deployer') ->set('deploy_path', '/var/www/html/my-laravel-app.com');
Aus dem internen Projektverzeichnis können Sie jetzt den Befehl "dep" ausführen, um Ihre Anwendung bereitzustellen.
Weitere Informationen zur Konfiguration und Verwendung von Deployer finden Sie auf der Dokumentationsseite.
Natürlich müssen Sie Ihren Remote-Server nicht konfigurieren, wenn Sie einen unserer blitzschnellen Ubuntu-Server verwenden. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, den Deployer-Benutzer zu erstellen und alle erforderlichen Dienste für Sie zu installieren und zu konfigurieren . Sie sind rund um die Uhr erreichbar und kümmern sich umgehend um Ihr Anliegen.
PS. Wenn Ihnen dieser Beitrag über die automatische Bereitstellung von Laravel-Anwendungen mit Deployer unter Ubuntu 16.04 gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.