无法获得一个symfony项目来跟随我的资源的符号链接

我有与另一个项目共享的资源。 我将显示的产品图片存储在我使用symfony的新项目中的一个文件夹中。

在我的symfony项目中,在/web/images文件夹中,我创build了一个符号链接到我的图片存储的文件夹。 我确定符号链接指向的图片文件夹下的每个文件和文件夹的权限都设置为777,任何人都可以访问它们。

一切工作正常,直到我启用mod的Apache重写。 /web/images文件夹中的/web/images完美显示,但是通过符号链接可以访问的任何东西都没有显示出来。 我立刻想到符号链接是这种行为的原因,我检查了我的网站的Apacheconfiguration。 此外,阅读symfony,我检查/web文件夹下的.htaccess文件,并添加了行:

Options FollowSymLinks

这也没有工作。

这是我的网站configuration:

 #<VirtualHost mydomain.com> <VirtualHost *:80> #ServerAdmin webmaster@localhost ServerAdmin [email protected] ServerName mydomain.com ServerAlias www.mydomain.com #DocumentRoot /var/www DocumentRoot /srv/www/mydomain.com/public_html/ <Directory /> Options FollowSymLinks #AllowOverride None AllowOverride All Order allow,deny allow from all </Directory> #<Directory /var/www/> <Directory /srv/www/mydomain.com/public_html/> Options Indexes FollowSymLinks MultiViews #AllowOverride None AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> #AllowOverride None AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch #Options +ExecCGI -MultiViews +FollowSymLinks Order allow,deny Allow from all </Directory> #ErrorLog ${APACHE_LOG_DIR}/error.log ErrorLog /srv/www/mydomain.com/logs/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn #CustomLog ${APACHE_LOG_DIR}/access.log combined CustomLog /srv/www/mydomain.com/logs/access.log combined Alias /sf /home/victor/projects/vitoquen/tienda/lib/vendor/symfony/data/web/sf <Directory "/home/victor/projects/vitoquen/tienda/lib/vendor/symfony/data/web/sf"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from All </Directory> #Alias /doc/ "/usr/share/doc/" #<Directory "/usr/share/doc/"> # Options Indexes MultiViews FollowSymLinks # #AllowOverride None # AllowOverride All # Order deny,allow # Deny from all # Allow from 127.0.0.0/255.0.0.0 ::1/128 #</Directory> </VirtualHost> 

这是我的.htaccess

 Options +FollowSymLinks +ExecCGI <IfModule mod_rewrite.c> RewriteEngine On Options FollowSymLinks # uncomment the following line, if you are having trouble # getting no_script_name to work #RewriteBase / # we skip all files with .something #RewriteCond %{REQUEST_URI} \..+$ #RewriteCond %{REQUEST_URI} !\.html$ #RewriteRule .* - [L] # we check if the .html version is here (caching) RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f # no, so we redirect to our front web controller RewriteRule ^(.*)$ index.php [QSA,L] </IfModule> 

有什么build议么??

我尝试使用–bind选项来挂载文件夹,但它不起作用! 我认为这可能意味着符号链接不是唯一的问题。

图片文件夹中的文件没有扩展名存储。 正因为如此,我不能使用symfony的image_tag()助手,如果没有给出扩展名,它默认附加.png文件名…这是我在我的模板中显示图像的方式:

 if (strcmp($producto->foto, "SI") == 0) { echo '<img src="/images/productos/'.$producto->id.'_muestra" width="102" height="84" alt="Imagen de muestra"/>'; } else { echo '<img src="/images/no_picture.jpg" width="102" height="84" alt="Imagen de muestra"/>'; } 

奇怪的是,/ /images/no_picture.jpg显示完美。 再次感谢您的帮助,您可以给我!

BTW! 我在两台testing服务器上有相同的configuration; 一个使用Debian 6,另一个使用Ubuntu 11.04。 我在两台服务器上都有相同的行为。

PS :对不起,我的英语! 感谢nikai谁纠正我的拼写…