Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Vraag


  • XenoMorpH
  • Registratie: Maart 2003
  • Laatst online: 27-11 09:30
Sinds een tijdje heb ik mijn website overgezet van een Strato VPS met Plesk (CentOS7).naar een Transip VPS met Plesk (CentOS7).

Nu heb ik een probleem met de file .htaccess file Authenticatie voor bestanden, ik krijg geen melding van inloggen. Terwijl dit wel zo was bij de Strato server.
Verdere .htaccess commando's schijnen gfewoon te werken (getest met redirect)
In etc/httpd/conf/httpd.conf in mijn default documentroot (/var/www/vhosts) de "AllowOverride" op AuthConfig gezet. Dit zou dus voor alle domeinen op de server dus moeten gelden en dus de authenticatie aan moeten zetten, zonder succes dus :(

Google afgestruind om dit probleem te tackelen, zonder echt resultaat.

Iemand een idee hoe dit op te lossen is in apache?

Beste antwoord (via XenoMorpH op 29-01-2016 11:40)


  • HyperioN
  • Registratie: April 2003
  • Laatst online: 31-10 21:55
XenoMorpH schreef op donderdag 28 januari 2016 @ 07:34:
Tn voor je uitgebreide antwoord.

Ik heb gisteravond aardig lopen googlen en zitten spitten/testen en kwam idd uit op de eigen vhost.conf per domein.

[...]


Nee, heb niet gekeken, maar wat ik er nu uit begrijp is dat dus de httpd in mijn domeinfolder de server httpd.conf overschrijft. Echter blijk ik helemaal geen vhost.conf file te hebben in geen van mijn domeinen.
Dat lijkt me sterk. Weet je zeker dat je in /var/www/vhosts/system/domein.tld/conf kijkt?
Welke versie van Plesk gebruik je? In oudere versies stond het inderdaad ergens anders (weet even niet meer waar uit m'n hoofd).
Wel kwam ik erachter dat de php/apache setting van mijn domein in PLESK blijkbaar niet goed stond. Stond op FPM-Application, bij de Strato server stond deze op FastCGI-Application (wat het verschil ook mag zijn :/ .
Simpel gezegd: het verschil is de manier waarmee je webserver (Apache in dit geval) met PHP communiceert en vice-versa. Dat gebeurt via een tussenliggende "handler", waarvan mod_php, FastCGI en PHP-FPM de meest-gebruikte zijn. Elk heeft zo zijn voordelen en nadelen.
Zie: http://download1.parallel...ex.htm?fileName=70669.htm
Via Google kun je ook nog tientallen andere bronnen vinden als je hier meer over wilt weten.

Kort gezegd: PHP-FPM is sneller, en wordt steeds vaker gebruikt, maar FastCGI heeft ook zijn voordelen.
Nu krijg ik wel een popup om de login gegevens in te voeren, maar na het invoeren krijg ik een Server error 500 :'(
Aha! Dan is je eerste probleem (basic auth werkt niet) dus opgelost.
Maar nu loop je tegen een ander probleem aan. Waarschijnlijk gaat er iets mis in de php-uitvoering.
Kijk in je logfiles om te weten te komen wat er mis gaat!
Misschien mis je een extensie, of staat er een instelling niet goed (bijv. short_open_tags). Veel PHP-instellingen kun je ook via PLESK beheren.
Edit: ik zal ook de logs even bekijken....
Goedzo. Hadden we natuurlijk veel eerder moeten doen.. Dus bij deze de tip:
bij problemen als de deze, is het eerste wat je behoort te doen de logs bekijken!
Logfiles zijn er niet voor niks, en vertellen je vaak een hoop meer dan je zelf weet.
Dit is de laatste error-log.
code:
1
(13)Permission denied: AH01620: Could not open password file: /var/www/vhosts/vnas.nl/tdi-hq.com/.staccess

Blijkbaar geen toegang tot het bestand 8)7
Nou, dan hebben we het probleem gevonden. Dit verklaart ook het verschil waarom het met FastCGI wél werkt, en met FPM niet.

FastCGI draait namelijk onder de user die behoort tot de vhost, bijv. domeintld:psacln
PHP-FPM draait echter vaak onder apache:apache of nginx:nginx (als je nginx gebruikt ipv. Apache).
Waarschijnlijk staan de .staccess rechten en ownership zo ingesteld dat de user apache daar geen toegang toe heeft. Dus dan kan hij die file niet lezen; waardoor de authenticatie dus niet werkt.

Alle reacties


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Topictype aangepast naar 'vraag'. Geef ajb tzt aan wat het beste antwoord is.

Misschien nuttig om de relevante delen van de htaccess te geven...
Als je htpasswd gebruikt: klopt de file locatie?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • mr94
  • Registratie: April 2014
  • Laatst online: 26-11 18:49
Welke versie Apache draait er op de Strato VPS en welke op die van TransIP (commando: httpd -v)

De manier van login is in Apache 2.4 anders dan in Apache 2.2 zie: http://httpd.apache.org/docs/current/howto/auth.html

Mocht het daar niet mee lukken zou je dan je htaccess code hier willen neerzetten?

[ Voor 2% gewijzigd door mr94 op 26-01-2016 23:07 . Reden: centos kent apache -v niet ]


  • HyperioN
  • Registratie: April 2003
  • Laatst online: 31-10 21:55
Weet je zeker dat je AllowOverride directive niet overschreven wordt, bijv. verderop in je httpd.conf of in conf.d/* ?

Als je zeker weet dat je configuratie goed is; plaats dan even wat relevante stukjes van je config-files en htaccess.
Kijk ook even wat dit zegt:
code:
1
2
apachectl -t
apachectl status

  • XenoMorpH
  • Registratie: Maart 2003
  • Laatst online: 27-11 09:30
Mijn .htaccess
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Files .ftaccess>
  deny from all
</Files>

<Files .staccess>
  deny from all
</Files>

 <Files sentinelcrypt.php>
    <Limit GET POST PUT>
       require valid-user
    </Limit>
   AuthName "Restricted AREA!"
   AuthType Basic
   AuthUserFile /var/www/vhosts/vnas.nl/tdi-hq.com/.staccess
 </Files>


De file locatie is 100% correct. en dat is dus niet het probleem. De pop-up verschijnt gewoon niet.

Apache versie is: 2.4.6

code:
1
2
3
 core.c
  mod_so.c
  http_core.c

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2016-01-26 21:40:54 CET; 22h ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 1902 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 1950 (httpd)
   Status: "Total requests: 3623; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           |-1950 /usr/sbin/httpd -DFOREGROUND
           |-1951 /usr/sbin/httpd -DFOREGROUND
           |-1952 /usr/sbin/httpd -DFOREGROUND
           |-1953 /usr/sbin/httpd -DFOREGROUND
           |-1954 /usr/sbin/httpd -DFOREGROUND
           |-1967 /usr/sbin/httpd -DFOREGROUND
           `-2233 /usr/sbin/httpd -DFOREGROUND

Jan 26 21:40:54 vnas.nl systemd[1]: Starting The Apache HTTP Server...
Jan 26 21:40:54 vnas.nl systemd[1]: Started The Apache HTTP Server.


Strato server is eveneens Apache 2.4.6

De httpd.conf files zijn nagenoeg hetzelfde op beide servers. De AllowOverride directive staan overigens allen op None op de Strato server terwijl ik bij de Transip voor de uiteindelijke vhost directory AllowOverride op AuthConfig heb gezet.

Wellicht dat PLESK12.5 toch per domein een eigen conf file heeft?
Volgens de Odin (PLESK) forums zou de server root conf file de rest moeten overriden...
Iemand meer verstand hoe/waar je dit moet aanpassen?

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 31-10 21:55
Allereerst:
Heb je al in de config files gekeken in conf.d zoals ik je gevraagd had?
Zie ook deze pagina:
http://kb.odin.com/en/124

Verder: ik had even over het hoofd gezien dat je Plesk gebruikt.
Dat maakt de boel iets complexer. Plesk gebruikt zogeheten "virtual host templates" om per vhost config files te genereren. Zo ook voor Apache.
Deze vind je normaliter in:
code:
1
/var/www/vhosts/system/domein.tld/conf/httpd.conf

(Is volgens mij een symlink ergens anders naartoe, maar dat doet er niet toe.)

Ik weet niet waar je gelezen hebt dat de server config overrulend zou zijn, want volgens mij is het juist andersom: de server conf zet de basis goed, waarmee in de vhost-config op kan worden afgeweken.

Je kunt deze file eens bekijken om te kijken of daar directives zitten waardoor het misgaat.
Als dat zo is: pas deze niet aan in httpd.conf, want dit is dus een automatisch gegenereerde file. Zodra je iets in Plesk veranderd, wordt deze opnieuw gegenereerd en ben je je veranderingen kwijt (staat ook bovenaan in de file aangegeven).
Hiervoor heeft Plesk nóg een file in het leven geroepen: vhost.conf in dezelfde directory.
Hier kun je naar wens zelf instellingen wederom overrulen. (Deze file wordt geinclude onderin httpd.conf).
Eventueel kun je de inhoud hiervan ook bewerken via de Plesk GUI: Apache & nginx Settings bij een domein.

Zie ook:
http://download1.parallel...ex.htm?fileName=72064.htm

Samenvattend: er zijn dus in een Plesk-installatie meerdere configfiles die gelezen worden. Zo even uit m'n hoofd:
• /etc/httpd/conf/httpd.conf
• alle files in /etc/httpd/conf.d/
• gegenereerde vhost conf /var/www/vhosts/system/domein.tld/conf/httpd.conf
• user vhost conf /var/www/vhosts/system/domein.tld/conf/vhost.conf

Ze worden volgens mij ook in deze volgorde uitgelezen. Er zijn dus meerdere plekken waarop een directive uit de algemene server httpd.conf overschreven (overruled) kan worden.

Tot zover dit stukje inzicht in de configstructuur van Plesk. Maar daar kom je misschien niet heel veel verder mee.
Je .htaccess file lijkt me zo op het eerste oog prima.
Heb je al in de logfiles gekeken, en zo ja, staat daar nog wat zinnigs in?
Deze vind je in:
code:
1
/var/www/vhosts/system/domein.tld/logs/

[ Voor 14% gewijzigd door HyperioN op 28-01-2016 11:15 ]


  • XenoMorpH
  • Registratie: Maart 2003
  • Laatst online: 27-11 09:30
Tn voor je uitgebreide antwoord.

Ik heb gisteravond aardig lopen googlen en zitten spitten/testen en kwam idd uit op de eigen vhost.conf per domein.
HyperioN schreef op woensdag 27 januari 2016 @ 23:14:
Allereerst:
Heb je al in de config files gekeken in conf.d zoals ik je gevraagd had?
Zie ook deze pagina:
http://kb.odin.com/en/124
Nee, heb niet gekeken, maar wat ik er nu uit begrijp is dat dus de httpd in mijn domeinfolder de server httpd.conf overschrijft. Echter blijk ik helemaal geen vhost.conf file te hebben in geen van mijn domeinen.

Wel kwam ik erachter dat de php/apache setting van mijn domein in PLESK blijkbaar niet goed stond. Stond op FPM-Application, bij de Strato server stond deze op FastCGI-Application (wat het verschil ook mag zijn :/ .
Nu krijg ik wel een popup om de login gegevens in te voeren, maar na het invoeren krijg ik een Server error 500 :'(
Ik doe toch echt iets fout, alleen weet ik niet wat.
Misschien moet ik het domein eens verwijderen en een nieuwe inrichten, misschien dat dat wat meer inzicht kan geven.

Edit: ik zal ook de logs even bekijken....

Dit is de laatste error-log.
code:
1
(13)Permission denied: AH01620: Could not open password file: /var/www/vhosts/vnas.nl/tdi-hq.com/.staccess

Blijkbaar geen toegang tot het bestand 8)7

[ Voor 8% gewijzigd door XenoMorpH op 28-01-2016 07:56 ]


Acties:
  • Beste antwoord

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 31-10 21:55
XenoMorpH schreef op donderdag 28 januari 2016 @ 07:34:
Tn voor je uitgebreide antwoord.

Ik heb gisteravond aardig lopen googlen en zitten spitten/testen en kwam idd uit op de eigen vhost.conf per domein.

[...]


Nee, heb niet gekeken, maar wat ik er nu uit begrijp is dat dus de httpd in mijn domeinfolder de server httpd.conf overschrijft. Echter blijk ik helemaal geen vhost.conf file te hebben in geen van mijn domeinen.
Dat lijkt me sterk. Weet je zeker dat je in /var/www/vhosts/system/domein.tld/conf kijkt?
Welke versie van Plesk gebruik je? In oudere versies stond het inderdaad ergens anders (weet even niet meer waar uit m'n hoofd).
Wel kwam ik erachter dat de php/apache setting van mijn domein in PLESK blijkbaar niet goed stond. Stond op FPM-Application, bij de Strato server stond deze op FastCGI-Application (wat het verschil ook mag zijn :/ .
Simpel gezegd: het verschil is de manier waarmee je webserver (Apache in dit geval) met PHP communiceert en vice-versa. Dat gebeurt via een tussenliggende "handler", waarvan mod_php, FastCGI en PHP-FPM de meest-gebruikte zijn. Elk heeft zo zijn voordelen en nadelen.
Zie: http://download1.parallel...ex.htm?fileName=70669.htm
Via Google kun je ook nog tientallen andere bronnen vinden als je hier meer over wilt weten.

Kort gezegd: PHP-FPM is sneller, en wordt steeds vaker gebruikt, maar FastCGI heeft ook zijn voordelen.
Nu krijg ik wel een popup om de login gegevens in te voeren, maar na het invoeren krijg ik een Server error 500 :'(
Aha! Dan is je eerste probleem (basic auth werkt niet) dus opgelost.
Maar nu loop je tegen een ander probleem aan. Waarschijnlijk gaat er iets mis in de php-uitvoering.
Kijk in je logfiles om te weten te komen wat er mis gaat!
Misschien mis je een extensie, of staat er een instelling niet goed (bijv. short_open_tags). Veel PHP-instellingen kun je ook via PLESK beheren.
Edit: ik zal ook de logs even bekijken....
Goedzo. Hadden we natuurlijk veel eerder moeten doen.. Dus bij deze de tip:
bij problemen als de deze, is het eerste wat je behoort te doen de logs bekijken!
Logfiles zijn er niet voor niks, en vertellen je vaak een hoop meer dan je zelf weet.
Dit is de laatste error-log.
code:
1
(13)Permission denied: AH01620: Could not open password file: /var/www/vhosts/vnas.nl/tdi-hq.com/.staccess

Blijkbaar geen toegang tot het bestand 8)7
Nou, dan hebben we het probleem gevonden. Dit verklaart ook het verschil waarom het met FastCGI wél werkt, en met FPM niet.

FastCGI draait namelijk onder de user die behoort tot de vhost, bijv. domeintld:psacln
PHP-FPM draait echter vaak onder apache:apache of nginx:nginx (als je nginx gebruikt ipv. Apache).
Waarschijnlijk staan de .staccess rechten en ownership zo ingesteld dat de user apache daar geen toegang toe heeft. Dus dan kan hij die file niet lezen; waardoor de authenticatie dus niet werkt.

  • XenoMorpH
  • Registratie: Maart 2003
  • Laatst online: 27-11 09:30
Omdat er wat problemen waren met het verwijderen van de vhosts en sommige domeinen gewoonweg niet wilden worden verwijderd heb ik een clean install moeten doen van PLESK en CENTOS7.
Tevens de server opnieuw ingericht en 2 domeinen toegevoegd.

Nu, na de clean isntall en de juiste apache/php instellingen te hebben ingesteld (en mede door de logs), werkt het zoals het was op de andere server. De User auth. werkt weer :).

Bedankt voor dehulp iig d:)b
Pagina: 1