Instalacja apache2, PHP, MariaDB (MySQL), phpMyAdmin oraz SSL na Ubuntu i Debianie

KMatuszak | 2022-06-17 13:32:35 UTC | #1

Witam, w tym poradniku opiszę jak zainstalować apache2, PHP, MariaDB (MySQL) i phpMyAdmin oraz jak skonfigurować wiele stron na jednym serwerze (wirtualne hosty) i zainstalować dla nich darmowy certyfikat SSL od Let’s Encrypt :smile:

Wiem że na forum znajduje się już kilka takich poradników, jednak nie są one zbyt świeże i nie ma takiego, gdzie wszystko jest w jednym miejscu, więc postanowiłem napisać własny :slight_smile:

Całość została dokładnie przetestowana i jest kompatybilna z następującymi systemami:
- Ubuntu 22.04
- Ubuntu 20.04
- Ubuntu 18.04
- Debian 11
- Debian 10
- Debian 9

Zalecam instalację na czystym systemie, gdzie wcześniej nie był instalowany serwer www.

Aktualizacja repozytoriów:

apt update

Uwaga! W przypadku pracy na koncie użytkownika innym niż root, należy przed komendą dopisać sudo.

Aktualizacja pakietów:

apt upgrade

Uwaga! W przypadku pracy na koncie użytkownika innym niż root, należy przed komendą dopisać sudo.

Instalacja pakietów pomocniczych:

# dla Ubuntu: (jedna komenda)
apt install zip sudo nano wget software-properties-common

# dla Debiana: (jedna komenda)
apt install zip sudo nano wget lsb-release apt-transport-https ca-certificates

Uwaga! W przypadku pracy na koncie użytkownika innym niż root, należy przed komendą dopisać sudo. To była ostania komenda różniąca się w zależności od użytkownika, kolejne można wykonywać zawsze z przedrostkiem sudo.

Dodawanie repozytoriów PHP

# dla Ubuntu: (jedna komenda)
LC_ALL=C.UTF-8 sudo add-apt-repository ppa:ondrej/php

# dla Debiana: (dwie komendy)
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Ponowna aktualizacja repozytoriów:

sudo apt update

Instalacja apache2 i PHP wraz z podstawowymi rozszerzeniami

Jeżeli potrzebujesz innej wersji php, możesz ją podmienić w każdej komendzie :wink:

sudo apt install apache2 php8.0 libapache2-mod-php8.0 php8.0-mysql php8.0-mbstring php8.0-curl

Jeżeli potrzebujesz dodatkowe rozszerzenia, możesz zainstalować je teraz używając komendy sudo apt install php8.0-nazwa_rozszerzenia

Przeładowanie serwera apache2

sudo systemctl restart apache2

Instalacja serwera WWW wraz z obsługą PHP została zakończona, kolejne kroki możesz wykonać opcjonalnie jeżeli potrzebujesz na przykład bazy danych MySQL.

Instalacja serwera bazy danych MariaDB (MySQL)

MariaDB to nowsza wersja MySQL, która posiada wyższą wydajność i więcej funkcji zachowując przy tym pełną kompatybilność.

sudo apt install mariadb-server mariadb-client

Konfiguracja bazy danych MariaDB

Najpierw uruchomimy skrypt, który zabezpieczy bazę danych (zmieni kilka domyślnych opcji na bardziej bezpieczne)

sudo mysql_secure_installation

Zostaniesz zapytany o obecne hasło do konta root bazy danych - domyślnie jest ono puste więc wystarczy wcisnąć tutaj enter.
image|636x199, 75%
Następnie zostaniesz zapytany, czy chcesz ustawić hasło dla konta root. Zalecam wyrazić zgodę i ustawić hasło.
image|645x163, 75%
W kolenym kroku zostaniesz zapytany czy usunąć anonimowych użytkowników, zalecam zrobić to.
image|690x125, 75%
Kolejny krok to pytanie o zablokowanie logowania zdalnego do bazy danych, zalecam zgodzić się na to nawet, jeżeli chcesz z niego korzystać, wróćę do tego w dalszej części poradnika.
image|690x81, 75%
Przedostatni krok to pytanie o usunięcie testowej bazy danych, zalecam zgodzić się na to.
image|660x97, 75%
Ostatni już krok to pytanie o przeładowanie uprawnień. Oczywiście należy zgodzić się.
image|661x233, 75%

Tworzenie nowego użytkownika bazy danych

Korzystanie z konta root nie jest zbyt dobrym pomysłem, a niektóre aplikacje, np. phpMyAdmin nie pozwalają nawet na korzystanie z niego. Warto utworzyć więc dodatkowego użytkownika.

Uruchom klienta MySQL wykonując poniższe polecenie:

sudo mysql

Twoim oczom powninien ukazać się taki oto ekran:
image|690x179, 75%
(dzięki użyciu sudo nie musimy podawać żadnego hasła, po prostu zostajemy wpuszczeni od razu i mamy dostęp do wszystkiego )

Teraz wykonujemy poniższe polecenia, podmieniając w nich nazwę użytkownika, hasło i adres IP

# jeżeli chcemy aby z użytkownika można było korzystać tylko lokalnie
CREATE USER 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON * . * TO 'nazwa_użytkownika'@'localhost';
FLUSH PRIVILEGES;

# jeżeli chcemy aby z użytkownika można było korzystać lokalnie oraz zdalnie z każdego adresu IP
CREATE USER 'nazwa_użytkownika'@'%' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON * . * TO 'nazwa_użytkownika'@'%';
FLUSH PRIVILEGES;

# jeżeli chcemy aby z użytkownika można było korzystać lokalnie oraz zdalnie tylko z wybranego adresu IP
CREATE USER 'nazwa_użytkownika'@'123.123.123.123' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON * . * TO 'nazwa_użytkownika'@'123.123.123.123';
FLUSH PRIVILEGES;

… i wychodzimy z klienta bazy danych poleceniem quit :wink:
image|688x234, 75%

Zezwalanie na zdalny dostęp do bazy danych (opcjonalnie)

Edytujemy plik przy pomocy edytora nano:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Wstawiamy znak # przed linijką zaczynającą się od bind-address:
image|690x461, 75%
Zapisujemy plik i wychodzimy z edytora nano wciskając kolejno Ctrl O, Enter, Ctrl X.
Następnie uruchamiamy ponownie serwer MariaDB:

sudo systemctl restart mariadb

Wirtualne hosty (kilka stron na jednym serwerze, opcjonalnie)

Edytuj plik przy pomocy edytora nano:

sudo nano /etc/apache2/sites-available/000-default.conf

Następnie usuń całą jego zawartość i wklej tam poniższy tekst o jeden raz więcej (będzie to konfiguracja używana w przypadku gdy adres przez który użytkownik próbuje wejść na stronę nie będzie pasował do żadnej ze zdefiniowanych stron) niż ilość stron którą chcesz mieć wpisując uprzednio twój adres e-mail w odpowiednie miejsce.

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Teraz w każdym takim wklejonym bloku z wyjątkiem tego jednego dodatkowego pierwszego (koniecznie pierwszego!) dodaj linijkę ServerName nad linijką ServerAdmin i wpisz tam domenę lub subdomenę z domeną pod którą dostępna ma być strona. Możesz dodać też więcej takich adresów do jednej strony poprzez linijki ServerAlias. Zmień też DocumentRoot /var/www/html na np. DocumentRoot /var/www/mojadomena.pl, i stwórz taki katalog przy pomocy komendy sudo mkdir /var/www/mojadomena.pl (ważne aby utworzyć ten podfolder w katalogu /var/www, w innym przypadku będą występowały problemy z uprawnieniami).

Przykładowa prawidłowa konfiguracja może wyglądać w taki sposób:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
ServerName pma.mojadomena.pl
ServerAdmin [email protected]
DocumentRoot /var/www/pma.mojadomena.pl
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Po wejściu na stronę pma.mojadomena.pl zostanie wyświetlona strona z katalogu /var/www/pma.mojadomena.pl, w przypadku użycia innego adresu zostanie wyświetlona strona z katalogu /var/www/html :slightlysmilingface:

Zapisujemy plik i wychodzimy z edytora nano wciskając kolejno Ctrl O, Enter, Ctrl X.
Następnie uruchamiamy ponownie serwer apache2:

sudo systemctl restart apache2

Zezwalanie na pliki .htaccess (opcjonalnie)

Edytuj plik przy pomocy edytora nano:

sudo nano /etc/apache2/apache2.conf

Przy pomocy kombinacji klawiszy Ctrl W wyszukaj w pliku tekst AllowOverride None i zmień None na All w bloku gdzie jest <Directory /var/www/>.
image|690x451, 75%

Zapisujemy plik i wychodzimy z edytora nano wciskając kolejno Ctrl O, Enter, Ctrl X.
Następnie uruchamiamy ponownie serwer apache2:

sudo systemctl restart apache2

Wyłączanie listowania plików i katalogów (opcjonalnie)

Edytuj plik przy pomocy edytora nano:

sudo nano /etc/apache2/apache2.conf

Przy pomocy kombinacji klawiszy Ctrl W wyszukaj w pliku tekst Options Indexes i usuń Indexes w bloku gdzie jest <Directory /var/www/>.
image|690x451, 75%

Zapisujemy plik i wychodzimy z edytora nano wciskając kolejno Ctrl O, Enter, Ctrl X.
Następnie uruchamiamy ponownie serwer apache2:

sudo systemctl restart apache2

Instalacja i konfiguracja phpMyAdmin (opcjonalnie)

Przejdź do katalogu z plikami strony w której chcesz zainstalować phpMyAdmin, ja użyję do tego utworzonego wcześniej wirtualnego hosta.

cd /var/www/pma.mojadomena.pl

Pobierz najnowszą wersję phpMyAdmin

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip

Rozpakuj pobrane pliki

sudo unzip phpMyAdmin-latest-all-languages.zip

Usuń zbędne już pobrane wcześniej archiwum

sudo rm phpMyAdmin-latest-all-languages.zip

Zmień nazwę wypakowanego folderu dla łatwiejszego dostępu

sudo mv phpMyAdmin-* phpMyAdmin

Przejdź do wypakowanego katalogu

cd phpMyAdmin

Skopiuj przykładowy plik konfiguracyjny

sudo cp config.sample.inc.php config.inc.php

Edytuj skopiowany plik konfiguracyjny przy pomocy edytora nano

sudo nano config.inc.php

Wpisz losowe 32 znaki w miejscu pokazanym poniżej
image|690x451, 75%
Do wygenerowania takiego ciągu znaków możesz użyc na przykład tego generatora haseł: https://generator.blulink.pl/
Zapisujemy plik i wychodzimy z edytora nano wciskając kolejno Ctrl O, Enter, Ctrl X.

Teraz utwórz katalog dla plików tymczasowych phpMyAdmina i nadaj mu odpowiednie uprawnienia:

sudo mkdir tmp
sudo chmod 777 tmp

phpMyAdmin powinien już działać i powinieneś mieć możliwość zalogowania się.
Jeżeli nie działa, upewnij się że wielkość liter w adresie jest prawidłowa, ma to bardzo duże znaczenie!
Po zalogowaniu na dole strony zobaczysz taki komunikat:
image|690x58, 75%
Kliknij w link tutaj który się tam znajduje, a następnie utwórz:
image|690x85, 75%
Powinna zostać utworzona baza danych dla phpMyAdmina i powinieneś zobaczyć taki oto ekran:
image|690x411, 75%
Instalacja oraz konfiguracja phpMyAdmin została ukończona :slight_smile:

Instalacja darmowego certyfikatu SSL od Let’s Encrypt (opcjonalnie, zalecane)

Obecnie połączenie ze stroną nie jest bezpieczne, warto więc zainstalować SSL.
image|107x46

Ten krok wymaga przeprowadzenia konfiguracji związanej z wirtualnymi hostami.

Dodawanie repozytoriów

# dla Ubuntu: (jedna komenda)
sudo add-apt-repository ppa:certbot/certbot

# dla Debiana: (jedna komenda)
echo "deb http://ftp.debian.org/debian $(lsb_release -sc)-backports main" | sudo tee -a /etc/apt/sources.list.d/sources.list

Uwaga! Jeżeli twój system to Ubuntu 20.04, wykonaj dodatkowo tą komendę:

sudo sed -i 's/focal/bionic/g' /etc/apt/sources.list.d/certbot-ubuntu-certbot-focal.list

Aktualizacja repozytoriów:

sudo apt update

Instalacja pakietu

# dla Ubuntu: (jedna komenda)
sudo apt install python-certbot-apache

# dla Debiana: (jedna komenda)
sudo apt install python-certbot-apache -t $(lsb_release -sc)-backports

Generowanie certyfikatu
Możesz podać tutaj dowolną ilość domen oraz subdomen, ważne jest jedynie aby przed każdą podać -d oraz aby każda była w pliku z wirtualnymi hostami, bez znaczenia czy w ServerName czy w ServerAlias, po prostu gdzieś musi być :smile:

sudo certbot --apache -d mojadomena.pl -d www.mojadomena.pl -d pma.mojadomena.pl

Zostaniesz zapytany o adres e-mail do powiadomień o odnowieniu certyfikatu, wpisz go i wciśnij enter aby przejść dalej.
image|690x50, 75%
Następnie musisz zaakceptować warunki, wpisz A i wciśnij enter aby przejść dalej.
image|690x50, 75%
Kolejny krok to pytanie o otrzymywanie informacji dotyczących bezpieczeństwa na podany wcześniej adres e-mail, wybierz według uznania i wciśnij enter aby przejść dalej.
image|690x119, 75%
Ostatni krok to pytanie czy zapytania http mają być automatycznie przekierowywane na https, wybierz według uznania i wciśnij enter.
image|690x130, 75%

Certyfikat został pomyślnie zainstalowany, każda z podanych domen/subdomen powinna być już zabezpieczona :slightlysmilingface:
image|168x45

Dzięki za przeczytanie do końca, w razie problemów lub pytań pisz poniżej, a postaram się pomóc :smile:

|84x126Poradnik miesiąca: lipiec 2020


Keendi | 2020-08-09 11:52:55 UTC | #2

Super, poradnik niestety mam problem przy ostatniej praktycznie rzeczy… Po instalacji phpmyadmin, gdy wchodzę w przez MOJEIP/phpmyadmin - to pokazuje mi że taka strona nie istnieje :frowning:

Zainstalowałem to w folderze html, nie wiem czy zrobiłem dobrze… Nie chce miec phpmyadmin na domenie ale chce miec zainstalowane zeby moc korzystac z tego panelu, i baz danych. Czy jednak musze miec domene podpieta?


KMatuszak | 2020-08-09 11:54:22 UTC | #3

Nie potrzebujesz domeny. Czy na pewno wpisujesz prawidłowe wielkości znaków? W poradniku jest phpMyAdmin, a ty napisałeś phpmyadmin :thinking:


Keendi | 2020-08-09 11:57:54 UTC | #4

[quote=”KMatuszak, post:3, topic:15443”]
phpMyAdmin
[/quote]

O kurcze, nie wiedziałem że ilość znaków ma znaczenie. Dzięki Panie nosaczu, ale mam jeszcze pytanie bo chyba zrobiłem sobie znowu burdel w plikach jak odinstalować phpmyadmin? Bo tamten recznie usunalem i zainstalowalem w innym katalogu znowu, nie zrobilem czegos źle?


KMatuszak | 2020-08-09 12:00:07 UTC | #5

[quote=”Keendi, post:4, topic:15443”]
jak odinstalować phpmyadmin?
[/quote]

wystarczy usunąć katalog z nim, można zrobić to przez jakiegoś klienta sftp, lub wykonując polecenie

rm -rf phpmyadmin

[quote=”Keendi, post:4, topic:15443”]
nie zrobilem czegos źle?
[/quote]
jeżeli użyłeś jednego z powyższych sposobów to zrobiłeś wszystko jak najbardziej prawidłowo :wink:


Keendi | 2020-08-09 12:02:20 UTC | #6

Panie nosaczu a czy jak podpialbym domene kiedys, i zrobilbym ten SSL, i wczesniej .htaccess to wszystko bedzie mi dzialac tak samo prawidlowo jak na gotowym hostingu?


KMatuszak | 2020-08-09 12:03:14 UTC | #7

tak :slightlysmilingface:


Keendi | 2020-08-09 12:08:38 UTC | #8

[quote=”KMatuszak, post:3, topic:15443”]
phpMyAdmin
[/quote]

Super! Udało mi się to zrobić, natomiast taki błąd się pojawił, uprawnień brakuje jakiś, nie wiem czy to uprawnienia konta, czy jak?image|690x92


KMatuszak | 2020-08-09 12:23:12 UTC | #9

[quote=”KMatuszak, post:1, topic:15443”]
Teraz wykonujemy poniższe polecenia, podmieniając w nich nazwę użytkownika, hasło i adres IP

# jeżeli chcemy aby z użytkownika można było korzystać tylko lokalnie
CREATE USER 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON * . * TO 'nazwa_użytkownika'@'localhost';
FLUSH PRIVILEGES;

# jeżeli chcemy aby z użytkownika można było korzystać lokalnie oraz zdalnie z każdego adresu IP
CREATE USER 'nazwa_użytkownika'@'%' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON * . * TO 'nazwa_użytkownika'@'%';
FLUSH PRIVILEGES;

# jeżeli chcemy aby z użytkownika można było korzystać lokalnie oraz zdalnie tylko z wybranego adresu IP
CREATE USER 'nazwa_użytkownika'@'123.123.123.123' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON * . * TO 'nazwa_użytkownika'@'123.123.123.123';
FLUSH PRIVILEGES;

[/quote]

czy na pewno nie pominąłeś żadnej z tych komend?


Keendi | 2020-08-09 12:24:18 UTC | #10

Nie, wpisywałem je osobno linijka po linijce, dobrze? A jak coś źle zrobiłem to musze usunąć swój nick i jeszcze raz zrobić? Jak to sie usuwa?


KMatuszak | 2020-08-09 12:26:24 UTC | #11

spróbuj jeszcze raz wykonać komendę zaczynającą się od GRANT pamiętając o podmianie nazwy użytkownika i przeładuj uprawnienia komendą FLUSH PRIVILEGES;


Keendi | 2020-08-09 12:28:11 UTC | #12

[quote=”KMatuszak, post:11, topic:15443”]
FLUSH PRIVILEGES;
[/quote]

Zrobiłem i nie działa :confused:

CREATE USER 'Keendi'@'%' IDENTIFIED BY 'UKRYŁEM_HASŁO';
GRANT ALL PRIVILEGES ON * . * TO 'Keendi'@'%';
FLUSH PRIVILEGES;

Może muszę usunąć konto moje i dodac jeszcze raz??


KrEdEnS | 2020-08-09 12:30:08 UTC | #13

wykonaj komendę
GRANT ALL PRIVILEGES ON *.* TO 'Keendi'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;


Keendi | 2020-08-09 12:31:31 UTC | #14

[quote=”KrEdEnS, post:13, topic:15443”]
GRANT ALL PRIVILEGES ON *.* TO 'Keendi'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
[/quote]

Nadal nie mam uprawnień :frowning: Moze naprawdę trzeba usunąć moje konto i dodać ponownie? Tylko zielonego pojęcia nie mam jak to zrobić


KrEdEnS | 2020-08-09 12:34:01 UTC | #15

Spróbuj utworzyć bazę
obraz|416x179


Keendi | 2020-08-09 12:40:11 UTC | #16

Klikam w to, i nic się nie dzieje :frowning:, innych czystych baz danych też nie mogę tworzyć

EDIT: Może podaj mi komendę na usunięcie mnie z mariaDB, może dzięki temu stworzę jeszcze raz konto i zadziała?


KMatuszak | 2020-08-09 12:41:22 UTC | #17

spróbuj utworzyć użytkownika bez dużych liter w jego nazwie, lub zaloguj się do PMA bez użycia dużych liter.


KrEdEnS | 2020-08-09 13:11:26 UTC | #18

[quote=”KMatuszak, post:1, topic:15443”]

# jeżeli chcemy aby z użytkownika można było korzystać tylko lokalnie
CREATE USER 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'hasło';
GRANT ALL PRIVILEGES ON * . * TO 'nazwa_użytkownika'@'localhost';
FLUSH PRIVILEGES;

[/quote]
Utwórz użytkownika lokalnego

Wywal tego starego

DROP USER 'Keendi'@'%';

Keendi | 2020-08-09 12:48:08 UTC | #19

[quote=”KrEdEnS, post:18, topic:15443”]
DROP USER 'Keendi@'%';
[/quote]

Teraz to już na pewno coś zepsułem są 2 te same Nicki :frowning:
Komenda na usuwanie nie działa mi albo ją źle wpisuję.. :confused:

image|690x321


Keendi | 2020-08-09 13:06:39 UTC | #20

Dobra jakimś cudem usunąłem te 2 konta, ale była na to inna trochę komenda.

Nie mam jednej bazy tutaj stworzonej, mimo to wszystko jest już dobrze?image|538x129


KMatuszak | 2020-08-09 13:07:52 UTC | #21

@KrEdEnS zrobił mały błąd, powinno być

 DROP USER 'Keendi'@'%';

[quote=”Keendi, post:20, topic:15443”]
Nie mam jednej bazy tutaj stworzonej, mimo to wszystko jest już dobrze?
[/quote]
utwórz tą dla phpMyAdmina :wink:


Keendi | 2020-08-09 13:10:37 UTC | #22

Dzięki wielkie już wszystko śmiga :D


KrEdEnS | 2020-08-09 13:10:47 UTC | #23

+1 dzięki za poprawkę :)


Keendi | 2020-08-09 16:32:53 UTC | #24

Mam jeszcze pytanie odnośnie tego poradnika. Zrobiłem ” Wirtualne hosty (kilka stron na jednym serwerze, opcjonalnie)” według poradnika, i mimo to jak zwykle u mnie nie działa to 😅

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/keendi.pl
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
ServerName mysql.keendi.pl
ServerAdmin [email protected]
DocumentRoot /var/www/mysql.keendi.pl
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Co tym razem jest nie tak? Na cloudflare domena mysql.keendi.pl jest już przekierowana na mojego vps

image|690x21


KMatuszak | 2020-08-09 16:37:13 UTC | #25

co konkretnie nie działa? podaj więcej szczegółów :wink:

czy oba te katalogi istnieją? pokaż ich zawartość.


KrEdEnS | 2020-08-09 16:33:28 UTC | #26

Wykonałeś komendę?

sudo systemctl restart apache2

Keendi | 2020-08-09 16:54:13 UTC | #28

[quote=”KrEdEnS, post:26, topic:15443”]
sudo systemctl restart apache2
[/quote]

tak, nawet upewniłem się i reboot zrobiłem

image|524x130

image|514x115 (dla testu index.html wrzuciłem)

image|517x101


Keendi | 2020-08-09 17:04:26 UTC | #29

Panie Januszu zadziałało, chyba cloudflare tak długo aktualizował ALE mam pytanie, czy nie da się usunąć tego mysql.keendi.pl/phpMyAdmin ? mogę przenieść pliki z folderu i wrzucić bezpośrednio do tego folderu pod domeną?

EDIT: Chodzi mi o to, czy nic sie nie zbuguje? Czy nie zrobię jakiegoś syfu w plikach przez to. Wolę się upewnić ;)


KrEdEnS | 2020-08-09 17:15:01 UTC | #30

  1. Nie pisz double postów
  2. Tak możesz przenieść zawartość katalogu phpMyAdmin do mysql.keendi.pl (wywal tylko index.html) oczywiście potem usuń katalog phpMyAdmin @Keendi

EDIT. Utwórz plik .htaccess i wrzuć go do katalogu z plikami stroki:
Przekierowanie na ssla

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


Keendi | 2020-08-09 17:31:48 UTC | #31

Ok :D Jeszcze pytanie odnośnie certyfikatu, z tego co tu pisze to rozumiem że na tamtych zadziałało, ale na samej domenie keendi.pl już nie? Jak to naprawić?

image|690x407


KrEdEnS | 2020-08-09 17:35:09 UTC | #32

Generowałeś pewnie certyfikat będąc pod tzw “chmurką” - to się nie może udać


KMatuszak | 2020-08-09 17:36:35 UTC | #33

[quote=”KrEdEnS, post:30, topic:15443”]
EDIT. Utwórz plik .htaccess i wrzuć go do katalogu z plikami stroki:
Przekierowanie na ssla

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
[/quote]

nie rozumiem po co to, przecież przy instalacji certyfikatu jest pytanie czy ma automatycznie przekierować :thinking:

dodatkowo można włączyć automatyczne przekierowanie na cloudflare, i warto tutaj zaznaczyć żeby wybrać albo jedno albo drugie, w przeciwnym przypadku zrobi się pętla i strona nie będzie działać.


KrEdEnS | 2020-08-09 17:39:59 UTC | #34

Patrzyłem na jego stronkę i ani na cfie ani przy generowaniu certyfikatu nie włączył tej opcji.

EDIT. Ale tak zgadzam, się lepiej jest włączyć to na cfie / ewentualnie używać ssla od cfa


Keendi | 2020-08-09 17:57:18 UTC | #35

Czyli muszę stworzyć .htaccess z tym co napisał Kredens i bedzie git?


KrEdEnS | 2020-08-09 18:08:02 UTC | #36

.htaccess który Ci wysłałem przekieruje tylko ruch z http na https


Keendi | 2020-08-09 18:09:10 UTC | #37

A ok czyli co jeszcze muszę zrobić, pisaliście coś o cloudflare ale nie wiem gdzie dokładnie co mam zrobić :confused:


KrEdEnS | 2020-08-09 18:09:55 UTC | #38

Wyłącz chmurkę i wygeneruj ssla


Keendi | 2020-08-09 19:19:53 UTC | #39

Wyłączyłem w cloudflare to, wpisałem ponownie tą komendę z generowaniem ssl i nadal to samo :confused: Potem wpisałem na te 2 inne domeny, wykluczając keendi.pl i zadziałało ale teraz te obie domeny panel.keendi.pl oraz mysql.keendi.pl nie działają 😅 Zbyt wiele przekierowań, coś jeszcze muszę wyłączyć?

Teraz pojawia mi się coś takiego, tego już nie wiem jak mam rozwiązać:

image|690x407

Oraz tutaj którą mam opcję wybrać, bo totalnie nie wiem :confused:
image|690x309


KrEdEnS | 2020-08-09 20:32:15 UTC | #40

obraz|600x20
Musisz dodać servername dla swojej domeny w configu apache


Jakubeq | 2020-08-09 20:51:20 UTC | #41

Witam, zainstalowałem phpMyAdmin w ścieżce /var/www/html/phpMyAdmin/ i uzyskuje taki efekt nie mam panelu w ogóle :stuckouttongue:
aha|690x282


KrEdEnS | 2020-08-09 20:53:58 UTC | #42

jakiego masz php?
EDIT. A ok pewnie 7.4 | Dla pewności wpisz php -ver


KMatuszak | 2020-08-09 20:52:48 UTC | #43

zainstalowałeś php? restartowałeś serwer apache?


Jakubeq | 2020-08-09 21:12:21 UTC | #44

O kurczę nie spodziewałem się tak szybkiej odpowiedzi więc sam zacząłem coś działać

moja wersja PHP:

PHP 7.4.9 (cli) (built: Aug 7 2020 14:55:48) ( NTS )

Na githubie znalazłem mój problem i wykonałem następujące czynności:

sudo apt-get purge php*
sudo apt-get install libapache2-mod-php7.4

i teraz panel zaczął się odzywać
phpmyadmin|690x43

resetowałem apache


KrEdEnS | 2020-08-09 21:09:53 UTC | #45

wywaliłeś wszystkie rozszerzenia php także, musisz je teraz ponownie zainstalować

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php7.4-mbstring php7.4-curl
sudo systemctl restart apache2

Jakubeq | 2020-08-09 21:20:18 UTC | #46

Dobra poszło, wielkie dzięki. Dziwne że za pierwszym razem nie zadziałało :roll_eyes:


KrEdEnS | 2020-08-09 21:21:14 UTC | #47

Widocznie kliknąłeś N przy instalacji - bywa ;)


Keendi | 2020-08-10 10:22:42 UTC | #48

Witam panie @KMatuszak , mam następujący problem. Domena mysql.keendi.pl i keendi.pl przekierowują do tego samego miejsca mimo że wszystko jest zrobione jak na poradniku, nie wiem co się stało totalnie :confused:

@KrEdEnS a może ty będziesz wiedział?
EDIT: Let’s Encrypt dodał te linijki

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/keendi.pl
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =keendi.pl
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:80>
ServerName mysql.keendi.pl
ServerAdmin [email protected]
DocumentRoot /var/www/mysql.keendi.pl/phpMyAdmin
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =mysql.keendi.pl [OR]
RewriteCond %{SERVER_NAME} =mysql.keendi.pl
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

KrEdEnS | 2020-08-10 10:36:28 UTC | #49

Prywatnie polecam zrobić vhosty w osobnych plikach. dzięki temu unika się takich sytuacji ( ͡° ͜ʖ ͡°)
No dobra, ale jak już mamy tak to zostawiamy tak. Dodał bym do pierwszego vhosta

ServerName domena.pl

anon51326702 | 2020-08-15 19:01:59 UTC | #50

Forbidden

You don’t have permission to access this resource.

Co mogę zrobić?


KMatuszak | 2020-08-15 19:13:58 UTC | #51

pod jakim url widzisz ten komunikat?


anon51326702 | 2020-08-15 19:15:00 UTC | #52

//http://adresvps.pl/phpmyadmin/ (bez sleshy na początku)


KMatuszak | 2020-08-15 19:15:34 UTC | #53

pokaż zawartość folderu z plikami strony


anon51326702 | 2020-08-15 19:21:48 UTC | #54

Przepraszam błąd tym razem po mojej stronie zamiast wpisywać:

phpMyAdmin

Wpisywałem:

phpmyadmin

Aktualnie jest tylko problem gdyż wyświetla się kod “php”


KMatuszak | 2020-08-15 19:24:13 UTC | #55

[quote=”anon51326702, post:54, topic:15443”]
Aktualnie jest tylko problem gdyż wyświetla się kod “php”
[/quote]

zainstalowałeś php? uruchamiałeś ponownie serwer apache2?

podaj wynik polecenia

php -v

oraz uruchom ponownie serwer apache

sudo systemctl restart apache2

anon51326702 | 2020-08-15 20:17:12 UTC | #56

[quote=”KMatuszak, post:55, topic:15443”]
podaj wynik polecenia
[/quote]

PHP 7.4.9 (cli) (built: Aug  7 2020 14:55:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies

SerkoV | 2020-08-16 15:25:59 UTC | #57

image|634x205
Ktoś wie o co chodzi?


KMatuszak | 2020-08-16 15:28:38 UTC | #58

Nie posiadasz PHP 7.4 w swoich repozytoriach, jest to opisane prawie na samym początku poradnika.


SerkoV | 2020-08-16 15:45:31 UTC | #59

Gdy próbuje wejść na php wyskakuje takie coś image|435x123


KMatuszak | 2020-08-16 15:56:58 UTC | #60

co to znaczy

[quote=”SerkoV, post:59, topic:15443”]
wejść na php
[/quote]


SerkoV | 2020-08-16 16:46:48 UTC | #61

ip/phpmyadmin


KMatuszak | 2020-08-16 16:00:15 UTC | #62

wielkość liter ma znaczenie :wink:

[quote=”KMatuszak, post:1, topic:15443”]
Przejdź do wypakowanego katalogu

cd phpMyAdmin

[/quote]


SerkoV | 2020-08-16 16:01:28 UTC | #63

[quote=”KMatuszak, post:1, topic:15443”]
phpMyAdmin
[/quote]

Gdy próbuję przez stronę wejść do bazy danych. Z phpMyAdmin również wyskakuje ten sam błąd ;/


KMatuszak | 2020-08-16 16:02:02 UTC | #64

w takim razie nie masz phpMyAdmina, pokaż zawartość katalogu z plikami strony.


SerkoV | 2020-08-16 16:46:36 UTC | #65

image|690x52 podczas

sudo apt update


KMatuszak | 2020-08-16 16:38:07 UTC | #66

pokaż zawartość pliku do którego ścieżka pokazała Ci się.


SerkoV | 2020-08-16 16:40:31 UTC | #67

Usunąłem zawartość pliku i na nowo instaluje php


SerkoV | 2020-08-16 16:46:29 UTC | #68

Cały czas przy “sudo apt install apache2 php7.4 libapache2-mod-php7.4 php7.4-mysql php7.4-mbstring php7.4-curl”

image|613x203


KMatuszak | 2020-08-16 16:47:21 UTC | #69

Nadal nie dodałeś repozytoriów lub nie wykonałeś którejś komendy z poradnika.

PS. staraj się nie tworzyć double postów, edytuj poprzedni jeżeli masz taką możliwość.


KrEdEnS | 2020-08-16 16:47:53 UTC | #70

Po dodaniu repo wpisz
```
less /etc/apt/sources.list.d/php.list

I wyślij nam odpowiedz

-------------------------

SerkoV | 2020-08-16 16:48:11 UTC | #71

Co do edycji raczej nie mam takiej możliwości. Wracając, wykonuje krok po kroku i dalej to samo ;/

-------------------------

KMatuszak | 2020-08-16 16:49:09 UTC | #72

[quote="SerkoV, post:71, topic:15443"]
Co do edycji raczej nie mam takiej możliwości.
[/quote]

masz
![image|58x45](upload://qNeyYUJ7LGc0nzbDUCKonUyO782.png) 

[quote="SerkoV, post:71, topic:15443"]
Wracając, wykonuje krok po kroku i dalej to samo ;/
[/quote]
podaj logi z wszystkich komend które wykonujesz, i zrób to co @KrEdEnS napisał wyżej.

-------------------------

SerkoV | 2020-08-16 16:49:11 UTC | #73

![image|532x69](upload://lVnbzfOcFoJGBAh4fV92V4dgfdm.png)

-------------------------

KMatuszak | 2020-08-16 16:49:39 UTC | #74

Masz Debiana 8, poradnik nie obejmuje tej wersji systemu ponieważ nie jest ona wspierana.

[quote="KMatuszak, post:1, topic:15443"]
Całość została dokładnie przetestowana i jest kompatybilna z następującymi systemami:

* Ubuntu 20.04
* Ubuntu 18.04
* Debian 10
* Debian 9
[/quote]

-------------------------

SerkoV | 2020-08-16 16:50:10 UTC | #75

Nie możliwe że mam 8 :thinking:

-------------------------

SerkoV | 2020-08-16 16:51:07 UTC | #76

Podczas instalacji na VPS wybierałem 10

-------------------------

KrEdEnS | 2020-08-16 17:01:58 UTC | #77

Wpisz proszę komendę

> less /etc/os-release

I podziel się z nami twoimi wynikami :)

@SerkoV

-------------------------

SerkoV | 2020-08-17 18:00:13 UTC | #78

Udało mi się coś zdziałać i chyba działa. Wiecie może jak mogę sprawdzić lub stworzyć adreas tej bazy danych, aby się do niej dostać?

-------------------------

KMatuszak | 2020-08-17 18:25:50 UTC | #79

w sieci lokalnej adresem bazy danych jest localhost lub 127.0.0.1. poza nią jest nim adres serwera vps

-------------------------

max337 | 2020-10-07 19:34:52 UTC | #80

Poradnik sztos!

Serwer ładnie stoi, zmigrowałem pliki z hostingu na VPS, zmigrowałem bazę, ale mam problem.

Kiedy wchodzę na ip strony to mam komunikat Unable to connect, phpmyadmin mam na ip/phpmyadmin i normalnie mi chodzi.
Najciekawsze jest to, że jak wpiszę ip/katalog_pod_którym_mam_pliki_strony to strona przekierowuje mi się na obecną domenę, która jest na hostingu postawiona. 

Nie mam pojęcia jak sobie z tym poradzić i o co chodzi. 
Przecież strona powinna normalnie chodzić, nawet bez domeny, tylko na samym IP.
Podpowiecie coś?

-------------------------

Nieznajomy11 | 2020-10-08 06:24:50 UTC | #81

Istnieje duża szansa, że oprogramowanie, którego używasz, przy instalacji zapisuje w pliku konfiguracji adres strony i jeśli ten się nie zgadza, to automatycznie na niego przekierowuje.

-------------------------

max337 | 2020-10-12 23:44:11 UTC | #82

Dobra, ogarnąłem - wtedy okazało się, że miałem błędnie przypisane Virtual Hosty.

Obecnie problemem jest fakt, że strona główna sklepu działa i ładuje się poprawnie, ale jak wejdę na jakiekolwiek podkatalogi czy też produkt, to pojawia mi się błąd:

# Not Found
The requested URL was not found on this server.

Czyli tak jakby kompletnie nie wyszukiwało danych.
Próbowałem ponownie zmigrować bazę, ale nic to nie dało.

Dzieje się tak zarówno na IP, jak i na subdomenie.

Do tego włączyłem rewrite mod, próbowałem zmieniać port virtual hosta czy edytować apache2.conf - kompletnie nic nie działa.

-------------------------

michal12504 | 2021-01-11 20:05:20 UTC | #83

witam mam problem z phpmyadmin po wejsciu na ip serwera /phpmyadmin wyswietla się ciąg znaków jakis kod

-------------------------

Glupikocz | 2021-01-12 02:20:34 UTC | #84

Dlatego kożysta się z najnowszych poradników :P 
https://forum.lvlup.pro/t/nowy-poradnik-jak-zainstalowac-apache2-mariadb-php7-4-phpmyadmin-ssl-http-2-ocena-a-na-ssllabs/16838

Nie działa ci bo nie masz rozszerzenia **mbstring**

apt install php7.4-mysql php7.4-mbstring

wklep tą komendę co podałem wyżej i wykonaj restart apache2

service apache2 restart

PS. JEŚLI MASZ INNE PHP NIŻ 7.4 TO ZMIEŃ NA SWOJĄ WERSJĘ NP. 7.3

-------------------------

KMatuszak | 2021-01-12 09:16:02 UTC | #85

[quote="Glupikocz, post:84, topic:15443"]
Dlatego kożysta się z najnowszych poradników
[/quote]

Ale ten poradnik pachnie świeżością, po prostu @michal12504 musiał coś źle zrobić :thinking:

-------------------------

SimSora | 2021-05-31 15:18:12 UTC | #86

![Zrzut ekranu 2021-05-31 171602|680x205](upload://rQa20bEW6xmo8m58y7ScLhDpvew.png)
Ktoś wie jak to naprawić?

-------------------------

Dudix | 2021-06-05 06:10:23 UTC | #87

##### Po wejściu na `/phpmyadmin` nie działa strona i wyskakuje informacja z zrzutu ekranu poniżej?

[![|474x70](https://i.tipr.pl/e1gu5o.png) ](https://i.tipr.pl/e1gu5o.png)
Wpisz komendę `ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin`, aby przenieść do plików strony.

Od @Timo

-------------------------

Jakubk15 | 2021-06-13 15:30:57 UTC | #88

Po wykonaniu powyższych czynności, po wejściu na stronę phpMyAdmina wyskakuje następujący błąd:
![Obraz|690x124](upload://iZx2AImrTgrpbLXquQm0sirrFHf.jpeg)
Chciałem dodać, że wcześniej instalowałem phpMyAdmina z poradnika Głupiegokocza, na innym VPS i wszystko działało. Zauważyłem, że w /etc/apache2/sites-available/ nie stworzył się plik phpmyadmin.conf, tak jak na poprzednim VPS.

Skopiowałem nawet pliki konfiguracyjne (podmieniłem domenę oczywiście) z poprzedniego VPSa, ale wciąż to samo.

-------------------------

LinGruby | 2021-06-13 19:00:06 UTC | #89

[quote="Jakubk15, post:88, topic:15443"]
Skopiowałem nawet pliki konfiguracyjne (podmieniłem domenę oczywiście) z poprzedniego VPSa, ale wciąż to samo.
[/quote]

a po tym zabiegu restartowałeś usługę phpMyAdmin? ( coby nowe ustawienia zadziałały )

-------------------------

Jakubk15 | 2021-06-14 07:23:57 UTC | #90

Nie, ale zrebootowałem całego VPS.
Zauważyłem jeszcze, że pliki phpMyAdmina znajdują się w dwóch lokalizacjach.
`/usr/share/phpmyadmin`
i
`var/www/pma.nbcraft.pl`

W error logach apache2 zauważyłem coś takiego:
`[Mon Jun 14 03:11:27.549281 2021] [autoindex:error] [pid 759] [client MOJE_IP] AH01276: Cannot serve directory /var/www/pma.nbcraft.pl/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive`


Konfiguracja VirtualHosta:

ServerName pma.nbcraft.pl
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    Require all granted

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_flag magic_quotes_gpc Off
        php_flag track_vars On
        php_flag register_globals Off
        php_admin_flag allow_url_fopen Off
        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/
    </IfModule>
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
RewriteCond %{SERVERNAME} =pma.nbcraft.pl
RewriteRule ^ https://%{SERVER
NAME}%{REQUEST_URI} [END,NE,R=permanent]

```