无法让 symfony 项目跟踪指向我的资源的符号链接

无法让 symfony 项目跟踪指向我的资源的符号链接

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

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

在我启用 apache 的 mod rewrite 之前,一切都运行正常。/web/images文件夹中的图片显示完美,但无法显示通过符号链接访问的任何内容。我立即想到符号链接是导致此行为的原因,于是我检查了网站的 apache 配置。此外,在阅读 symfony 时,我检查了文件夹.htaccess下的文件/web并添加了以下行:

Options FollowSymLinks

这也不起作用。

这是我的站点配置:

#<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>

有什么建议么??

我尝试使用 --bind 选项挂载该文件夹,但没有成功!我认为,这可能意味着符号链接不是唯一的问题。

图片文件夹中的文件存储时没有扩展名。因此,我无法使用image_tag()symfony 的帮助程序,.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显示得很完美。再次感谢您给予我的帮助!!!

顺便说一句!我在两台测试服务器上有相同的配置;一台使用 Debian 6,另一台使用 Ubuntu 11.04。我在两台服务器上的行为相同。

附言:抱歉我的英语不好!感谢二阶谁纠正了我的拼写...

相关内容