PHP/WWW nie działa wina apache?

Zombie
vps, www, debian, iptables
Wilhelm
Wilhelm

Witam zainstalowałem na mojej maszynie Debian pakiety takie jak PHP 7.0, Apache 2, PhpMyAdmin, MySQL. Po zainstalowaniu owych pakietów nie miałem żadnych błędów czy problemów. Katalog var/www został poprawnie utworzony, lecz po wpisaniu w przeglądarkę adresu mojej maszyny nic się nie wyświetla. Ładuje się, ładuje i nic... Próbowałem stworzyć testowy plik .php lecz ten się nie odpala. Próbowałem też wejść w phpmyadmin to samo zero rezultatu. Nie wiem co jest grane, próbowałem robić ścierzkę do phpmyadmin w var/www która jest i nic nie pomogło. Próbowałem restartu Apache i Php, nie pomogło. Próbowałem aktualizacji pakietów, są zaktualizowane... Nie wiem o co chodzi i proszę o pomoc.

bopke
bopke Moderator forum.lvlup.pro

Spróbuj sudo a2enmod php7.0, a jak nie pomoże, to sudo apt-get install libapache2-mod-php7.0, może nie został on wgrany.

Wilhelm
Wilhelm

Bez zmian 0 zaktualizowanych, 0 poprawionych, aktualna wersja jest najnowsza. Może to mieć jakiś związek z tym że wczoraj ręcznie zrobiłem plik www? A potem usunąłem gdy się zorientowałem że Apache nie mam, i je zainstalowałem wcześniej usuwając mój plik www?

bopke
bopke Moderator forum.lvlup.pro

sudo systemctl status apache2 i pokaż co Ci tam wyskoczy

Wilhelm
Wilhelm

ESCOD ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: Active: active (running) since Mon 2018-01-29 12:44:23 CET; 6min ago Process: 11444 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCES Process: 8707 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/S Process: 11454 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCC Main PID: 11458 (apache2) Tasks: 6 (limit: 4915) CGroup: /system.slice/apache2.service ├─11458 /usr/sbin/apache2 -k start ├─11459 /usr/sbin/apache2 -k start ├─11461 /usr/sbin/apache2 -k start ├─11462 /usr/sbin/apache2 -k start ├─11463 /usr/sbin/apache2 -k start └─11464 /usr/sbin/apache2 -k start

Jan 29 12:44:23 wilhelm1720 systemd[1]: Stopped The Apache HTTP Server.
Jan 29 12:44:23 wilhelm1720 systemd[1]: Starting The Apache HTTP Server...
Jan 29 12:44:23 wilhelm1720 apachectl[11454]: [Mon Jan 29 12:44:23.278349 2018]
Jan 29 12:44:23 wilhelm1720 systemd[1]: Started The Apache HTTP Server.
~
~
~
bopke
bopke Moderator forum.lvlup.pro

Czy instalowałeś już jakieś regułki firewalla? Może wyciąłeś porty http omyłkowo?

Wilhelm
Wilhelm

Nie przypominam sobie czegoś takiego. Gdzie się sprawdzało porty?

Infinity
Infinity

Sprawdz iptables (iptables -nL) czy ma jakies wpisy.

Pantoflarz
Pantoflarz

Wilhelm:

mój plik www?

dafuq is a plik www?

ja bym se narazie darował majsterkowanie przy php, a zajął bym się samym apach'em. Najlepiej to wogóle zabrać pliki strony, reinstala walnąć i po problemie. Zwykle wychodzi szybciej niż szukanie błędu - no chyba że faktycznie masz tam dużo danych.

Wilhelm
Wilhelm

Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:28016 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28015 DROP all -- 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Niestety znajdują się tam rzeczy których bym nie chciał stracić. Z tego co widzę porty 28015 i 28016 są przydzielone do jednego programu/serwera i teraz nie pamiętam czy były one dodawane ręcznie czy z automatu tam są... I czy to czegoś wspólnego nie ma.

Infinity
Infinity

A ja widzę, że masz zablokowane wszystkie porty oprócz 22, 28016 i 28015 oraz dozwolone RELATED i ESTABLISHED. Nie widzę wpisu o porcie 80 w twoim firewalu.

iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Opcja użycia conntracka też, dla nowych połączeń, bardziej "zaawansowana":

iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Wilhelm
Wilhelm

target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:28016 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28015 DROP all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate NEW,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ctstate NEW,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Zresetowałem Apache i dalej tak samo :(

Infinity
Infinity

Zobacz na kolejnosc w iptables, dalej masz zablokowany port.

Kolejność licz od góry, czyli najpierw dopuszczasz port stan RELATED,ESTABLISHED, potem port 22, 28016 28015 potem ODRZUCASZ WSZYSTKO, potem masz dopiero zezwolenie na porty www.

Najszybciej bedzie jak walniesz:

iptables -X iptables -F

Wyczyści ci to wszystkie regułki iptables. Wtedy sprawdź czy www działa (nie musisz restartowac apache2). Jeśli tak, to dostosuj swojego firewalla. Jeśli masz automatyczne regułki (przy starcie systemu) to musisz poszukac gdzie sie zapisują i z jakiego skryptu korzystasz do tego (czy persistant, services czy jakiegos wlasnego, zalezy tez jaki system masz).

Jeśli będziesz potrzebowac pomocy z tym, to pisz smialo, cos poradzimy.

MTGmati
MTGmati

Jeżeli na VPS nie posiadasz nic WAŻNEGO!


Instalacja na Ubuntu 16.04


  1. aptupdate && apt-get dist-upgrade && apt-get autoclean && apt-get autoremove
  2. apt install apache2
  3. sudo apt install php-mbstring php-gettext
  4. apt install mysql-server
  5. apt install phpmyadmin
  6. sudo phpenmod mcrypt
  7. sudo phpenmod mbstring
  8. sudo systemctl restart apache2
  9. ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
  10. URL: http://IP_VPS/phpmyadmin/

Gotowe! 😄

Infinity
Infinity

Jesteś świadom, że on ma problem z poblokowanymi portami a nie z PHP czy apache2? 😃 Apache2 działa u niego, na co dawał dowody w postaci "systemctl status apache2".

Wilhelm
Wilhelm

Infinity pomogło! W końcu działa... Dzięki wielkie za pomoc i zaangażowanie, bo bez Ciebie nie dał bym rady ;)

Infinity
Infinity

Mogę jeszcze pomóc dodać te regułki do uruchamianych przy starcie vpsa (czy przy reboocie, jesli trzeba). Oznacz rozwiązanie w temacie i w razie czego pisz PW :slight_smile: