我成功创建了一些magento主题,这些主题在网络服务器上运行良好。因为其他开发人员在网络服务器上做了一些更改(也运行正常),我试图将我的主题中的所有文件导回到我的本地系统,以应用更少的更改。 之后,我在localhost上的主题突然崩溃了。站点的来源是可以的,但是没有显示应该从皮肤/../ images文件夹加载的所有图像。如果我尝试使用浏览器打开它们,我会收到500内部服务器错误,但它们存储在文件系统中的正确位置。
所以我检查了一些早期的主题,但如果我将它们从文件系统或其他文件夹备份到我的magento安装,它们都很好。
所以我最终设置了一个新的本地magento安装,但也得到了相同的错误。正如我所说,我所有其他主题都运作良好,到目前为止,具有实际主题的网络服务器没有任何问题。
最好的问候
编辑以回答@Oğuz的想法
感谢您的回答。 我收到错误后检查了日志,并得到以下信息:
[Sun Mar 18 20:53:24 2012] [crit] [client 127.0.0.1] (13)Permission denied: /var/www/theme/media/catalog/category/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://localhost/theme/index.php/apparel/shirts.html
[Sun Mar 18 20:53:25 2012] [error] [client 127.0.0.1] script '/var/www/index.php' not found or unable to stat, referer: http://localhost/theme/index.php/apparel/shirts.html
[Sun Mar 18 20:53:25 2012] [crit] [client 127.0.0.1] (13)Permission denied: /var/www/theme/media/catalog/category/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://localhost/theme/index.php/apparel/shirts.html
[Sun Mar 18 20:53:39 2012] [error] [client 127.0.0.1] script '/var/www/index.php' not found or unable to stat, referer: http://localhost/theme/index.php/apparel/shirts/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.html
[Sun Mar 18 20:53:39 2012] [error] [client 127.0.0.1] script '/var/www/index.php' not found or unable to stat, referer: http://localhost/theme/index.php/apparel/shirts/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.html
[Sun Mar 18 20:54:37 2012] [error] [client 127.0.0.1] client denied by server configuration: /var/www/theme/app/etc/local.xml
[Sun Mar 18 20:54:51 2012] [error] [client 127.0.0.1] script '/var/www/index.php' not found or unable to stat, referer: http://localhost/theme/index.php/apparel/shirts/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.html
[Sun Mar 18 20:54:51 2012] [error] [client 127.0.0.1] script '/var/www/index.php' not found or unable to stat, referer: http://localhost/theme/index.php/apparel/shirts/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.html
[Sun Mar 18 20:56:33 2012] [error] [client 127.0.0.1] client denied by server configuration: /var/www/theme/app/etc/local.xml
[Sun Mar 18 20:56:41 2012] [error] [client 127.0.0.1] client denied by server configuration: /var/www/theme/app/etc/local.xml
[Sun Mar 18 20:56:49 2012] [alert] [client 127.0.0.1] /var/www/theme/skin/frontend/theme/green/images/.htaccess: Invalid command 'ExpiresDefault', perhaps misspelled or defined by a module not included in the server configuration
我不确定,为什么我突然得到这些。我首先尝试关注local.xml问题。
编辑#2
感谢您的所有想法和答案。在检查我发现的本地服务器之后,我几乎在我的服务器上托管的每个页面上都有这个问题。似乎是apache配置文件中某处的错误配置。 我会在下一步尝试修复它。
我也检查过AllowOverride指令,但它已经设置为'All'。
答案 0 :(得分:0)
这是一个可能的解决方案:
在文件开头添加此行:
$_baseMedia = Mage::getSingleton('catalog/product_media_config')->getBaseMediaPath();
然后当您包含图像而不是:
echo "<img src=".$this->helper('catalog/image')->init($_product, "image_2")->resize(500, 500);.">";
添加:
if(is_file($_baseMedia.$_product->$getImage2())){
echo "<img src=".$this->helper('catalog/image')->init($_product, "image_2")->resize(500, 500);.">";
}
这会检查损坏的图像,以便magento在找不到图像时不会抛出错误。如果Magento找不到可能导致500错误的原因的图像,则会发出致命错误。
答案 1 :(得分:0)
一步一步,首先尝试以下(应该在magento根目录中运行):
$ find . -type f -exec chmod 644 {} \;
$ find . -type d -exec chmod 750 {} \;
$ chmod o+w var var/.htaccess includes includes/config.php app/etc
$ chmod -R o+w media
$ chmod -R 777 /lib/PEAR
$ a2enmod expires
打开apache配置文件(或.htaccess)并在directory
指令中更改以下内容,该指令是您的magento根目录。
AllowOverride All
Order allow,deny
Allow from all
如下所示:
<Directory /var/www/magento>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
答案 2 :(得分:0)
最后我重新安装了apache并解决了加载图片时遇到的所有问题。 我无法指定问题的根源,但重新安装解决了它。