ugrás a tartalomhoz

Symfony - több project egy szerveren

inf · 2010. Ápr. 24. (Szo), 19.38
Üdv.

Symfony telepítésével szenvedek már több napja. Van egy szerver, amin csak htaccess-hez férek hozzá, meg csak a wwwroot-hoz, semmi többhöz, és oda szeretnék feltenni több symfony projectet.

A mappaszerkezetem ilyen:
wwwroot/
 .htaccess
 main/
  ...
 teabolt/
  apps/
  web/
   .htaccess
  ...
 symfony/
  ...


Egyelőre csak a teabolt project van benne.


A htaccess fájljaim így néznek ki:

wwwroot/.htaccess:
  1. RewriteEngine On  
  2.   
  3. # avoid internal loop of rule ^(.*)$  
  4. RewriteCond     %{ENV:REDIRECT_STATUS}          200  
  5. RewriteRule     .*              -               [L]  
  6.   
  7. # redirect project into its web folder, and skip the default page rule  
  8. RewriteRule     ^teabolt/(.*)$  teabolt/web/$1  [QSA,L,S=1]  
  9.   
  10. # redirect the default page into the main folder  
  11. RewriteRule     ^(.*)$          main/$1         [QSA,L]  
wwwroot/teabolt/web/.htaccess:
  1. Options +FollowSymLinks +ExecCGI  
  2.   
  3. <IfModule mod_rewrite.c>  
  4.   RewriteEngine On  
  5.   
  6.   # uncomment the following line, if you are having trouble  
  7.   # getting no_script_name to work  
  8.   # RewriteBase /  
  9.   
  10.   # we skip all files with .something  
  11.   #RewriteCond %{REQUEST_URI} \..+$  
  12.   #RewriteCond %{REQUEST_URI} !\.html$  
  13.   #RewriteRule .* - [L]  
  14.   
  15.   # we check if the .html version is here (caching)  
  16.   RewriteRule ^$ index.html [QSA]  
  17.   RewriteRule ^([^.]+)$ $1.html [QSA]  
  18.   RewriteCond %{REQUEST_FILENAME} !-f  
  19.   
  20.   # no, so we redirect to our front web controller  
  21.   RewriteRule ^(.*)$ index.php [QSA,L]  
  22. </IfModule>  
Ez az alap, amit a projecthez generált a symfony.


A problémám a következő. Sikerült feltenni a Symfonyt, minden frankón működik, csak az url-el nem stimmel valami:

http://domain.loc/teabolt/-re a symfony 404-es hibaoldala jelenik meg, és helyette a
http://domain.loc/teabolt/web/ -en lehet elérni a projectet.
Tud valaki megoldást a problémára?
 
1

A hiba forrása

inf · 2010. Ápr. 25. (V), 12.34
A Symfony a $_SERVER['REQUEST_URI']-ből veszi a routing-hoz a dolgait, viszont a htaccess ezt nem írja felül átirányításkor...

Ha beteszem a wwwroot/teabolt/web/index.php elejére, hogy
  1. $_SERVER['REQUEST_URI'].='web/';  
Akkor részben megoldódik a probléma. A statikus fájlokat még így is a web-es címen linkeli ki, és éri el a rendszer, de legalább a php-t már normálisan szolgálja ki.

Valószínűleg a link gyártó részén kéne még tákolni a symfonynak ahhoz, hogy rendesen menjen a dolog. Egyelőre még nem néztem meg, hogy hogyan csinálja a linkeket, remélem ahhoz is hozzá lehet férni valahogy...
2

Megoldás

inf · 2010. Ápr. 25. (V), 15.28
Akkor a végső megoldás(teabolt nevű projektre):

wwwroot/.htaccess:
  1. RewriteEngine On  
  2. RewriteCond %{ENV:REDIRECT_STATUS} 200  
  3. RewriteRule .* - [L]  
  4. RewriteRule ^teabolt/(.*)$ teabolt/web/$1 [QSA,L,S=1]  
  5. RewriteRule ^(.*)$ main/$1 [QSA,L]  
wwwroot/teabolt/web/.htaccess:
  1. RewriteEngine On  
  2. RewriteCond %{REQUEST_FILENAME} !-f  
  3. RewriteRule ^(.*)$ index.php [QSA,L]  
wwwroot/teabolt/web/index.php:
  1. $_SERVER['REQUEST_URI'].='web/';  
  2. require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');  
  3. $configuration = ProjectConfiguration::getApplicationConfiguration('frontend''prod', false);  
  4. $context=sfContext::createInstance($configuration);  
  5. $context->getRequest()->setRelativeUrlRoot('/teabolt');  
  6. $context->dispatch();  
Remélem a továbbiakban nem lesz ennyire gáz a Symfony használata, mert ezt úgy 5 nap alatt sikerült összehalásznom intenzív kereséssel.
3

azt azert tegyuk hozza, hogy

Sulik Szabolcs · 2010. Ápr. 26. (H), 15.45
azt azert tegyuk hozza, hogy egy webroot ala betenni tobb (akar csak egy) teljes projektet nem biztos, hogy egeszseges. ehhez kepest, ha megnezed a megoldasod, akkor kb 10 sor az egesz.

szvsz kevesen hasznaljak igy a symfony-t, nem csodalkozom, hogy nehezen talaltal ehhez infot.

most viszont a tobbiek mar konnyebben ossze tudjak hozni. kosz a leirast.
4

Nincs mit

inf · 2010. Ápr. 27. (K), 02.09
és igazad van, tényleg nem egy szokványos dolog, csak hát sajnos igazodnom kell a lehetőségekhez. Nem én intéztem a szervert, és szívességből csinálok az oldalhoz egy webshopot. Normál esetben nyilván én sem így állnék neki...