Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 09-09 15:21
Ik wilde vanmiddag eens wat gaan klooien met Zend Framework. Ik wil m'n website een beetje opnieuw gaan opbouwen en aangezien m'n website op een shared hosting environment draait moet het op m'n Mac ook lijken alsof het op een soortgelijke omgeving draait. Dat was op zich niet zo'n probleem. Dacht ik.

Op een Mac heb je in je persoonlijk mappen, een map met Sites die vergelijkbaar is met public_html. M'n applicatie moet tijdens het ontwikkelen gaan draaien in /Users/wgriffioen/Sites/dev10. In deze map staan de volgende mappen en bestanden:

code:
1
2
3
4
5
6
application/
docs/
library/
public/
tests/
.htaccess


In de map public staat de index.php die gebruikt wordt om de hele applicatie te laden. Ook staat er in die map een .htaccess die alles requests doorstuurt naar die index.php.

Op een website had ik al een manier gevonden om alles door te sturen naar /public. Het volgende heb ik in de .htaccess gezet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RewriteEngine On
 
RewriteRule ^\.htaccess$ - [F]
 
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
 
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
 
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
 
RewriteRule ^public/.*$ /public/index.php [NC,L]


Eerst werkte dit niet (403 error) want de AllowOverride voor de directory /Users/wgriffioen/Sites/ stond op None. Toen ik die op All had gezet, kreeg ik weer een 403. Nadat ik het bestand /etc/apache2/users/wgriffioen.conf had aangepast naar het volgende:

code:
1
2
3
4
5
6
<Directory "/Users/wgriffioen/Sites/">
    Options Indexes MultiViews FollowSymlinks
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>


Kreeg ik een 404 met het volgende in de log-bestanden:

In de accesslog staat het volgende voor deze request:

127.0.0.1 - - [01/Sep/2010:17:44:46 +0200] "GET /~wgriffioen/dev10/ HTTP/1.1" 404 205


In de errorlog staat het volgende:
[Wed Sep 01 17:44:46 2010] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/public


Ik heb in /etc/apache2/httpd.conf een aantal wijzigen gemaakt voor AllowOverride, om die overal op All te zetten.

Op de server waar m'n website draait, werkt de .htaccess in de hoofddirectory van de applicatie gewoon dus ik heb het idee dat het niet aan die .htaccess ligt, maar ik heb geen idee meer waar het wel kan zitten.

Acties:
  • 0 Henk 'm!

  • Keeper
  • Registratie: Juni 2001
  • Niet online

Keeper

<3 Ruby

Denkt Apache niet gewoon dat je webroot in /Library/WebServer/Documents staat? Dat moet je in je Apache config aanpassen in ~/Sites/dev10

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 09-09 15:21
Het vreemde is, dat http://localhost/~wgriffioen het wel doet. Dan krijg ik namelijk de drie directorys te zien die in die directory staan.

De DocumentRoot aanpassen naar /Users/wgriffioen/Sites/dev10 aanpassen werkte inderdaad wel, maar dit is niet echt een goede oplossing. Eens kijken of ik nog meer kan vinden.

[ Voor 39% gewijzigd door dev10 op 01-09-2010 20:12 ]


Acties:
  • 0 Henk 'm!

  • Keeper
  • Registratie: Juni 2001
  • Niet online

Keeper

<3 Ruby

dev10 schreef op woensdag 01 september 2010 @ 20:06:
De DocumentRoot aanpassen naar /Users/wgriffioen/Sites/dev10 aanpassen werkte inderdaad wel, maar dit is niet echt een goede oplossing. Eens kijken of ik nog meer kan vinden.
Waarom is dat geen goede oplossing? :?.

  • dev10
  • Registratie: April 2005
  • Laatst online: 09-09 15:21
Keeper schreef op woensdag 01 september 2010 @ 22:13:
[...]

Waarom is dat geen goede oplossing? :?.
Omdat ik met meer PHP projecten bezig ben en mijn website in een subfolder van mijn public_html gezet heb. De andere projecten kan ik op deze manier niet benaderen.