Skip to content

Postup inštalácie a konfigurácie serveru pre predmet Webte2

License

Notifications You must be signed in to change notification settings

jakubmatisak/webte2-installation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

Webte2 server setup

Nastavenie LEMP webového servera pre predmet webte2 FEI STU. Server je dostupný na verejnej IP adrese v tvare 147.175.98.XX, ktorá je dostupná iba cez VPN. Server má priradené aj doménové meno v tvare siteXX.webte.fei.stuba.sk . Znaky XX v doménovom tvare adresy sú nahradené posledným číslom z IP adresy (môžu to byť 2 alebo 3 číslice).

Pred samotnou inštaláciou je nutné byť pripojený k univerzitnej sieti buď fyzicky alebo cez VPN. Návod pre nastavenie VPN je dostupný na stránke https://www.stuba.sk/sk/pracoviska/centrum-vypoctovej-techniky/cinnosti-a-sluzby/vzdialeny-vpn-pristup-do-siete-stu.html?page_id=3750.

V celom návode je potrebné kľúčové slová username a password nahrádzať vlastným prihlasovacím menom (login) a heslom, ktoré ste obdržali mailom.

Softvér a verzie

  • Ubuntu 22.04
  • Nginx
  • PHP 8.2
  • MySQL 8
  • PhpMyAdmin

Pripojenie k serveru pomocou SSH

Cez program putty (windows) alebo priamo cez terminál (OSx/Linux) sa pripojiť k svojmu pridelenému serveru.

ssh username@147.175.98.XX

Po prompte zadať heslo.

Update systému

Po prihlásení je nutné systém aktualizovať

sudo apt update
sudo apt dist-upgrade

Ak sa po upgrade objaví táto notifikácia

nginx

spravte reštart systému pomocou príkazu

sudo reboot

Reštart systému ukončí reláciu, po niekoľkých sekundách treba znova nadviazať ssh spojenie.

V prípade, že sa počas inštalácie zobrazí okno podobné tomuto

nginx

nemeňte žiadne nastavenia, len stlačte Ok a pokračujte ďalej.

Pridanie repozitárov pre novšie verzie softvéru php a phpmyadmin

sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt update

Nginx

Inštalácia balíkov webserveru nginx, textového editora vim.

sudo apt install nginx vim

Poznámka: Miesto editora vim môžete použiť aj iný editor, ako napríklad nano.

Po navštívení IP adresy by webový prehliadač mal zobrazovať

nginx

Pridanie usera do skupiny www-data.

sudo usermod -aG www-data $USER

Zmena sa prejaví až pri novej relácii, systém je možné rovno reštartovať.

sudo reboot

Reštart systému ukončí reláciu, po niekoľkých sekundách treba znova nadviazať ssh spojenie.

Kontrola pridania používateľa do skupiny (Nepovinné)

Po zadaní príkazu

groups

by výstup mal vyzerať

username sudo www-data

MySQL

Inštalácia MySQL databázového serveru.

sudo apt install mysql-server

Kvôli spusteniu skriptu na zabezpečenie databázy je potrebné zmeniť spôsob prihlásenia pre root užívateľa.

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
exit

Spustenie skriptu na zabezpečenie databázy.

sudo mysql_secure_installation

Odpovede na otázky počas konfigurácie:

  • no
  • Change the password for root? - no
  • Remove anonymous user? - yes
  • Disallow root login remotely? - yes
  • Remove test database and access to it? - no
  • Reload privilege tables now? - yes

Spôsob prihlásenia pre root uzivateľa zmeníme naspäť.

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
exit

Pripojenie ku MySQL konzole.

sudo mysql

Prompt sa zmení na mysql> Vytvorenie nového používateľa pre prístup a srpávu databáz.

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

Pridanie privilégií pre prácu s databázami.

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

Opustenie konzoly MySQL pomocou Ctrl + d alebo exit.

Kontrola pridania používateľa pre prístup k databáze (Nepovinné)

Prihlásenie sa do MySQL konzoly pod novým používateľom

mysql -u username -p

PHP

Inštalácia PHP 8.2.

sudo apt install php-fpm

Odpoveďou na príkaz php -v by malo byť

PHP 8.2.2 (cli) (built: Feb 7 2023 11:28:53) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.2, Copyright (c), by Zend Technologies

Vytvorenie Virtual host konfigurácie pre URL

Reťazec XX nahradiť prideleným číslom podľa URL

sudo vim /etc/nginx/sites-available/siteXX.webte.fei.stuba.sk

Poznámka: Editor vim ukončíte príkazom :wq ak chcete uložiť zmeny alebo :q! ak zmeny ukladať nechcete.

Do súboru vložiť obsah a zameniť režazec XX za posledný číselný segment priradenej IP adresy:

server {
       listen 80;
       listen [::]:80;

       server_name siteXX.webte.fei.stuba.sk;

       root /var/www/siteXX.webte.fei.stuba.sk;
       index index.html index.php;
       
       location / {
               try_files $uri $uri/ =404;
       }
       
       location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
       }
}

Poznámka: Príkaz :%s/XX/16/g vo Vim nahradí všetky výskyty reťazca XX číslom 16.

Vytvorenie symbolického odkazu súboru.

sudo ln -s /etc/nginx/sites-available/siteXX.webte.fei.stuba.sk /etc/nginx/sites-enabled/

Po spustení príkazu sudo service nginx restart by mal webový prehliadač ukazovať chybu 404.

Vytvorenie adresára pre webový server

Skripty a súbory v tomto adresáre sa zobrazia po navštívení pridelenej domény.

Aby bolo možné vytvárať zápisy do adresára musí patriť skupine www-data a mať prístup na zápis pre skupinu.

cd /var
sudo chown -R www-data:www-data www/
sudo chmod g+w -R www/

Po zmene oprávnení je možné zapisovať do adresára /var/www bez sudo privilégií.

cd /var/www
mkdir siteXX.webte.fei.stuba.sk
cd siteXX.webte.fei.stuba.sk
vim index.php

Vytvorte jednoduchý PHP skript, napr.

<?php
	echo "Hello world!"
?>

Po navštívení pridellenej URL by sa mala načítať prázdna stránka s textom Hello world!.

SSL certifikát pre HTTPS

Stiahnuť súbory:

  • webte_fei_stuba_sk.pem
  • webte.fei.stuba.sk.key

Skopírovať ich do:

  • /etc/ssl/certs/webte_fei_stuba_sk.pem;
  • /etc/ssl/private/webte.fei.stuba.sk.key;

Zmeniť konfiguráciu Nginx v súbore /etc/sites-available/siteXX.webte.fei.stuba.sk

server {
       listen 80;
       listen [::]:80;

       server_name siteXX.webte.fei.stuba.sk;

       rewrite ^ https://$server_name$request_uri? permanent;
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;

        server_name siteXX.webte.fei.stuba.sk;

        access_log /var/log/nginx/access.log;
        error_log  /var/log/nginx/error.log info;

        root /var/www/siteXX.webte.fei.stuba.sk;
        index index.php index.html;

        ssl on;
        ssl_certificate /etc/ssl/certs/webte_fei_stuba_sk.pem;
        ssl_certificate_key /etc/ssl/private/webte.fei.stuba.sk.key;

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        }
}

Reštartovať Nginx príkazom

sudo service nginx restart

Po navštívení pridelenej domény vo webovom prehliadači sa stránka načíta pomcou https protokolu nginx

PhpMyAdmin

Inštalácia GUI utility pre správu databázy cez prehliadač.

sudo apt install phpmyadmin

Po spustení inštalácie sa zobrazí séria okien s otázkami, nikde nič nevypĺňať, len stlačiť enter phpmyadmin_1 phpmyadmin_2 phpmyadmin_3

Vytvoriť súbor /etc/nginx/snippets/phpmyadmin.conf a vložiť obsah:

location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    location ~ ^/phpmyadmin/(.+\.php)$ {
        try_files $uri =404;
        root /usr/share/;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
        root /usr/share/;
    }
}

Do konfiguračného súboru /etc/nginx/sites-available/siteXX.webte.fei.stuba.sk pridať riadok

include snippets/phpmyadmin.conf;

Finálny konfiguračný súbor bude vyzerať

server {
    listen 80;
    listen [::]:80;

    server_name site16.webte.fei.stuba.sk;

    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name site16.webte.fei.stuba.sk;

    access_log /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log info;

    root /var/www/site16.webte.fei.stuba.sk;
    index index.php index.html;

    ssl on;
    ssl_certificate /etc/ssl/certs/webte_fei_stuba_sk.pem;
    ssl_certificate_key /etc/ssl/private/webte.fei.stuba.sk.key;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }

    include snippets/phpmyadmin.conf;
}

Po reštarte nginx serveru príkazom sudo service nginx restart otvoriť stránku https://siteXX.webte.fei.stuba.sk/phpmyadmin. Úvodná obrazovka by mala vyzerať takto:

phpmyadmin_5

Po zadaní prihlasovacích údajov zo sekcie MySQL by sa mala zobraziť táto aplikácia

phpmyadmin_6

License

MIT

About

Postup inštalácie a konfigurácie serveru pre predmet Webte2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published