Quellen:
Ubuntu










Mehr Informationen:
https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview
SSH installieren
sudo apt install openssh-server
sudo systemctl status ssh
sudo systemctl enable ssh
sudo systemctl start ssh
sudo reboot
Einwahl über SSH-Client, wie bspw. Putty

Mehr Informationen:
https://www.ionos.de/digitalguide/server/konfiguration/ubuntu-ssh/
IPv6 ausschalten
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1" GRUB_CMDLINE_LINUX="ipv6.disable=1"
sudo update-grub
sudo reboot
Mehr Informationen:
https://itsfoss.com/disable-ipv6-ubuntu-linux/
Shell pimpen
sudo apt-get install trash-cli # Papierkorb
sudo cp /etc/bash.bashrc /etc/bash.bashrc.bak
sudo nano /etc/bash.bashrc
alias +='pushd .' alias ..='cd ..' alias ...='cd ../..' alias dir='ls -la --color=auto' alias d='ls -la --color=auto' alias gzcat='gunzip -c' alias l='ls -alF' alias la='ls -la' alias ll='ls -la' alias ls='/bin/ls $LS_OPTIONS' alias ls-l='ls -l' alias md='mkdir -p' alias o='less' alias rd='rmdir' alias rehash='hash -r' alias rm='rm -i' alias unzip='tar xfvz' alias which='type -p' alias zip='tar cfvz' alias sudo='sudo ' alias del='trash -rf'
sudo nano ~/.bashrc # ein kürzerer Prompt
GREEN="\[$(tput setaf 2)\]" RESET="\[$(tput sgr0)\]" PS1="${GREEN}$${RESET}"
Mehr Informationen:
https://1manfactory.com/pimp-my-shell-eine-vernuenftige-arbeitsumgebung-fuer-linux/
ein Zusatz-Admin zur Sicherheit
sudo adduser <NUTZER>
sudo adduser <NUTZER> sudo
Webmin
sudo apt update
curl -fsSL https://download.webmin.com/jcameron-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/webmin.gpg
sudo nano /etc/apt/sources.list
deb [signed-by=/usr/share/keyrings/webmin.gpg] http://download.webmin.com/download/repository sarge contrib
sudo apt update
sudo apt install webmin
# Browser: http://<HOST>:10000

Mehr Informationen:
https://www.digitalocean.com/community/tutorials/how-to-install-webmin-on-ubuntu-22-04
nginx
sudo apt update
sudo apt install nginx
sudo systemctl status nginx
# Browser: http://<HOST>
sudo systemctl stop nginx # Stoppen
sudo systemctl start nginx # Starten
sudo systemctl restart nginx # Neustart
sudo systemctl reload nginx # sanfter Neustart nach Neu/Re-Konfiguration
sudo systemctl disable nginx # Autostart (Default) verhindern
sudo systemctl enable nginx # Autostart wieder ermöglichen

Rechte für /var/www/html
sudo chown -R www-data: /var/www/html/
sudo find /var/www/html -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +
sudo usermod -a -G www-data $USER
exit # Neueinwahl nötig
PHP für nginx
sudo apt-get install php8.1-fpm
sudo systemctl status php8.1-fpm # läuft der PHP-Service?
sudo nano /etc/nginx/sites-available/default
Folgendes muss angepasst werden:
- index.php zur Indexliste hinzufügen (Zeile 8)
- Entkommentieren der Zeilen 17, 18, 21, 24, 28, 29 und 30
server {
# Example PHP Nginx FPM config file
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# Add index.php to setup Nginx, PHP & PHP-FPM config
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
# pass PHP scripts on Nginx to FastCGI (PHP-FPM) server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Nginx php-fpm sock config:
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
# Nginx php-cgi config :
# Nginx PHP fastcgi_pass 127.0.0.1:9000;
}
# deny access to Apache .htaccess on Nginx with PHP,
# if Apache and Nginx document roots concur
location ~ /\.ht {
deny all;
}
} # End of PHP FPM Nginx config example
sudo nginx -t # um die Änderungen an der Konfiguration zu testen
sudo systemctl restart nginx # Neustart des Servers
Mehr Informationen:
https://1manfactory.com/nginx-ubuntu-php-fpm/
PHPINFO
sudo echo "<?php phpinfo(); ?>" >> /var/www/html/info.php
# Browser http://<HOST>/info.php

nginx-Modul für Webmin
Webmin -> Webmin Configuration -> Webmin Modules
Install from „From HTTP or FTP URL“
Quelle: https://github.com/Sumarious/nginx-webmin/raw/master/nginx.wbm.gz

Mehr Informationen:
https://github.com/Sumarious/nginx-webmin
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-20-04
Composer
sudo apt update
sudo apt install php-cli unzip # benötigt
cd ~
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer

Mehr Informationen:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-22-04
PostgreSQL
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql.service
sudo systemctl status postgresql
Mehr Informationen:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04
PostgreSQL in Webmin
Webmin -> Refresh Modules
Servers -> PostgreSQL Database Server

HeidiSQL für PostgreSQL
WICHTIG: IP6 muss deaktiviert sein (siehe oben)
sudo nano /etc/postgresql/14/main/postgresql.conf
listen_addresses = '*'
sudo nano /etc/postgresql/14/main/pg_hba.conf
# IPv4 local connections: #host all all 127.0.0.1/32 scram-sha-256 host all all 0.0.0.0/0 scram-sha-256
sudo service postgresql restart
Da IP6 jetzt deaktiviert ist, muss noch eine Einstellung für nginx dringend angepasst werden:
sudo nano /etc/nginx/sites-available/default
#listen [::]:80 default_server; dieser Eintrag muss deaktiviert sein, wenn kein IP6
sudo systemctl restart nginx # nginx neu starten
neuer User für PostgreSQL
Webmin -> PostgreSQL -> PostgreSQL Users -> Create a new user



Samba
sudo apt-get install samba
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup # Kopie schadet nie
systemctl status smbd # Status prüfen

sudo nano /etc/samba/smb.conf
[www] comment = Web Root Dir path = /var/www/html valid users = @www-data browseable = yes public = no writable = yes printable = no create mode = 0644 directory mode = 0775 force group = www-data force user = www-data
sudo usermod -aG www-data $USER
sudo smbpasswd -a $USER # für jeden Nutzer notwendig, der Samba nutzen soll
sudo service smbd restart
systemctl status smbd
sudo smbstatus --shares # zeigt aktive Verbindungen
In der Windows-Kommandozeile eine Verbindung herstellen:
net use X: \\<HOST>\www /user:<USER> <PASSWORD>

Symfony
Symfony-cli Binary installieren
sudo apt-get install php-xml # wird noch benötigt
cd ~
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
sudo apt install symfony-cli
ein neues Symfony-Projekt anlegen
sudo chown -R www-data:www-data /var/www/html/
sudo find /var/www/html/ -type d -exec chmod 775 {} \;
sudo find /var/www/html/ -type f -exec chmod 664 {} \;
sudo find /var/www/html/ -type d -exec chmod g+s {} \;
cd /var/www/html/
symfony new --webapp testprojekt
cd testprojekt/
composer require --dev symfony/profiler-pack
symfony server:start -d # Symfony Server starten
Aufruf über Symfony Server

Aufruf über nginx
