Php 马根托。目标文件夹不可写或不存在
嘿,我遇到了以下问题,请帮忙 在尝试向产品添加图像时,我得到了“目标文件夹不可写…”“,但所有所需文件夹的权限都是777!我已经删除了服务器上的所有文件,没有接触数据库,用新的数据库重新安装了Magento,一切正常。 但是当我切换到以前的DB(更改local.xml中的设置)时,错误再次出现 数据库如何影响文件夹权限 更新:Php 马根托。目标文件夹不可写或不存在,php,magento,permissions,Php,Magento,Permissions,嘿,我遇到了以下问题,请帮忙 在尝试向产品添加图像时,我得到了“目标文件夹不可写…”“,但所有所需文件夹的权限都是777!我已经删除了服务器上的所有文件,没有接触数据库,用新的数据库重新安装了Magento,一切正常。 但是当我切换到以前的DB(更改local.xml中的设置)时,错误再次出现 数据库如何影响文件夹权限 更新: Thanx很多,我们发现Magento从这个方法跳转: public function getBaseMediaUrl() { return Mage::getBa
Thanx很多,我们发现Magento从这个方法跳转:
public function getBaseMediaUrl()
{
return Mage::getBaseUrl('media') . 'catalog/product';
}
使用以下方法:
public function getBaseTmpMediaUrl()
{
return Mage::getBaseUrl('media') . 'tmp/catalog/product';
}
有人知道原因和方法吗???在Magento代码库中只有一个地方使用这种错误语言
File: lib/Varien/File/Uploader.php
...
if( !is_writable($destinationFolder) ) {
throw new Exception('Destination folder is not writable or does not exists.');
}
...
添加一些临时调试代码,就在这上面
...
if( !is_writable($destinationFolder) ) {
Mage::Log($destinationFolder);
//or
var_dump($destinationFolder);
throw new Exception('Destination folder is not writable or does not exists.');
}
...
这将让您知道Magento想要写入但无法写入的确切文件夹。检查此文件夹,您会发现它不可写。回顾上的边缘案例也可能有助于了解该主题。转到:lib/Varien/File/Uploader.php 临时更改以下代码并尝试上载图像。现在,在错误消息中,您可以看到文件夹路径。 在文件夹路径中,您必须授予文件权限777,它将正常工作。解决错误后,将代码还原为原来的状态
if( !is_writable($destinationFolder) ) {
var_dump($destinationFolder);
throw new Exception(''.$destinationFolder.'Destination folder is not writable or does not exists.');
}
马根托2号
这是Magento 2中错误产生的文件:
vendor/magento/framework/File/Uploader.php
在第256行
可以临时放置此代码以获取不可写入/不可存在的文件夹:
if( !is_writable($destinationFolder) ) {
error_log($destinationFolder);
// or
// throw new Exception('Destination folder is not writable or does not exists.');
throw new Exception($destinationFolder);
}
否则,您可以检查是否有这些可由web服务器写入的文件夹:
pub/media/catalog/
pub/media/catalog/category
pub/media/catalog/product
pub/media/images
pub/media/wysiwyg/
Cd /var/www/
chmod 755 -R /html
chown apache:apache -R /html
setenforce 0
然后重新启动apache..它可能是来自Plesk管理的过期证书(这是我的情况) 我尝试了上述步骤,但没有成功。从那里,我试图通过FileZilla访问这些文件,以便立即授予所有文件夹的权限,因此出现了一条关于过期证书的错误消息。它不是存储本身的SSL证书,而是Plesk的管理。我创建了一个新的自签名证书,应用了它的Plesk管理,一切都恢复了正常 这对我有用。我把我的贡献留在这里
祝你好运我也遇到了同样的问题: 登录到您的SSH: 通过运行以下命令授予媒体文件夹权限:
cd public_html/media
find . -type d -exec chmod 777 {} \;
更改媒体文件夹的权限后,我的问题得到解决。只需在服务器上找到媒体文件夹,右键单击->更改权限->设置文件夹权限值777
切换上一个DB时,您可能更改了目录,该目录具有不同的所有者和权限。您的意思是Magento在DB路径中存储到某个目录,并且Admin Frod end操作这些路径吗?最好将权限更改为775/664,并将所有者设置为nobody(centos)或www data(debian)。那么解决方案是什么呢?Thanx很多时候,我们发现Magento从方法/n'公共函数getBaseMediaUrl(){return Mage::getBaseUrl('media')。'catalog/product';}'对我来说,var_转储不起作用,并且没有显示异常。更改异常效果更好:
抛出新异常('目标文件夹不可写或不存在:'。$destinationFolder)代码>。这将显示以下路径:media/tmp/catalog/product
。朋友不会告诉朋友使用chmod 777…