Jak nainstalovat a nastavit PHP 7 + MariaDB + NGINX + phpMyAdmin na Armbianu

Orange Pi
Orange Pi

Pokud chcete použit Orange Pi jako Web server, je instalace poměrně jednoduchá. Po internetu je dost návodů, ale vždy mi na nich něco chybělo a tak jsem se rozhodl napsat krátký návod, který se snad bude někomu hodit. Instalace bude probíhat na Armbianu.

Nejdříve se ujistěte, že máte aktuální systém:
sudo apt-get update
sudo apt-get upgrade

 

INSTALACE

1) Začněme instalací PHP a MariaDB:
sudo apt-get install php mariadb-server mariadb-client php7.0-cli php7.0-cgi php7.0-fpm

2) Po instalaci službu vypneme:
sudo service mysql stop

3) Necháme vytvořit základní databázovou strukturu:
sudo mysql_install_db

4) Službu opět spustíme:
sudo service mysql start

5) V dalším kroku odstraníme testovací databázi a anonymní uživatele.
sudo mysql_secure_installation

 

Pokud jste při instalaci nezadávali heslo pro root uživatele, požadavek na zadání jen potvrďte. Druhý dotaz bude, zda chceme nastavit heslo pro roota. Zvolíme „Y“ a zadáme 2x libovolné heslo pro uživatele. Heslo si minimálně někam zapište.

 

V dalších volbách budeme postupovat následovně:

Remove anonymous users?Zvolíme ano, tím odstraníme anonymní uživatele.
Disallow root login remotely?Ano, nebudeme se připojovat mimo localhost.
Remove test database and access to it?Ano, odstraníme testovací databázi.
Reload privilege tables now?Ano, obnovení práv pro databázi.

MariaDB - instalace
MariaDB – instalace

6) Máme hotovo a můžeme nainstalovat Nginx:
sudo apt-get install nginx

7) A konečně phpMyadmin:
sudo apt-get install phpmyadmin

 

V prvním kroku vybíráme web server. Nginx tam nenajdeme, obrazovku jen bez výběru potvrdíme.

phpMyAdmin - instalace
phpMyAdmin – instalace

V dalším kroku instalátor nabídne použití přednastavené konfigurace databáze. Ten by měl pro naše účely stačit, volbu potvrdíme.

phpMyAdmin - instalace - konfigurace databáze
phpMyAdmin – instalace – konfigurace databáze

V posledních dvou krocích budeme zadávat heslo pro databázi a také uživatele phpMyadmin do samotné aplikace.

phpMyAdmin - instalace - heslo
phpMyAdmin – instalace – heslo

Super, instalace jsou za námi a můžeme se podívat na konfiguraci Nginxu.

KONFIGURACE NGINX

Dejme tomu, že jako složku pro naše weby budeme mít složku /var/www/html. Vytvoříme si v ní symlink na adresář phpmyadmin.
sudo ln -s /usr/share/phpmyadmin /var/www/html/

 

Pro jistotu zkontrolujeme práva na adresář:
sudo chmod -R 755 /var/www

 

Nginx pro konfiguraci používá adresáře /etc/nginx/sites-available a /etc/nginx/sites-enabled/. Vytvoříme si v sites-available konfigurační soubor pro phpMyadmin a ten pak do sites-enabled nalinkujeme.

Začneme z default konfigurace:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/phpmyadmin

 

A tu si upravíme pro naše potřeby:

sudo nano /etc/nginx/sites-available/phpmyadmin

 
server {
  listen 80; #Port, na kterém bude Nginx poslouchat

  server_name 192.168.100.50; #Adresa Orange Pi - zjistíte přes ifconfig -a

  root /var/www/html/; #Kořenový adresář, kam jsme nalinkovali phpMyadmin

  index index.html index.htm index.nginx-debian.html index.php; # nezapomeňme dopsat index.php

  #Obecné nastavení php souborů a chování Nginx
  location ~ \.php$ {
    try_files $uri =404;
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
  }

  #Nastavení php souborů a chování Nginx v phpmyadmin složce.
  #Tím si i zajistíme, že nám bude fungovat přistup přes http://ip_adresa/phpmyadmin
  location ~ ^phpmyadmin {
    try_files $uri =404;
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
  }
}

Poslední věc, která nám chybí, je vytvořit symlink v sites-enabled:
sudo ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/

Nakonec reloadnem config Nginx:

systemctl reload nginx

Založení root uživatele pro phpMyAdmin

Od MySQL verze 5.7 byl změněn model zabezpečení a od této verze přístup za „root“ vyžaduje sudo, proto se s ním není možné přes phpMyAdmin přihlásit. Založíme nového uživatele s root právem.

Spustíme MySql přes roota:
sudo mysql --user=root mysql

Vytvoříme uživatele, kde za „uzivatel“ dáme libovolné uživatelské jméno a za „heslo“ jeho heslo:
CREATE USER 'uzivatel'@'localhost' IDENTIFIED BY 'heslo';
GRANT ALL PRIVILEGES ON *.* TO 'uzivatel'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

A pokud jste udělali vše správně a já na nic nezapomněl, uvidíme na http://ip_adresa/phpmyadmin/ okno po přihlášení.

phpMyAdmin - login
phpMyAdmin – login