Es gab ein Problem beim Laden der Kommentare.

Webserver, Webhosting und VIMP unter Ubuntu 20.04 installieren

HelpDesk  »  Wissensdatenbank (FAQ)  »  Artikel betrachten

  Drucken
Editionen: Light, Ultimate (Standard), Ultimate (Extended), Corporate Enterprise, Corporate Campus
Versionen: 4.3+


In diesem Artikel installieren wir sämtliche Serversoftware (Apache2 oder NGINX, MySQL oder MariaDB, PHP, FFmpeg, Postfix etc.) für VIMP und konfigurieren das Webhosting.

 

Installation der Grundpakete

Zuerst aktualisieren wir die Paketquellen:

apt update


Je nachdem, welche Datenbank Sie nutzen möchten, installieren Sie danach entweder MySQL oder MariaDB.
Für MySQL führen Sie folgenden Befehl aus:

apt install mysql-server


Für MariaDB führen Sie folgenden Befehl aus:

apt install mariadb-server


Danach installieren wir die restlichen Pakete:

apt install php-mysql php7.4 php7.4-gd php7.4-cli php7.4-xsl php7.4-curl php7.4-json php7.4-mbstring php7.4-zip php7.4-xmlrpc php-imagick libimage-exiftool-perl ffmpeg nano openssl time


Für die VIMP-Corporate-Editionen installieren Sie bitte noch folgende Pakete:

apt install php7.4-ldap php7.4-sqlite3


Wenn Sie NGINX verwenden möchten, installieren Sie im Anschluss folgende Pakete:

apt install nginx php-fpm 


Wenn Sie Apache2 verwenden möchten, installieren Sie stattdessen diese Pakete:

apt install apache2 libapache2-mod-php7.4


Als MTA (Mail Transport Agent) nehmen wir hier postfix. Andere MTAs wie Sendmail und Exim können natürlich auch verwendet werden. Achten Sie hier darauf, dass der MTA so konfiguriert ist, dass PHP E-Mails versenden kann.

apt update
apt install postfix


Als Nächstes legen wir die benötigten Ordner auf dem Server an:

mkdir -p /var/www/vimp/web
mkdir /var/www/logs

 

NGINX Konfiguration:

Wenn Sie NGINX verwenden, erstellen wir zunächst einen eigenen Serverblock für VIMP. Wenn Sie Apache2 verwenden, überspringen Sie diesen Abschnitt bitte.

nano /etc/nginx/sites-available/vimp


Und fügen folgende VIMP-Konfiguration ein (korrigieren Sie die Pfade für root und die Logs bitte entsprechend Ihrer Konfiguration und fügen Sie den korrekten Servernamen ein):

server {
  rewrite_log off;
 
  listen 80;
  listen [::]:80 ipv6only=on;

  # replace /var/www/vimp/ with your actual VIMP installation folder path in the following line
  root /var/www/vimp/web;

  # replace your_servername with your actual server name in the following line
  server_name your_servername;

  # replace /var/www/vimp/ with your actual VIMP installation folder path in the following lines
  access_log /var/www/logs/vimp_nginx_access.log;
  error_log /var/www/logs/vimp_nginx_error.log warn;

  index index.php frontend.php webtv.php backend.php frontend_dev.php webtv_dev.php backend_dev.php restoreProgress.php updateProgress.php index.html;

  charset utf-8;
  server_tokens off;

  client_max_body_size 500M;

  # Disable access log for favicon.ico
  location = /favicon.ico {
    log_not_found off;
    access_log off;
  }

  # Disable access log for robots.txt
  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  # Prevent access to files/folders which starts with a dot
  location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
  }

  # Directive for dynamic JS files which are processed by PHP
  location ~ ^/(.+)\.js\.php(/|$) {
    error_page 417 = @appwebtv;
    error_page 418 = @appfrontend;
    error_page 419 = @appbackend;
    if ( $query_string ~ "app=webtv" ) { return 417; }
    if ( $query_string ~ "app=frontend" ) { return 418; }
    if ( $query_string ~ "app=backend" ) { return 419; }
  }

  # Directive for dynamic JS files which are processed by PHP
  location @appfrontend {
    index index.php;
    #include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffers 32 256k;
    fastcgi_buffer_size 512k;
    fastcgi_busy_buffers_size 512k;
    fastcgi_param HTTPS off;
    try_files $uri $uri/ /index.php$is_args$query_string;
  }

  # Directive for dynamic JS files which are processed by PHP (no longer needed for VIMP 5.1 and higher)
  location @appwebtv {
    index webtv.php;
    #include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffers 32 256k;
    fastcgi_buffer_size 512k;
    fastcgi_busy_buffers_size 512k;
    fastcgi_param HTTPS off;
    try_files $uri $uri/ /webtv.php$is_args$query_string;
  }

  # Directive for dynamic JS files which are processed by PHP
  location @appbackend {
    index backend.php;
    #include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffers 32 256k;
    fastcgi_buffer_size 512k;
    fastcgi_busy_buffers_size 512k;
    fastcgi_param HTTPS off;
    try_files $uri $uri/ /backend.php$is_args$query_string;
  }

  # All front controllers for symfony
  location ~ ^/(index|frontend_dev|frontend_cache|backend|backend_dev|backend_cache|getMedia|health|webtv|webtv_dev|webtv_cache|restoreProgress|updateProgress)\.php(/|$) {
    #include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffers 32 256k;
    fastcgi_buffer_size 512k;
    fastcgi_busy_buffers_size 512k;
    fastcgi_param HTTPS off;
  }

  # Try to serve file directly, fallback to rewrite to default frontend controller
  location / {
    index index.php;
    try_files $uri $uri/ @rewriteapp;
  }

  # Rewrite fallback to index.php
  location @rewriteapp {
    rewrite ^(.*)$ /index.php$1 last;
  }
}


Nun aktivieren wir die Konfiguration, indem wir folgende Verknüpfung erstellen:

ln -s /etc/nginx/sites-available/vimp /etc/nginx/sites-enabled/


Testen Sie kurz:

nginx -t


Und starten NGINX neu, sofern alles passt:

service nginx restart


Hinweis: Beim Einsatz eines SSL-Zertifikats sieht die Konfiguration etwas anderes aus, da dann zwei Server-Blöcke erstellt werden (im Detail abhängig vom Zertifikat-Anbieter). Achten Sie aber auf jeden Fall darauf, dass Sie alle Vorkommen von

fastcgi_param HTTPS off;


nach der Einbindung des SSL-Zertifikats auf

fastcgi_param HTTPS on;


ändern, damit die Scripte über HTTPS ausgeliefert werden können.

 

Apache2 Konfiguration:

Wenn Sie Apache2 verwenden, erstellen wir einen eigenen vHost für VIMP. Wenn Sie NGINX verwenden, überspringen Sie diesen Abschnitt bitte.

nano /etc/apache2/sites-available/vimp.conf


In die erstellte Konfigurationsdatei fügen wir folgenden Code ein und passen den Servernamen, die E-Mail-Adresse sowie ggf. den DocumentRoot Pfad an:

<VirtualHost *:80>
   
   # enter your server name/domain in the following line
   ServerName my.vimp.domain
   # enter your webmaster's e-mail address in the following line
   ServerAdmin my@email.address

   # replace /var/www/vimp/ with your actual VIMP installation folder path in the following line
   DocumentRoot /var/www/vimp/web

   <Directory />
        Options FollowSymLinks
        AllowOverride None
   </Directory>
 
   # replace /var/www/vimp/ with your actual VIMP installation folder path in the following line
   <Directory "/var/www/vimp/web/">
      Options -Indexes +FollowSymLinks -MultiViews
      AllowOverride all
      <IfVersion < 2.3>
        Order allow,deny
        allow from all
      </IfVersion>
      <IfVersion >= 2.4>
        Require all granted
      </IfVersion>
   </Directory>

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>


Anschließend aktivieren wir noch das Modul "rewrite" und den neuen vHost:

a2enmod rewrite
a2ensite vimp


Den Apache starten wir später neu, damit die neue Konfiguration eingelesen wird.

 

PHP konfigurieren

Es gibt 2 für uns interessante php.ini Dateien. Die eine ist für das FPM- bzw. Apache2-PHP-Modul, die andere für das PHP-CLI (CLI=Command Line Interface).

 

Wir bearbeiten zuerst die php.ini für das Modul. Unter NGNIX bearbeiten Sie die folgende Datei:

nano /etc/php/7.4/fpm/php.ini


und unter Apache2 diese:

nano /etc/php/7.4/apache2/php.ini


und passen die folgenden Zeilen wie folgt an:

upload_max_filesize = 4096M
post_max_size = 4096M
register_argc_argv On
memory_limit = 1024M
max_execution_time = 60
max_input_time = 120


Speichern Sie die Datei ab und starten Sie den NGINX oder Apache2 neu (für größere Uploadlimits eröhen Sie die beiden 4096M-Werte entsprechend):

service nginx restart


bzw.

service apache2 restart


Genauso verfahren wir mit der php.ini für php-cli. Ein Neustart von NGINX bzw. Apache2 ist danach nicht notwendig.

nano /etc/php/7.4/cli/php.ini

Passen Sie die Direktiven auch hier wie folgt an (bitte beachten Sie den Unterschied bei memory_limit):
upload_max_filesize = 4096M
post_max_size = 4096M
register_argc_argv On
memory_limit = -1
max_execution_time = 60
max_input_time = 120

 

Datenbank und Datenbankbenutzer erstellen:

Für MySQL 8 bzw. MariaDB 10.3 müssen wir zunächst den sql_mode setzen. Wir erstellen dazu eine eigene Konfigurationsdatei für VIMP:

cd /etc/mysql/conf.d
nano vimp.cnf


In diese Datei kopieren wir die folgenden Zeilen:

[mysqld]
sql_mode = IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO


Und starten nach dem Abspeichern den MySQL Service neu:

service mysql restart


Danach legen wir die Datenbank für VIMP an:

# mysql


Der MySQL-Client meldet sich mit dem mysql>-Prompt:

mysql> create database DATENBANKNAME default character set utf8 collate utf8_unicode_ci;
mysql> create user 'DATENBANKBENUTZER'@'%' identified by 'PASSWORT';
mysql> grant all privileges on DATENBANKNAME.* to 'DATENBANKBENUTZER'@'%' with grant option;
mysql> flush privileges;
mysql> exit;

 

Nach der Vorbereitung installieren Sie VIMP

Wenn Sie VIMP Light, VIMP Ultimate [Standard], VIMP Corporate Campus oder VIMP Corporate Enterprise installieren, müssen Sie an dieser Stelle noch die SourceGuardian PHP-Erweiterung installieren. Eine Anleitung dazu finden Sie für NGINX hier und für Apache2 hier.

Der Upload und Installation des VIMP-Installers ist im diesem Artikel beschrieben.

 

Grundlegende Verwendung

Die Installation ist nun abgeschlossen. Rufen Sie jetzt Ihr Portal im Browser auf.

Während der Installation werden drei Benutzer erstellt, die die drei Benutzerrollen darstellen:

  • "admin" (Passwort: "admin") als Administrator
  • "moderator" (Passwort: "moderator") als Moderator
  • "user" (Passwort: "user") als Standardbenutzer

Bitte ändern Sie alle Passwörter so schnell wie möglich. Wenn Sie die Benutzer nicht mehr benötigen, können Sie sie im Admin-Bereich löschen. Achten Sie nur darauf, den admin-Benutzer zu behalten!


Teilen über

Ähnliche Artikel

© VIMP GmbH