Pomoc Serwer WWW - Kilka stron na jednej maszynie

spietrza

Download Station
Q's Professional
20 Marzec 2013
428
81
118
48
Poznań
QNAP
TVS-x71
Ethernet
802.11ad
Witam wszystkich,

na serwerze WWW działa mi htaccess z przekierowaniem na kilka aplikacji
Kod:
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^(pliki\.)?domena$
RewriteRule ^(.*)$ https://domena:9999/cgi-bin/fm.html [R=301,L]

RewriteCond %{HTTP_HOST} ^(pobierz\.)?sdomena$
RewriteRule ^(.*)$ https://domena:5551/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(filmy\.)?domena$
RewriteRule ^(.*)$ https://domena:32400/web/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(panel\.)?domena$
RewriteRule ^(.*)$ https://domena:5550/ [R=301,L]

RewriteCond %{HTTP_HOST} ^(pobierzt\.)?sdomena$
RewriteRule ^(.*)$ https://domena:5558/ [R=301,L]

RewriteCond %{HTTP_HOST} ^(sklep\.)?domena$
RewriteRule ^(.*)$ https://domena/pretashop/ [R=301,L]

</IfModule>

Dodatkowo chcę zainstalować Flarum, h5ai

To że nie mam kompletnie pojęcia o administracji serwerem dotyczącym serwera www chciałbym Was prosić o pomoc.

Porty standardowe 80 i 8081 działają poprawnie. Wrzuciłem do Web/index.html. Dodatkowo utworzyłem podkatalog /test/index.html
Utworzyłem VirtualHost dla podkatalogu test.domena.pl z portem 80.
Wpisuję adres jeden domena.pl jak i test.domena.pl i poprawnie wyświetla się index jak i index z drugiego folderu.

Teraz problem jest z flarum. Tworzę nowy katalog /Web/Flarum do którego wrzucam całą zawartość plików instalacji
ai57.tinypic.com_25aoqci.png


tworzę VirtualHost docelowo forum.domena.pl z portem 80. Gdy uruchamiam adres pojawia się pusta biała strona.
Dla h5ai tak samo jak flarum utworzyłem katalog i jak włączam stronę pojawia się prawidłowa strona
ai58.tinypic.com_2vvs5d5.png


Kurde co robię źle ?? Jak wrzucam Flarum do głównego działa ale już w folderze nie.
 
No dobra, to jeszcze raz.

W konfiguracji apache mam zapis
Kod:
DirectoryIndex  index.html  index.php  /_h5ai/server/php/index.php

Zrobiłem dwie próby:
1.
- W katalogu głównym /Web umieściłem _h5ai
- skasowalem plik index.html
- _h5ai listuje pliki
- do głównego katalogu wrzuciłem plik .htaccess o treści
Kod:
Options -Indexes
- _h5ai dalej listuje pliki

2.
- w katalogu /Web mam katalog "moja_domena" który jest moim virtualnym hostem
powtórzyłem wszstko to co zrobilem powyżej dla VH i efekt jest dokładnie taki sam

Chyba czegoś nie rozumiem i źle robię skoro próbujesz mnie przekonać do dzialania. Ale niestety nie wiem co :)
 
Nie.

Konfiguracje Apache zostaw w spokoju. Usuń zapis:
Kod:
DirectoryIndex  index.html  index.php  /_h5ai/server/php/index.php
i wszystkie pliki .htaccess.

W katalogu, który ma byc listowany umieszczasz plik .htaccess a w nim
Kod:
DirectoryIndex  index.html  index.php  /_h5ai/server/php/index.php
.
 
  • Lubię to
Reakcje: Gregor
@spietrza za wykonane przeze mnie prace na Twoim serwerze proszę wspomóc forum w wysokości 2x $15 USD.
Raz za błędy, które popełniłeś przy przepisywaniu treści z forum, a drugi raz za interwencje. Proxy opisane poniżej masz gratis.

Od czego zacząłem...

Co zrobiłem?
  1. Zrewidowałem i poprawiłem Twój plik .htaccess
    Kod:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^(pliki\.)?spietrza24.eu$
    RewriteRule ^(.*)$ https://spietrza24.eu:5550/cgi-bin/fm.html [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^(pobierz\.)?spietrza24.eu$
    RewriteRule ^(.*)$ https://spietrza24.eu:5551/ [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^(filmy\.)?spietrza24.eu$
    RewriteRule ^(.*)$ https://spietrza24.eu:32400/web/ [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^(panel\.)?spietrza24.eu$
    RewriteRule ^(.*)$ https://spietrza24.eu:5550/ [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^(pobierzt\.)?spietrza24.eu$
    RewriteRule ^(.*)$ https://spietrza24.eu:5558/ [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^(sklep\.)?spietrza24.eu$
    RewriteRule ^(.*)$ https://spietrza24.eu/pretashop/ [R=301,L]
    
    #DirectoryIndex  index.html  index.php  /_h5ai/server/php/index.php
    
    #<Directory "/flarum/">
    #   AllowOverride All
    #</Directory>
    
    </IfModule>

    Q: Co było nie tak?
    • Kropka . w RewriteCond traktowana jest jako znak wyrażenia regularnego, w tym wypadku musi zostać poprzedzona backslashem w ten sposób: \.
    • Po drugie dodałem flagę [NC] oznaczającą niewrażliwość na duże i małe litery.

    FYI:
    ! - zaprzeczenie, jeśli NIE ... np.: !^pliki\.spietrza24\.eu$
    ^ - domena zaczyna się na...
    $ - koniec reguły
    (var1|var2) - opcja var1 lub var2...
    Poprawiony .htaccess wygląda następująco:
    Kod:
    <IfModule mod_rewrite.c>
    	RewriteEngine On
    
    	RewriteCond %{HTTP_HOST} ^pliki\.spietrza24\.eu$ [NC]
    	RewriteRule ^(.*)$ https://spietrza24.eu:5550/cgi-bin/fm.html [R=301,L]
    
    	RewriteCond %{HTTP_HOST} ^pobierz\.spietrza24\.eu$ [NC]
    	RewriteRule ^(.*)$ https://spietrza24.eu:5551/ [R=301,L]
    
    	RewriteCond %{HTTP_HOST} ^filmy\.spietrza24\.eu$ [NC]
    	RewriteRule ^(.*)$ https://spietrza24.eu:32400/web/ [R=301,L]
    
    	RewriteCond %{HTTP_HOST} ^panel\.spietrza24\.eu$ [NC]
    	RewriteRule ^(.*)$ https://spietrza24.eu:5550/ [R=301,L]
    
    	RewriteCond %{HTTP_HOST} ^pobierzt\.spietrza24\.eu$ [NC]
    	RewriteRule ^(.*)$ https://spietrza24.eu:5558/ [R=301,L]
    
    	RewriteCond %{HTTP_HOST} ^sklep\.spietrza24\.eu$ [NC]
    	RewriteRule ^(.*)$ https://spietrza24.eu/pretashop/ [R=301,L]
    </IfModule>

  2. Odinstalowałem phpError QPKG
    phpError jest świetne kiedy sam jesteś programistą i przesz aplikacje. Jednak w przypadku, kiedy używasz innych aplikacji, to nie masz pewności czy jej autor nie opracował już w niej samej własnego systemu logowana/reportowania czy debugowania błędów. Takie rozwiązania stosuje się już na poziomie framework'ów, na których opracowuje się dzisiejsze aplikacja PHP np. Zend Framework. phpError działa jak loader php, który może powodować niezgodność działania dalej uruchamianych aplikacji, np. Wordpress.

  3. Instalacja flarum
    1. Usunąłem wcześniejszą wersje flarum, którą wgrałeś na serwer.
    2. Ponownie pobrałem last beta release:
      Bash:
      cd /share/Web/
      mkdir flarum
      cd flarum
      wget https://github.com/flarum/flarum/releases/download/v0.1.0-beta/flarum-0.1.0-beta.zip
      Zobaczyłem jednak standardowy błąd błednego certyfikatu SSL:
      upload_2015-9-8_23-34-38.png

      Dopisałem na przyszłość automatycznie dodawany do profilu SSH alias wget='wget --no-check-certificate' podczas uruchamiania pliku /etc/init.d/Optware.sh
      Bash:
      echo 'alias wget="wget --no-check-certificate"' >> /etc/profile
      upload_2015-9-8_23-40-30.png

    3. Po restarcie Optware i prze logowaniu się na shella, ponownie rozpocząłem instalację flarum:
      Bash:
      cd /share/Web/
      mkdir -p flarum
      cd flarum
      wget https://github.com/flarum/flarum/releases/download/v0.1.0-beta/flarum-0.1.0-beta.zip
      upload_2015-9-8_23-42-58.png

    4. Oczywiście próba rozpakowania pliku .zip za pomocą unzip'a wbudowanego w systemie skończyła się naturalnie niepowodzeniem:
      upload_2015-9-8_23-44-15.png

    5. Zainstalowałem więc z poziomu Optware paczkę unzip:
      Bash:
      ipkg update
      ipkg install unzip
      Ponownie otworzyłem do edycji plik /etc/init.d/Optware.sh i dopisałem tym razem alias unzip="/opt/bin/unzip".
      upload_2015-9-8_23-46-39.png

    6. Po ponownym prze logowaniu przystąpiłem do rozpakowania paczki:
      Bash:
      cd /share/Web/flarum
      unzip flarum-0.1.0-beta.zip
      rm flarum-0.1.0-beta.zip
      upload_2015-9-8_23-52-1.png

    7. Otworzyłem więc adres http://spietrza24.eu/flarum, aby zobaczyć co powinienem następnego zrobić i jak przystąpić do instalacji forum flarum.
      Przywitała mnie wiadomość powitalna:
      upload_2015-9-8_23-53-13.png

    8. Będąc zalogowany w konsoli nadałem uprawnienia:
      Bash:
      chmod 775 /share/CACHEDEV1_DATA/Web/flarum
    9. Po odświeżeniu moim oczom pojawiło się:
      upload_2015-9-8_23-55-8.png
  4. Apache proxy czyli tunelowanie na port i custom conf
    Z wyczytanego u Ciebie .htaccess można zauważyć, że używasz podkatalogów lub vhostów, które pełnią rolę redirect'ów/przekierowań na właściwy adres.
    10217.png


    Moduł http proxy umożliwia lokalne świadczenie treści drugich w obrębie wirtualnych hostów lub wybranych katalogów. Efektem tego może być np. panel serwera QNAP z portu 8080 uruchomiony w pod domenie qts.domena.pl, ale przy użyciu domyślnego portu serwera Web. Może to być też monitorix, rtorrent, stacja wirtualizacji i wiele wiele innych aplikacji.

    10218.png


    1. Do tego celu konieczna jest prawidłowa instalacja: How-To - QNAP od środka, czyli grzebiemy w linuchu - Jak sobie ułatwić? | QNAP Polska - Oficjalne forum wsparcia technicznego QNAP Club
    2. Po wykonaniu instrukcji z powyższego przewodnika należy upewnić się, że Optware zostało ponownie uruchomione. W tym celu zrestartuj Optware.
    3. Połącz się do terminala/konsoli SHELL serwera QNAP
    4. Wykorzystamy Optware i jego katalog do przetrzymywania modyfikacji plików konfiguracyjnych serwera Web (Apache). W tym celu wykonaj następujące:
      Bash:
      OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path)
      cd $OPTWARE_DIR
      mkdir -p root/apache
      cd $OPTWARE_DIR/root/apache
    5. Następnie utwórz plik apache-custom.conf i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
      Bash:
      vi apache-custom.conf
      Przekopiuj poniższy kod do schowka:
      Kod:
      LoadModule proxy_module modules/mod_proxy.so
      LoadModule proxy_http_module modules/mod_proxy_http.so
      <VirtualHost *:80>
      	#ProxyRequests Off
      	#ProxyVia Off
      	#ProxyPreserveHost Off
      
      	#RewriteEngine on
      	#RewriteLog "/share/Web/rewrite_https.log"
      	#RewriteLogLevel 3
      	#RewriteRule ^/(user-settings\.json.*)$  http://localhost:8080/cgi-bin/$1 [P]
      	#RewriteRule ^/(userConfig\.cgi.*)$  http://localhost:8080/cgi-bin/$1 [P]
      
      	<Proxy *>
      	#	AddDefaultCharset off
      		Order deny,allow
      		Allow from all
      	</Proxy>
      
      	# ### NOTKA
      	# Nazwa hosta pod ktora ma byc widoczny Panel
      	ServerName qts.spietrza24.eu
      	DocumentRoot "/share/Web/qts"
      	ProxyPass /  http://localhost:8080/
      	ProxyPassReverse / http://localhost:8080/
      </VirtualHost>
      W uruchomionym edytorze vi w programie PuTTY naciśnij kolejno:
      1. i (insert) - aby móc wprowadzić tekst
      2. Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
      3. ESC - aby zakończyć wprowadzanie
      4. Shift + : - aby wydać komendę
      5. wq - aby zapisać (write) i wyjść (quit)
      UWAGA: Pamiętaj, aby w polu ServerName znajdowała się nazwa hosta domeny, którą chcesz tunelować do panelu QTS na porcie 8080.
    6. Utwórz plik append-apache-conf.sh i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
      Bash:
      vi append-apache-conf.sh
      Przekopiuj poniższy kod do schowka:
      Bash:
      #!/bin/sh
      
      OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path)
      
      # log procedure
      log=$OPTWARE_DIR/root/apache/append-apache-conf.log
      log(){
      	/bin/echo "$(/bin/date '+%F %T.%3N') $1" >> $log
      }
      log "***** Starting append-apache-conf.sh *****"
      
      # env variables
      apache_conf=/etc/config/apache/apache.conf
      apache_custom_conf=$OPTWARE_DIR/root/apache/apache-custom.conf
      
      # log myself
      exec >> $log 2>&1
      
      # modify apache_conf
      /bin/grep -q $apache_custom_conf $apache_conf
      if [ $? -eq 0 ]
      	then
      		log "$apache_conf already includes $apache_custom_conf. Nothing to be done."
      	else
      		log "$apache_conf does NOT include $apache_custom_conf. Including now."
      		/bin/echo "Include $apache_custom_conf" >> $apache_conf
      		log "Restarting apache ..."
      		/etc/init.d/Qthttpd.sh restart
      fi
      
      log "***** End of append-apache-conf.sh *****"
      /bin/sync
      /bin/sleep 1
      W uruchomionym edytorze vi w programie PuTTY naciśnij kolejno:
      1. i (insert) - aby móc wprowadzić tekst
      2. Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
      3. ESC - aby zakończyć wprowadzanie
      4. Shift + : - aby wydać komendę
      5. wq - aby zapisać (write) i wyjść (quit)
    7. Utwórz plik restart-apache.sh i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
      Bash:
      vi restart-apache.sh
      Przekopiuj poniższy kod do schowka:
      Bash:
      #!/bin/sh
      
      OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path)
      
      # log procedure
      log=$OPTWARE_DIR/root/apache/append-apache-conf.log
      log(){
      	/bin/echo "$(/bin/date '+%F %T.%3N') $1" >> $log
      }
      
      # log myself
      exec >> $log 2>&1
      
      log "Restarting apache ..."
      /etc/init.d/Qthttpd.sh restart
      W uruchomionym edytorze vi w programie PuTTY naciśnij kolejno:
      1. i (insert) - aby móc wprowadzić tekst
      2. Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
      3. ESC - aby zakończyć wprowadzanie
      4. Shift + : - aby wydać komendę
      5. wq - aby zapisać (write) i wyjść (quit)
    1. Z konsoli na szybko utwórz kolejny plik:
      Bash:
      echo -e '#!/bin/sh\n\n/usr/local/apache/bin/apache -t -f /etc/config/apache/apache.conf' > test-apache-conf.sh
    2. Następnie nadaj plikom *.sh prawa do uruchomienia:
      Bash:
      chmod +x *.sh
    3. Edytuj plik /etc/init.d/Optware.sh:
      1. Bash:
        mcedit /etc/init.d/Optware.sh
      2. Znajdź linię: /bin/echo "Enable Optware/ipkg"
        W tym celu naciśnij F7 i wpisz: Enable Optware - wielkość liter może mieć znaczenie:
        10219.png
      3. Dodaj przed znalezioną linią:
        Bash:
        sh $QPKG_DIR/root/apache/append-apache-conf.sh
        10220.png
      4. Naciśnij F2 i zapisz plik. Wyjść przyciskiem ESC
    4. Sprawdź czy działa restartując Optware:
      Bash:
      /etc/init.d/Optware.sh restart

      W przypadku problemów, poprawność składni pliku konfiguracyjnego sprawdzisz poleceniem:
      Bash:
      sh $(getcfg -f /etc/config/qpkg.conf Optware Install_Path)/root/apache/test-apache-conf.sh
    5. Panel zarządzania QTS powinien być już dostępny pod hostem http://qts.domena.pl na porcie 80
      :)