System Requirements and Software Dependencies

First of all – thank you for visiting my blog and reading my posts. seems to be running without big hickups and visitors are finding their way to the site, either by SE, feeders or with this blog. The system contains 3 factors, the server , the software and the website system. Here’s a list of the server (also called hardware):

  • SP-32 Server – Intel Xeon E3-1270v6 – 32GB DDR4 ECC 2400 MHz – SoftRaid 2x2TB – at OVH.
  • Debian 8 prefered as Operative System.
  • /var partition setup to RAID0 (remember to create backup and download it reguarly for your website, setting for each virtualhost in ISPConfig3).
  • 8 extra IP adresses (DNS managed by domainseller, 1 IP for E-Mail, 8 IP for Website (9 IP in total).

This setup can be bought at a cheap price starting at around 60 euro monthly at my favorite hosting company OVH.
The server goes with 1Gbps upload (not capped) and 500Mbps download speed. It’s including 6TB bandwidth (upload & download combined) per month – if you need extra traffic there are packages you can purchase (contact support).

To setup all this together takes time. Grab a cup of coffee, tea or chocolate first and then start with setting up the system… Click Read more to get details about how to setup the first steps of the system.

As to the software for building the website you will need.

  1. ISPConfig3.0.5.4
    To handle the Domain, SSL, Backup, IP, E-Mail and Webspace setup.

  2. Apache 2.4.10‘/Debian webserver.

  3. PHP 7.2
    Configured as Apache Module for PHP scripts.

  4. MySQL Database
    With UTF8MB4 charset support.

  5. SSL
    To encrypt website traffic against various hacker attacks.

  6. SSL certificate DV
    Let’s Encrypt certificates are available within the ISPConfig3 interface – Free “Let´s Encrypt” certificates expires after 3 months.

Components required to make encoding of videos possible.

  • libavcodec56‘ codec pack for ffmpeg on Debian 8 Jessie.

apt-get install libavcodec56 libavcodec57

  • gpac‘ encoder pack (MP4Client & MP4Box).

apt-get install gpac

  • ffmpeg‘ to encode videos (/usr/bin/ffmpeg or /usr/local/bin/ffmpeg).

apt-get install ffmpeg

  • yamdi‘ or else ‘flvtool2’ to read media metadata (/usr/bin/yamdi or /usr/bin/flvtool2).

apt-get install yamdi

Software components required for the website itself.

  • PHP 7.2‘ for PHP scripts and apps running the website (7.2, because 7.1 has security issues with phpMyAdmin).

apt-get install php7.2

a2enmod php7.2

update alternatives --set php /usr/bin/php7.2

Download from:
Upload to your ‘web’ directory for your domain via FTP manager like Filezilla.
Connect via SSH and type the following cli command in your “/var/www//web” directory:unzip

Purchase & Download from:
Install via Extension Manager (Install) in Joomla 3.x

  • HWDMediaShare‘, latest build for Joomla 3.x including Premium Addons.

Purchase & Download from:
Install via Extension Manager (Install) in Joomla 3.x

  • Jumi‘, latest build for 3.x – to execute scripts (PHP, geoip iframe banners, javascript) in modules.

Download from:
Install via Extension Manager (Install) in Joomla 3.x

  • MaxiMenuCK‘, latest build for Joomla 3.x – for a good looking and responsive/mobile-friendly menu.

Download from:
Install via Extension Manager (Install) in Joomla 3.x

Switch to 'protostar' or your own template folder in Joomla Template Manager within the administration panel.
  • sh404SEF‘ Joomla SEF Paid Component (SEO).
Since of it's technical nature and not very user-friendly navigation it's only per need basis. 
Only install if you find it necessary to have all pro functions available.

Apache modules that needs to be enabled to make it all possible.

  • Apache Module expires (leverage browser cache)

a2enmmod expires

Sample entry in .htaccess to activate the expires module.

## EXPIRES CACHING ##ExpiresActive OnExpiresByType image/jpg "access plus 1 month"ExpiresByType image/jpeg "access plus 1 month"ExpiresByType image/gif "access plus 1 month"ExpiresByType image/png "access plus 1 month"ExpiresByType text/css "access plus 1 month"ExpiresByType application/pdf "access plus 1 month"ExpiresByType text/x-javascript "access plus 1 month"ExpiresByType application/x-shockwave-flash "access plus 1 month"ExpiresByType image/x-icon "access plus 1 year"ExpiresDefault "access plus 1 days"## EXPIRES CACHING ##

Sample entry in .htaccess for your “/var/www//web” (webroot) directory (if you are in the adult business and want to prevent kids from entering your website by reporting site adult rated for family care software!).

  • Apache Module headers (RTA Label to prevent kids from entering and Cache interventions).

a2enmmod headers

Header set Rating "RTA-5042-1996-1400-1577-RTA"

Default Joomla 3.x .htaccess entry.

  • Apache Module rewrite (clean SEO URLs).

a2enmmod rewrite

# @package Joomla
# @copyright Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.
# @license GNU General Public License version 2 or later; see LICENSE.txt

# The line 'Options +FollowSymLinks' may cause problems with some server configurations.
# It is required for the use of mod_rewrite, but it may have already been set by your
# server administrator in a way that disallows changing it in this .htaccess file.
# If using it causes your site to produce an error, comment it out (add # to the
# beginning of the line), reload your site in your browser and test your sef urls. If
# they work, then it has been set by your server administrator and you do not need to
# set it here.

## No directory listings

IndexIgnore *

## Suppress mime type detection in browsers for unknown types

Header always set X-Content-Type-Options "nosniff"

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site then comment out the operations listed
# below by adding a # to the beginning of the line.
# This attempts to block the most common type of exploit `attempts` on Joomla!
# Block any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block any script that includes a

Leave a Reply

Your email address will not be published. Required fields are marked *