GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

So stellen Sie Laravel-Anwendungen automatisch mit Deployer unter Ubuntu 16.04 bereit

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.


Panels
  1. Wie ersetzen wir Iptables durch Firewalld in Ubuntu 16.04?

  2. So stellen Sie Laravel-Anwendungen automatisch mit Deployer unter Ubuntu 16.04 bereit

  3. So installieren Sie Joomla mit Nginx unter Ubuntu 18.04

  4. So installieren Sie Let’s Encrypt auf Ubuntu 20.04 mit Apache

  5. So aktivieren Sie das HTTPS-Protokoll mit Apache 2 unter Ubuntu 20.04

So installieren Sie WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie ElastAlert mit Elasticsearch auf Ubuntu

So installieren Sie NextCloud auf Ubuntu 20.04 mit Apache

So installieren Sie WordPress mit Nginx auf Ubuntu

So installieren Sie Lighttpd mit PHP in Ubuntu 20.04

Wie stellt man die Laravel-Anwendung mit Nginx auf Ubuntu bereit?