Bagaimana Cara Memperbaiki Kesalahan HTTP Saat Mengunggah Gambar?

28

Saya menggunakan WordPress 3.4.1 di Ubuntu 12.04 menggunakan Apache dan PHP 5.3.X

Ketika saya masuk ke dashboard dan menambahkan posting baru. Kemudian coba unggah gambar untuk ditetapkan sebagai gambar unggulan, saya mendapatkan kotak merah dengan pesan "HTTP Error".

Saya telah membaca tentang orang-orang yang mengatakan untuk tidak menggunakan pengunggah flash dan hanya menggunakan pengunggah browser, tetapi ketika saya mencobanya, saya baru saja mendapatkan 500 Server Internal Kesalahan.

Saya telah mencoba menambahkan AddType x-mapp-php5 .phpdi bagian atas file .htaccess saya, tanpa hasil dalam perubahan.

Menonaktifkan SEMUA plugin tidak berpengaruh. Saya mencoba instalasi baru. Tidak berhasil

Pembaruan 10/17/2016 - Jika Anda menggunakan peran atau kemampuan khusus, coba gunakan peran / kemampuan asli dan coba lagi.

Hal-hal yang perlu dipertimbangkan untuk diperiksa:

  • Kepemilikan file
  • Izin file
  • konfigurasi .htaccess
  • PHP Versi 7+
  • WordPress Versi Saat Ini

Jika Anda beroperasi di belakang proxy, pastikan waktu tunggu server proxy Anda dikonfigurasi dengan benar.

WordPress 3.4.1 Media Unggah Kesalahan HTTP

Michael Ecklund
sumber
Apa alasan di baliknya AddType x-mapp-php5 .php? Itu tampaknya sangat spesifik server. Saya akan berpikir itu lebih mungkin untuk menghancurkan situs Anda (mis. PHP) mengerikan (atau tidak melakukan apa pun jika Anda beruntung) daripada meningkatkan apa pun?
MrWhite

Jawaban:

25

Saya memasukkan kode berikut ke functions.phpfile saya . Berhasil!

add_filter( 'wp_image_editors', 'change_graphic_lib' );

function change_graphic_lib($array) {
  return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}

Ketika ini membantu itu karena itu mengubah modul kode PHP yang digunakan untuk memproses gambar yang diunggah untuk digunakan dengan WordPress.

Pemrosesan ini mencakup pemindahan gambar ke basis data perpustakaan media dan menghasilkan gambar dengan ukuran berbeda ("thumbnail", "medium", "besar") yang selalu ingin diakses oleh WordPress agar tema dapat diakses.

Itu menyebabkan modul "GD" digunakan, karena itu yang pertama. Di beberapa pengaturan server, pustaka "Imagick" yang lebih baru tidak cocok dengan yang lain untuk skenario gambar tertentu, seperti dimensi piksel besar, jadi memaksa pustaka "GD" yang digunakan adalah perbaikan.

Allen
sumber
Lebih baik membuat plugin kecil daripada memasukkannya ke dalam functions.php, karena jika Anda mengubah tema, Anda kehilangan kode. Dan saya yakin Anda ingin ini berfungsi setelah perubahan tema 😊
EliasNS
1
+1 Ini berfungsi untuk saya ketika mengalami masalah ini dengan penyiapan WP 4.9.4 yang out-of-the-box pada akun HostGator baru. @EliasNS noob di sini; apa cara yang tepat untuk membuat plugin kecil untuk ini?
Andrew Janke
@AndrewJanke, Anda dapat menggunakan plugin 😅 es.wordpress.org/plugins/pluginception
EliasNS
"Bayangkan" ? Bukan "ImageMagick" ?
Peter Mortensen
21

Setelah pemecahan masalah dengan @Wyck dalam obrolan, kami menyempit ke masalah mendasar.

Masalah ini terkait dengan konfigurasi server saya yang tidak memiliki jumlah memori yang tepat yang dialokasikan untuk Apache / PHP.

Jika ada yang memiliki masalah yang sama, silakan coba verifikasi bahwa Anda memiliki cukup (64 MB +) memori server yang dialokasikan untuk Apache / PHP dalam pengaturan konfigurasi server Anda. Anda juga dapat menambahkan ini ke file wp-config.php Anda:

define('WP_MEMORY_LIMIT', '64MB');

Jika solusi di atas tidak berhasil, baca artikel Image / Media Uploader? untuk pemecahan masalah lebih lanjut.

Coba tambahkan satu per satu atau semua tweak .htaccess berikut ke file .htaccess di direktori root instalasi WordPress Anda.

Serius, cobalah salah satu dari masing-masing solusi di bawah ini sehingga Anda tahu mana yang berhasil. Jangan hanya menempelkan semuanya di file .htaccess Anda segera.

Coba baris ini:

AddType x-mapp-php5 .php

mod_security mungkin menyebabkan masalah. Nonaktifkan untuk melihat apakah itu masalahnya. Untuk melakukan ini, buat file .htaccess di direktori wp-admin Anda. Tambahkan ini ke dalamnya:

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

Jika Anda menggunakan kontrol akses berdasarkan otentikasi pada server Web Anda (sering dikenal sebagai htpasswd, otentikasi dasar, direktori yang dilindungi kata sandi atau sejenisnya), WordPress tidak dapat mengatasinya untuk Pengunggah Flash, Cron, dan XMLRPC. File terkait harus dikecualikan agar berfungsi. Ingatlah bahwa ini dapat merusak pertimbangan keamanan Anda.

# Exclude the file upload and WordPress CRON scripts from authentication
<FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
</FilesMatch>

Satu catatan terakhir: beberapa mengatakan bahwa jika menggunakan versi PHP 5.3.X yang lebih rendah Anda dapat mencoba menonaktifkan Mode Aman PHP.

Jika Anda menjalankan WordPress multi-situs dan menerima kesalahan HTTP atau kesalahan server internal, terkait dengan pengunggahan gambar, harap baca Mengunggah Gambar ke Gagal Penyebab Multi-Situs ke Kesalahan HTTP ) untuk kemungkinan ide dan solusi pemecahan masalah lainnya.

Michael Ecklund
sumber
ok ... baik untuk mengetahui ... apakah Anda membaca bahwa WP mencoba mengalokasikan ram hingga 256MB jadi ini define('WP_MEMORY_LIMIT', '64MB');harus lebih besar jika memungkinkan.
Damien
1
Jika Anda menggunakan WP 4.1.1, AddType x-mapp-php5 .phpini bukan lagi solusi yang layak karena memaksa halaman untuk hanya mencetak kode PHP sebagai teks biasa
cameronjonesweb
1
Atau tambahkan ini ke file konfigurasi situs Anda jika Anda menggunakan nginx:client_max_body_size 128m;
Flatron
4

Saya mengalami kesalahan yang sama, ketika mencoba mengunggah media di wordpress. Di Chrome, ini muncul sebagai http: kesalahan; di Firefox, kesalahannya terlihat sangat berbeda. Web penuh dengan kisah orang-orang yang menghabiskan waktu berhari-hari untuk mengejar bug (begitu juga saya :-(). Banyak sekali solusi, tetapi tidak ada yang menjelaskan mengapa, setidaknya tidak dengan cara yang konsisten dengan gejala.

Kontribusi layak saya: Saya perhatikan bahwa masalahnya berkorelasi dengan kesalahan segmentasi yang ditandai dalam file log apache2. Itu mengganggu saya, karena sulit didiagnosis.

Mem-boot ulang seluruh server menghilangkan semua gejala dan tiba-tiba saya bisa mengunggah media lagi di Wordpress. Dengan frustrasi, saya tidak tahu mengapa ini terjadi. Proses reboot secara efektif menghentikan saya dari penelitian lebih lanjut, dan sekarang saya harus menunggu (berminggu-minggu? Bulan?) Agar masalah muncul kembali. Saya harap ini akan membantu orang lain dalam pencarian mereka untuk penyebab masalah ini. Istri saya senang, karena saya tidak bisa lagi menghabiskan malam mengejar masalah ini ...

Stef Joosten
sumber
1

Saya telah mengatasi masalah ini dengan mengubah pemilik saya dari rootmenjadi apacheseperti di bawah ini.

chown -R apache:apache /var/www/html/mydomain

Dan kemudian saya telah mengubah izin dari wp-content/uploads/ untuk 775.

Setelah itu, saya sudah mencoba mengunggah gambar di media. Saya berhasil mengunggah gambar.

imran
sumber
0

Saya memiliki masalah yang sama. Saya mencoba berbagai perbaikan, termasuk mengubah prosesor gambar default dari PHP GD ke ImageMagick menggunakan Plugin Force Image Magick

Ini membantu dengan Kesalahan HTTP / kesalahan 500 tetapi thumbnail tidak lagi dihasilkan. Saya kemudian menonaktifkan plugin lagi dan apa yang kemudian membantu saya adalah jawaban atas pertanyaan ini. Sepertinya ukuran gambar tidak berfungsi dengan baik . SayaPHP_MEMORY_LIMIT ditetapkan untuk 160MByang merupakan maksimum absolut hoster saya memungkinkan.

Untuk mengunggah gambar, ini menghasilkan dimensi maksimum sekitar gambar 6000 x 6000 pxsaat menggunakan PHP GD dan menghasilkan thumbnail. Jadi, penting untuk tidak hanya memeriksa ukuran file tetapi juga dimensi gambar. Mengunggah gambar dengan dimensi yang lebih tinggi menghasilkan Kesalahan HTTP / kesalahan 500 bahkan dengan ukuran file kecil.

intagli
sumber
0

Saya telah mengalami masalah seperti berkali-kali dan diselesaikan dengan meningkatkan memory_limit = 256Mdi php.ini OR menambahkan define( 'WP_MEMORY_LIMIT', '256M' );dalam wp-config.phpberkas (* Jika diperlukan Anda dapat meningkatkan memori lebih dari256M ) sebagian besar waktu.

Solusi lain yang mungkin bisa memberi izin ke \wp-content\uploads\folder; perintah:chmod -R 0755 wp-content\uploads\ .

Semoga bisa membantu Anda juga.

rony2k6
sumber