GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Wie man Symfony 4 auf Debian 9 Server einrichtet

Symfony ist eine bevorzugte Wahl von PHP-Entwicklern zum Erstellen kleiner bis großer Anwendungen. Mit jeder neuen Version entwickelt sich Symfony zu einem besseren Toolkit für Entwickler. Symfony ermöglicht schnelle Anwendungsentwicklungsprozesse, sodass Entwickler vollständige APIs, E-Commerce-Plattformen, Fintech- und Buchhaltungsanwendungen usw. erstellen können. Auf der anderen Seite des Spektrums können Entwickler einfache Websites mit Hilfe der Twig-Templating-Engine erstellen.

Symfony 4 verfügt über ein intelligentes Rezeptsystem und eine vereinfachte Verzeichnisstruktur, die die Codedateien in Ihrem Projekt nicht überlastet. Symfony Flex ist dazu da, Bibliotheken mit Aliasnamen zu installieren und sie automatisch in den Bundle-Konfigurationen zu registrieren. Die neue Version führt auch ein blitzschnelles Routing-System ein, das Hash-Map-Lookups für statische Routen und kombinierte reguläre Ausdrücke für Routen mit Platzhaltern verwendet.

Angesichts der Popularität von Symfony 4 habe ich mich entschieden, diese Version auf einem Debian 9-Rechner zu konfigurieren und einzurichten. In diesem Artikel zeige ich Ihnen, wie Sie einen vollständigen Symfony-Stack einrichten können, um Symfony-Anwendungen auszuführen. Der Prozess umfasst Schritte in Bezug auf Berechtigungen, Webroots und Webserver.

Erstellen Sie einen DigitalOcean-Server

Heute finden Sie auf dem Markt eine Reihe von Cloud-Hosting-Anbietern, und die Wahl hängt wirklich von Ihrer Mischung aus Leistungsanforderungen und Budget ab.

Für die Zwecke dieses Artikels werde ich mich für DigitalOcean entscheiden, einen Cloud-Hosting-Anbieter, der von den Entwicklern sehr geliebt wird. Sie können sich einfach für ein DigitalOcean-Konto anmelden und Ihre Verteilung, Größe und das Rechenzentrum Ihres Servers auswählen, wie im folgenden GIF gezeigt:

Der nächste Schritt besteht nun darin, das SSH-Terminal zu starten. Wenn Sie ein Linux- oder Mac-Benutzer sind, erhalten Sie es standardmäßig auf Ihrem Computer. Wenn Sie ein Windows-Benutzer sind, müssen Sie PuTTY herunterladen. Die gute Nachricht ist, dass Windows 10 mit einer eigenen PowerShell ausgestattet ist, die Sie für die Zwecke dieses Artikels verwenden können.

Nach dem Start des Droplets benötigen Sie die folgenden drei Elemente, um sich beim SSH-Terminal anzumelden:

  • IP-Adresse des Servers

  • Benutzername

  • Passwort oder SSH-Schlüssel

Da ich Windows verwende, verwende ich PuTTY für alle SSH-bezogenen Aktivitäten. Notieren Sie sich die obigen Elemente aus dem Droplet und melden Sie sich am SSH-Terminal an. Wenn Sie in PuTTY die IP-Adresse eingeben und die Eingabetaste drücken, werden Sie vom Server gefragt, ob Sie den Schlüssel zwischenspeichern möchten. Klicken Sie einfach auf Ja.

Geben Sie als Nächstes die Anmeldeinformationen ein und Sie melden sich mit Root-Zugriff bei Ihrem DigitalOcean-Droplet an.

Der Symfony LAMP-Stack

Symfony setzt auf einen typischen LAMP-Stack bestehend aus PHP, Apache/Nginx, MySQL und einer Linux-Distribution. Sie müssen zuerst alle diese Softwarekomponenten installieren und dann Apache/Nginx gemäß den Anforderungen von Symfony konfigurieren. Glücklicherweise sind alle Komponenten zum Erstellen des Symfony-Stacks Open Source, sodass Sie nur die Befehle ausführen und über SSH auf Ihrem Server installieren müssen.

Symfony hat in seiner Dokumentation auch die Webserverkonfiguration für Nginx und Apache definiert, daher werde ich die Haupteinstellungen hier behandeln und Sie können den Rest dort lesen.

Aktualisiere die Pakete auf Debian

Der erste Aktionspunkt auf der Liste besteht darin, die Pakete auf dem Debian-Rechner zu aktualisieren.

Überprüfen Sie zunächst die Debian-Version auf dem Server, indem Sie den folgenden Befehl ausführen:

cat /etc/debian_version

Also habe ich Debian 9.4 auf meinem DigitalOcean-Server.

Führen Sie als Nächstes die folgenden Befehle aus, um die Pakete über SSH zu aktualisieren:

apt-get update
apt-get upgrade
apt-get dist-upgrade

Sobald alles aktualisiert ist, kann ich den Webserver installieren.

Installieren Sie Apache2 für Symfony 4

Gehen Sie zum SSH-Terminal und installieren Sie zuerst Apache2 mit dem folgenden Befehl:

apt-get install apache2 -y

Sobald der Befehl abgeschlossen ist, greifen Sie auf die IP Ihres Servers zu und Sie sehen die Apache-Willkommensseite:

Nächste. gehen Sie in die Unterverzeichnisstruktur mit dem Befehl:

cd /etc/apache2/sites-available/

Aktivieren Sie zuerst schnell die Option mod_rewrite mit diesem Befehl:

a2enmod rewrite

Öffnen Sie nun 000-default.conf Datei und fügen Sie Folgendes hinzu, um den Webhost in Apache 2 zu konfigurieren:

 

<VirtualHost *:80>
   ServerName domain.tld
   ServerAlias www.domain.tld
 
   DocumentRoot /var/www/html/symfony4/public
   <Directory /var/www/html/symfony4/public>
       Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
       Allow from All
   </Directory>
 
   # uncomment the following lines if you install assets as symlinks
   # or run into problems when compiling LESS/Sass/CoffeeScript assets
   # <Directory /var/www/html>
   #  Options FollowSymlinks
   # </Directory>
 
   ErrorLog /var/log/apache2/project_error.log
   CustomLog /var/log/apache2/projec_access.log combined
</VirtualHost>

Jetzt ist Apache2 konfiguriert, um das Projekt von /var/www/html auszuführen Mappe. Sie können die Konfiguration aber auch um einige weitere Optionen erweitern, die am besten zu Symfony 4 passen. Hier ist ein Beispiel:

<VirtualHost *:80>
   ServerName domain.tld
   ServerAlias www.domain.tld
 
   DocumentRoot /var/www/html/symfony4/public
   <Directory /var/www/html/symfony4/public>
       AllowOverride None
       Require all granted
       Allow from All
 
       <IfModule mod_rewrite.c>
           Options -MultiViews
           RewriteEngine On
           RewriteCond %{REQUEST_FILENAME} !-f
           RewriteRule ^(.*)$ index.php [QSA,L]
       </IfModule>
   </Directory>
 
   # uncomment the following lines if you install assets as symlinks
   # or run into problems when compiling LESS/Sass/CoffeeScript assets
   # <Directory /var/www/crvfakeexample.com>
   #  Options FollowSymlinks
   # </Directory>
 
   # optionally disable the RewriteEngine for the asset directories
   # which will allow apache to simply reply with a 404 when files are
   # not found instead of passing the request into the full symfony stack
   <Directory /var/www/crvfakeexample.com/public/bundles>
       <IfModule mod_rewrite.c>
           RewriteEngine Off
       </IfModule>
   </Directory>
   ErrorLog /var/log/apache2/crvfakeexample.com_error.log
   CustomLog /var/log/apache2/crvfakeexample.com_access.log combined
 
   # optionally set the value of the environment variables used in the application
   #SetEnv APP_ENV prod
   #SetEnv APP_SECRET <app-secret-id>
   #SetEnv DATABASE_URL "mysql://db_user:[email protected]:3306/db_name"
</VirtualHost>

Sie können auch die neuesten Apache-Optionen verwenden, wie z. B. Alle gewährten Anforderungen anfordern und konfigurieren Sie Umgebungsvariablen in den obigen Einstellungen. Laden Sie nun den Apache-Server mit folgendem Befehl neu, damit die neuen Einstellungen wirksam werden:

service apache2 reload

Installieren Sie Nginx für Symfony 4

Wenn Sie Apache nicht verwenden möchten, ist Nginx eine großartige Option für einen Webserver. Der Prozess ist ziemlich ähnlich.

Beginnen Sie mit der Installation von Nginx mit dem folgenden Befehl:

apt-get update
apt-get install nginx -y

Führen Sie nun cd /etc/nginx/conf.d aus und konfigurieren Sie die Datei als:

server {
   server_name domain.tld www.domain.tld;
   root /var/www/html/symfony4/public;
 
   location / {
       # try to serve file directly, fallback to index.php
       try_files $uri /index.php$is_args$args;
   }
   location ~ ^/index\.php(/|$) {
       fastcgi_pass unix:/var/run/php7.1-fpm.sock;
       fastcgi_split_path_info ^(.+\.php)(/.*)$;
       include fastcgi_params;
 
       # optionally set the value of the environment variables used in the application
       # fastcgi_param APP_ENV prod;
       # fastcgi_param APP_SECRET <app-secret-id>;
       # fastcgi_param DATABASE_URL "mysql://db_user:[email protected]:3306/db_name";
 
       # When you are using symlinks to link the document root to the
       # current version of your application, you should pass the real
       # application path instead of the path to the symlink to PHP
       # FPM.
       # Otherwise, PHP's OPcache may not properly detect changes to
nicht richtig
       # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
       # for more information).
       fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
       fastcgi_param DOCUMENT_ROOT $realpath_root;
       # Prevents URIs that include the front controller. This will 404:
       # http://domain.tld/index.php/some-path
       # Remove the internal directive to allow URIs like this
       internal;
   }
   # return 404 for all other php files not matching the front controller
   # this prevents access to other php files you don't want to be accessible.
   location ~ \.php$ {
       return 404;
   }
   error_log /var/log/nginx/project_error.log;
   access_log /var/log/nginx/project_access.log;
}

Laden Sie nun den Server neu, indem Sie den folgenden Befehl ausführen:

service nginx reload

Installieren Sie PHP 7.2 für Symfony 4

Eine wichtige Abhängigkeit von Symfony 4 ist PHP 7.1.3 (oder höher) auf dem Server. Um die erforderliche Version zu installieren, muss ich einige Pakete auf Debian 9 aktualisieren/installieren, um PHP 7.2 zu installieren. Gehen Sie zum SSH-Terminal (und vergewissern Sie sich, dass Sie sich im Stammverzeichnis befinden) und führen Sie die folgenden Befehle aus:

sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
sudo echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list

Führen Sie nun im nächsten Schritt diese Befehle aus:

sudo apt update
sudo apt install php7.2

Überprüfen Sie nach erfolgreicher Installation die PHP-Version:

php -v

Ich muss auch ein paar weitere Bibliotheken installieren, um sicherzustellen, dass PHP 7.2 auf dem Server ordnungsgemäß funktioniert. Führen Sie den folgenden Befehl aus, um die erforderlichen Bibliotheken zu installieren:

sudo apt install php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-xml libapache2-mod-php7.2

Die Bibliotheken werden installiert und PHP 7.2 ist richtig für Symfony 4 konfiguriert.

Installieren Sie MySQL, um Datenbanken zu konfigurieren

Lassen Sie uns schnell die MySQL-Datenbank installieren.

Führen Sie zunächst den folgenden Befehl aus:

apt-get install mysql-server

Der Prozess wird angehalten, um Sie um Erlaubnis zu bitten. Geben Sie (y ) und drücken Sie die Eingabetaste. Legen Sie im nächsten Fenster das Passwort für den MySQL-Root-Benutzer fest.

Der Vorgang ist in wenigen Minuten abgeschlossen.

Als Nächstes werde ich MySQL gemäß den Anforderungen des LAMP-Stacks konfigurieren. Geben Sie dazu folgenden Befehl ein:

mysql_secure_installation

An diesem Punkt ist die Servereinrichtung gemäß den Anforderungen von Symfony 4 abgeschlossen. Ich werde mich nun auf die Installation des Frameworks selbst konzentrieren.

Installieren Sie Composer unter Debian 9

Es ist eine gute Idee, Composer global zu installieren, da es auf diese Weise von jedem Benutzer problemlos verwendet werden kann. Also werde ich es in /user/local/bin installieren Verzeichnis.

Kopieren wir zunächst das Installationsprogramm in das Verzeichnis /tmp Verzeichnis:

php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"

Führen Sie als Nächstes den folgenden Befehl aus, um die Composer-Datei auszuführen und global zu installieren:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Nachdem Composer nun installiert ist, werde ich mit der eigentlichen Installation von Symfony 4 fortfahren.

Installieren Sie schließlich Symfony 4 auf dem Debian 9 Server

An diesem Punkt habe ich den Apache-Server für das Webroot konfiguriert, indem ich die URL angegeben habe:/var/www/html/symfony4/public.

Gehen Sie in die html Ordner und führen Sie den folgenden Composer-Befehl aus, um Symfony 4 zu installieren:

composer create-project symfony/skeleton symfony4

Das Framework wird in wenigen Sekunden installiert. Da Symfony 4 mit einer kleinen Codebasis und Abhängigkeiten sehr optimiert ist, werden während der Installation keine Anmeldeinformationen abgefragt. Anschließend müssen Sie die Datenbank konfigurieren.

Sobald der Vorgang abgeschlossen ist, greifen Sie auf die IP Ihres Servers zu und Sie sehen die Willkommensseite:

Als Nächstes füge ich die Datenbankanmeldeinformationen zu .env hinzu Datei der Symfony.

 

###> doctrine/doctrine-bundle ###
APP_ENV=dev
APP_DEBUG=1
APP_SECRET=bd4d4fxxxx035a97fxxxed13f18646f
 
# customize this line!
DATABASE_URL="mysql://db_user:[email protected]:3306/db_name"
###< doctrine/doctrine-bundle ###

 

Schlussworte

Symfony 4 wurde von PHP-Entwicklern weithin angenommen und geschätzt und wurde bereits millionenfach heruntergeladen. Sie können auch die Standardversionen von Symfony 3.x verwenden (Sie müssen nur den Befehl aktualisieren, um die spezifische Version zu installieren):

Für Symfony 3.0:

composer create-project symfony/framework-standard-edition your_project_name "3.0.*"

Für Symfony 3.1:

composer create-project symfony/framework-standard-edition your_project_name "3.1.*"

Wenn Sie Hilfe bei der Installation und Einrichtung von Symfony 4 auf einem Debian 9-Rechner benötigen, lassen Sie es mich in den Kommentaren wissen.


Debian
  1. So aktivieren Sie SSH unter Debian 9 oder 10

  2. So richten Sie den Rsyslog-Server unter Debian 11 ein

  3. So installieren Sie Redis Server unter Debian 11

  4. So installieren Sie MySQL 8.0 / 5.7 unter Debian 11 / Debian 10

  5. So richten Sie einen SFTP-Server auf Debian 11 Server ein

So installieren Sie Todoman auf einem Debian 11-Server

So richten Sie einen Cron-Job in Debian 10 ein

So installieren Sie FastPanel unter Debian 11

So installieren Sie I2P auf einem Debian-Server:

So richten Sie den OpenLDAP-Server unter Debian 10 ein

Gewusst wie:Ersteinrichtung des Debian 8.2-Servers