每當我嘗試在Magento 1.7的管理員中上傳圖像時,我似乎都會收到「上傳HTTP錯誤」。我有整個媒體文件夾/文件設置爲777,.htaccess信息是正確的,我沒有使用密碼保護,這發生在任何瀏覽器。Magento - 上傳HTTP錯誤?
任何建議,非常感謝!
每當我嘗試在Magento 1.7的管理員中上傳圖像時,我似乎都會收到「上傳HTTP錯誤」。我有整個媒體文件夾/文件設置爲777,.htaccess信息是正確的,我沒有使用密碼保護,這發生在任何瀏覽器。Magento - 上傳HTTP錯誤?
任何建議,非常感謝!
有很多東西可能會造成這個問題,但這裏有一些事情你可以嘗試:
確保/ media目錄及其所有子目錄中有你的Apache的用戶組(通常是「WWW-數據」或‘的httpd’):
sudo chgrp -R www-data /path/to/magento/media
確保/媒體目錄及其所有子目錄賦予你的Apache的用戶組適當的權限:
sudo chmod -R 775 /path/to/magento/media
在系統 - >配置 - >常規 - >網絡,確保「基本URL」和「基本媒體URL」正在這兩個「安全」正確的「不安全」
在你的Magento數據庫,表core_config_data
包含原始值,請{{secure_base_url}}
和{{unsecure_base_url}}
確保這些值是正確的,有結尾的斜槓,像http://example.com/
在系統CONFI請確保這些值是正確的,以反映原始值中的斜線。這意味着它們應該像{{secure_base_url}}media
例如,沒有斜線
在系統 - >緩存管理,禁用緩存
從你的Magento的版本,新的下載就拿.htaccess文件(包括文檔根目錄中的.htaccess以及/ media和/ media中所有子目錄中的任何.htaccess文件),備份當前的.htaccess文件,然後明確複製新的.htaccess文件以替換它們。
因爲.htaccess以'。'開始。字符,它會被某些Linux命令忽略,這可能會導致人們認爲他們已經複製或覆蓋了一個.htaccess文件,但他們實際上沒有這樣做,所以請謹慎操作。
現在再試一次,如果你得到相同的錯誤,這將排除.htaccess。
如果您使用SSL,嘗試禁用SSL,如果你得到了同樣的錯誤,那將排除SSL
導航到app/code/local
和app/code/community
並記下了這些目錄的命名空間。現在去app/etc/modules
並編輯每個*。XML文件在該目錄中匹配您的<active>
節點以下值注意到命名空間:
<?xml version="1.0"?>
<config>
<modules>
<Namespace_*>
<!-- set this value to "false" -->
<active>false</active>
<!-- more nodes here, just leave every
node alone except <active> -->
</Namespace_*>
</modules>
<config>
現在再試一次,如果你得到同樣的錯誤,那將排除模塊衝突
如果圖像是足夠大時,你會被你的PHP設置限制:
確定您加載的php.ini:
<?php
phpinfo(); // Look for "Loaded Configuration File"
編輯php.ini(如果你在Ubuntu上它可能是在/etc/php5/apache2/php.ini
):
sudo vi /path/to/php.ini
# Make these three values higher than the filesize of the images you're
# trying to upload:
upload_max_filesize = 200M
post_max_size = 200M
memory_limit = 200M
重新啓動你的web服務器:
sudo /etc/init.d/apache2 restart
如果您已經得到了這麼多,沒有任何工作,這裏有一些時間密集的事情,你可以做的,以縮小它是什麼樣的問題:
在同一個網絡服務器上創建全新安裝的Magento並測試圖片上傳。
如果他們仍然不能正常工作,它與Apache或PHP配置(或者甚至可能版本)中的問題
如果他們做的工作,它可能是與你的Magento核心文件還是有問題您的Magento配置或Magento數據庫或Apache虛擬主機。採取這些步驟,以幫助確定哪些:
在/path/to/new/magento/var/*
sudo rm -rf /path/to/new/magento/var/*
創建一個新的數據庫
刪除一切都在您的舊Magento管理,去System->Tools->Backups
,然後單擊Create Backup
。一旦這樣做了,去/path/to/old/magento/var/backup/
並插入備份到您創建新的數據庫:
mysql -p -u username database_name < backup_file
在新的Magento的文件系統,導航到/path/to/new/magento/app/etc/local.xml
和編輯它指向新的數據庫:
<username>{{db_user}}</username>
<password>{{db_pass}}</password>
<dbname>{{db_name}}</dbname>
再次嘗試在新的Magento安裝上進行圖像上傳,如果出現錯誤,則問題出現在您的Magento配置或Magento數據庫中。如果您沒有收到錯誤,那麼問題出現在您的Magento核心文件或Apache虛擬主機中。
如果您想提供更多的信息,可能是最有用的片段將是你裝php.ini
,apache2.conf
和/或httpd.conf
,和你.htaccess
文件從副本複印件document root
通過/media
的所有子目錄,當然任何敏感信息混淆。
這是我見過的關於這個問題的最佳解決方案列表。最後,我最終重新安裝了一臺新主機,似乎解決了這個問題。 –
錯過了「mcrypt」和「gd」PHP擴展。 上面列出的東西要檢查非常有用,謝謝。然而,我已經檢查了一切,沒有得到我的Magento的結果。最終我發現了這個問題 - 可能對某人有用 - Magento正常工作所需的兩個PHP擴展在一段時間之前完成服務器遷移後丟失 - 「mcrypt」和「gd」。可能其中之一導致上傳「HTTP錯誤」。安裝後它就像一個魅力。 – witkacy26
如果您使用.htaccess
文件對密碼保護了根目錄,請刪除此保護並重試。
您.htaccess
內部,尋找:
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/your/passwd_file
AuthGroupFile /dev/null
require valid-user
確保重新檢查您的安全設置的需要,因爲你可能會發現更好的方法來保護您的網站不止這一個。
非常感謝。這解決了上傳錯誤:) –
這是不是很安全,只是爲了消除目錄限制,因爲該網站將公衆可用。如果可能,最好添加「允許來自」與某些IP相關的條目。 –
要添加到chjohasbrouck的答案,您也可以從沒有啓用GD PHP擴展中得到此錯誤。
要安裝在Ubuntu瓦特/阿帕奇做:
sudo apt-get install php5-gd
,然後重新啓動Apache。
而且Ubuntu的說明操作:http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/
感謝提醒我@pantsburgh – Alexandros
它適合我,謝謝! –
我發現了另一個可能的原因。在Magento 1.6.2.0版本中,這是因爲在系統 - > Web - >會話中激活了REMOTE_ADDR和HTTP_USER_AGENT。我再次切換到「否」,並且此錯誤消失(沒有任何其他更改!)
錯誤的權限是此錯誤後面的問題。 如果將組更改爲apache/www-data用戶並更改寫入權限並不能解決此問題。如果使能爲.httaccess做此評論這些行
#AuthType Basic
#AuthName "Password Protected Area"
#AuthUserFile .htpasswd path
#Require valid-user
我遇到了同樣的問題,我的Ubuntu 10.04服務器上 禁用htpasswd的認證。這是由這個特定的環境造成的。
現在我做這個文件中的以下變化:/etc/apache2/mods-available/fcgid.conf
(你必須有root權限進行修改):
FcgidMaxRequestLen 1073741824
差不多就FCGI的最後一行之後結束命令和</IfModule>
前只需添加:
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
FcgidConnectTimeout 60
FcgidMaxRequestLen 1073741824
</IfModule>
處理同樣的問題我發現在我的情況下,這是我的nginx配置的問題。
nginx的默認最大上傳大小爲1MB。如果你上傳較大的文件,你會在你的nginx錯誤日誌中看到413個錯誤,而Magento只會告訴你一個非描述性的「http上傳錯誤」。
在nginx中更改或添加[client_max_body_size]參數。CONF,在HTTP {}部分地方,像這樣的例子,我設定最大上傳大小爲200MB:
http {
client_max_body_size 200m;
}
查看Chrome中的控制檯日誌,我可以看到413錯誤,這幫助我調試並應用此解決方案。太好了! –
我在Magento 1.7有這個問題,因爲圖像文件名「dutchman's_pipe.jpg」載一個撇號。我希望這個幫助是其他人。
它也可以http://stackoverflow.com/questions/2233627/swfupload-works-in-ie-but-not-in-firefox –