{"id":113,"date":"2026-01-28T13:30:57","date_gmt":"2026-01-28T13:30:57","guid":{"rendered":"https:\/\/www.posadoble.eu\/en\/?page_id=113"},"modified":"2026-04-22T10:06:52","modified_gmt":"2026-04-22T10:06:52","slug":"install-instructions-linux-debian-ubunu-raspberry-pi","status":"publish","type":"page","link":"https:\/\/www.posadoble.eu\/en\/install-instructions-linux-debian-ubunu-raspberry-pi\/","title":{"rendered":"Manual install instructions for Debian &amp; Ubuntu Linux"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Manual install instructions for Debian &amp; Ubuntu Linux<\/h1>\n\n\n\n<p>This installation process applies to all linux distributions with the &#8220;apt&#8221;-package manager.<br>This is includes: Debian, Ubuntu, Kubuntu, Pop-os, Tuxedo OS, Raspberry Pi OS etc..<\/p>\n\n\n\n<p>Too long or too boring? Might wanna try the <a href=\"https:\/\/www.posadoble.eu\/en\/automatic-installation-debian-linux\/\" data-type=\"page\" data-id=\"327\">automatic install script for Debian &amp; Ubuntu<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"How to install Posadoble on Linux - Ubuntu &amp; Raspberry Pi\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/dDrOqBhHDaU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Posadoble is a web application.<br>This means it needs a webserver (Apache) and a database (MySQL\/MariaDB) to run.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Install webserver and database first<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Update package manager<\/h3>\n\n\n\n<p>Open the terminal and update the package manager:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt upgrade<\/code><\/pre>\n\n\n\n<p>Enter your password if necessary.<br>Press &#8220;y&#8221; and press enter when it asks if you are sure you want to update.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Install Apache<\/h3>\n\n\n\n<p>In the terminal, type:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install apache2<\/code><\/pre>\n\n\n\n<p>Press &#8220;y&#8221; and press enter when it asks if you want to install<\/p>\n\n\n\n<p><strong>Check<\/strong><br>Let&#8217;s test if the webserver is installed by navigating to <a href=\"http:\/\/localhost\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost<\/a> in your browser (like Chrome or Firefox).<\/p>\n\n\n\n<p><strong>Enable rewrite module<\/strong><\/p>\n\n\n\n<p>So we can make pretty urls that don&#8217;t end on .php or .html<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo a2enmod rewrite<\/code><\/pre>\n\n\n\n<p><strong>Write permissions<\/strong><\/p>\n\n\n\n<p>We need permissions to write in the web documents directory (\/var\/www\/).<br>To do this, we change the owner of the web documents to the current user of the computer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R $(whoami) \/var\/www<\/code><\/pre>\n\n\n\n<p><strong>Edit envvars<\/strong><\/p>\n\n\n\n<p>Now the computer user owns the directory, Apache can&#8217;t write to this directory anymore.<br>Let&#8217;s fix that by letting Apache act as our current computer user.<br>(it would be safer to create a new user with less permissions, but this is a quick tutorial).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/apache2\/envvars<\/code><\/pre>\n\n\n\n<p>This opens the file envvars in the text editor Nano.<br>Look for the lines:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export APACHE_RUN_USER=<strong>www-data<\/strong>\nexport APACHE_RUN_GROUP=<strong>www-data<\/strong><\/code><\/pre>\n\n\n\n<p>change both &#8220;www-data&#8221; into the name of your computer user.<br>If your user is named &#8220;bert&#8221;, it will look like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export APACHE_RUN_USER=<strong>bert<\/strong>\nexport APACHE_RUN_GROUP=<strong>bert<\/strong><\/code><\/pre>\n\n\n\n<p>Exit Nano with CTRL-X.<br>If it asks to save modified buffer (aka save file): press &#8220;y&#8221;.<br>If it asks the name of the file, just press enter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Install PHP<\/h3>\n\n\n\n<p>Install PHP and its MariaDB extension (MariaDB was formerly known as: MySQL):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install php libapache2-mod-php\nsudo apt install php-mysql<\/code><\/pre>\n\n\n\n<p>Lets also install the PHP modules we need for Posadoble:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install -y openssl php-mail php-bcmath php-curl php-mbstring php-mysql php-tokenizer php-xml php-zip php-intl php-exif php-gd<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Restart Apache <\/h3>\n\n\n\n<p>Restart the webserver for the changes to take effect:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service apache2 restart<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Install MySQL\/MariaDB<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mariadb-server<\/code><\/pre>\n\n\n\n<p>To be sure update the package manager again, otherwise the next command might not run.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt upgrade<\/code><\/pre>\n\n\n\n<p>Out of the box mysql is installed with the default user: root with no password.<br>This is extremely insecure, because everyone and his dog knows this user and password combination.<\/p>\n\n\n\n<p>There is a little tool to fix this security issue:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mariadb-secure-installation<\/code><\/pre>\n\n\n\n<p>The tool asks a couple of questions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Current password for root: <br>just hit enter, because there is no password yet<\/li>\n\n\n\n<li>Switch to unix_socket authentication? <strong>no<\/strong> <br>Because then you cant connect with windows to mysql<\/li>\n\n\n\n<li>Change root password? <strong>yes<\/strong>\n<ul class=\"wp-block-list\">\n<li>New password<br>Enter a new password<\/li>\n\n\n\n<li>Re-enter password<br>Repeat the password you just typed<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Remove anonymous users? <strong>yes<\/strong><\/li>\n\n\n\n<li>Disallow root login remotely? <strong>yes<\/strong><br>The database server and the webserver are installed on the same computer,<br>it doesn&#8217;t make sense that other computers can connect to the database.<\/li>\n\n\n\n<li>remove test database? <strong>yes<\/strong><\/li>\n\n\n\n<li>reload privilege tables? <strong>yes<\/strong><br><\/li>\n<\/ul>\n\n\n\n<p>To make the database extra secure, it is wise to create a new user with another password.<br>This will be the user that we use for Posadoble.<br>Make sure that this user has only access to one database: the database of Posadoble.<br>For the sake of a quick tutorial, I&#8217;ll skip this.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Install Posadoble<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Delete index.html<\/h3>\n\n\n\n<p>Remove the example document index.html file from \/var\/www\/html\/index.html  <br>because it might interfere with Posadoble.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rm \/var\/www\/html\/index.html<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Download<\/h3>\n\n\n\n<p>Before we can download, make sure the program &#8220;wget&#8221; and &#8220;unzip&#8221; are installed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install wget\nsudo apt install unzip<\/code><\/pre>\n\n\n\n<p>Now download the software:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/github.com\/grotebozewolfgromt\/cms5\/archive\/refs\/heads\/main.zip --quiet --continue --show-progress --output-document \/home\/$(whoami)\/Downloads\/posadoble.zip<\/code><\/pre>\n\n\n\n<p>Extract the zip archive in your Downloads directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip \/home\/$(whoami)\/Downloads\/posadoble.zip -d \/home\/$(whoami)\/Downloads\/posadoble<\/code><\/pre>\n\n\n\n<p>Move the public directory into the <strong>public<\/strong> webserver directory (and remove empty left-over directory)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mv \/home\/$(whoami)\/Downloads\/posadoble\/cms5-main\/public\/* \/var\/www\/html\nrm -r \/home\/$(whoami)\/Downloads\/posadoble\/cms5-main\/public<\/code><\/pre>\n\n\n\n<p>Move the rest of the files into the <strong>private<\/strong> webserver directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mv \/home\/$(whoami)\/Downloads\/posadoble\/cms5-main\/* \/var\/www\/<\/code><\/pre>\n\n\n\n<p>Clean up the download (optional)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rm \/home\/$(whoami)\/Downloads\/posadoble.zip\nrm -r \/home\/$(whoami)\/Downloads\/posadoble<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Start Installer<\/h3>\n\n\n\n<p>In your browser, type in the address bar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><a href=\"http:\/\/localhost\/install\/index.php\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost\/install\/index.php<\/a><\/code><\/pre>\n\n\n\n<p>(you can also click the link above, it will open in a new tab)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Choose &#8220;install&#8221; and click &#8220;next&#8221;<\/li>\n\n\n\n<li>Check the &#8220;I Agree box&#8221; and click &#8220;next&#8221;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pre requisites checks<\/h3>\n\n\n\n<p>You will probably get a couple of errors in the pre-requisites screen, if not, congratulations, skip this step by clicking &#8220;next&#8221;.<\/p>\n\n\n\n<p><strong>mod_rewrite<\/strong><\/p>\n\n\n\n<p>Posadoble needs this to make pretty urls in the browser bar.<br>We enabled mod_rewrite before, so this shouldn&#8217;t be a problem.<br>When you get an error in the installer, you might have missed it earlier:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo a2enmod rewrite<\/code><\/pre>\n\n\n\n<p>Restart the webserver for the change to take effect:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service apache2 restart<\/code><\/pre>\n\n\n\n<p><strong>url rewriting<\/strong><\/p>\n\n\n\n<p>If you get an error here, <br>open the \/etc\/apache2\/apache2.conf file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/apache2\/apache2.conf<\/code><\/pre>\n\n\n\n<p>In the \/etc\/apache2\/apache2.conf file, <br>look for the following lines that start with &#8220;&lt;Directory \/var\/www\/&gt;&#8221;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Directory \/var\/www\/&gt;\n        Options Indexes FollowSymLinks\n        AllowOverride <strong>None<\/strong>\n        Require all granted\n&lt;\/Directory&gt;<\/code><\/pre>\n\n\n\n<p>&#8220;AllowOverride <strong>None<\/strong>&#8221; should read &#8220;AllowOverride <strong>All<\/strong>&#8220;, so:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Directory \/var\/www\/&gt;\n        Options Indexes FollowSymLinks\n        AllowOverride <strong>All<\/strong>\n        Require all granted\n&lt;\/Directory&gt;<\/code><\/pre>\n\n\n\n<p>CTRL-X out of Nano, when it asks to save: yes.<\/p>\n\n\n\n<p>Restart the webserver for the change to take effect:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service apache2 restart<\/code><\/pre>\n\n\n\n<p><strong>Re-run checks<\/strong><\/p>\n\n\n\n<p>You can see if everything works by click on the &#8220;<strong>run checks again<\/strong>&#8221; link on the bottom of the page of the installer.<\/p>\n\n\n\n<p>Everything should be good to go now!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Next, next, next<\/h3>\n\n\n\n<p>Just follow the guided instructions in the installer and click the &#8220;next&#8221; button on very screen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installation report<\/h3>\n\n\n\n<p>The last screen is the installation report.<br>Please write down (or copy or print) all the information of the installation report for your own administration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Login<\/h3>\n\n\n\n<p>In the installation report you&#8217;ll find a button &#8220;login&#8221;, this takes you to the login screen of Posadoble.<\/p>\n\n\n\n<p>Have fun!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Manual install instructions for Debian &amp; Ubuntu Linux This installation process applies to all linux distributions with the &#8220;apt&#8221;-package manager.This is includes: Debian, Ubuntu, Kubuntu, Pop-os, Tuxedo OS, Raspberry Pi OS etc.. Too long or too boring? Might wanna try the automatic install script for Debian &amp; Ubuntu Posadoble is a web application.This means it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-113","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/pages\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/comments?post=113"}],"version-history":[{"count":117,"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/pages\/113\/revisions"}],"predecessor-version":[{"id":609,"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/pages\/113\/revisions\/609"}],"wp:attachment":[{"href":"https:\/\/www.posadoble.eu\/en\/wp-json\/wp\/v2\/media?parent=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}