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.
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
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.
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.
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
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;
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.
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:
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!