phpwordpressapachecentos6

WordPress async-upload.php 403 error


For a client of mine, I have moved their webpage to a VPS by request. But I'm a web developer and not good at server configuration.

Due to a permission misconfiguration, in my opinion, I cannot fetch images in Media library, no error or sth. Also when I try to upload a new one, it completes the Uploading process, but gets stuck in Processing process and gives a 403 error on async-upload.php.

I have tried 755 and 777 permissions on both wp-content and wp-content/uploads, doesn't solve the issue.

Any help would be appreciated.

Edit: Logs added.

These are from requests.log

*.252.164.35 - - [20/Nov/2015:18:14:48 -0500] "GET /xml_feed/********.php HTTP/1.1" 200 1861
*.252.164.35 - - [20/Nov/2015:18:14:51 -0500] "GET /xml_feed/*****.php HTTP/1.1" 200 394
*.252.164.35 - - [20/Nov/2015:18:14:52 -0500] "GET /xml_feed/***.php HTTP/1.1" 200 359
*.253.241.91 - - [20/Nov/2015:18:14:50 -0500] "POST /wp-admin/async-upload.php HTTP/1.1" 200 11
*.253.241.91 - - [20/Nov/2015:18:14:53 -0500] "POST /wp-admin/async-upload.php HTTP/1.1" 403 3214

Edit 2: Gave all folders 777 permission, now I can re-install my WP setup and update my plugins from panel, but Media Library problem still exists, async-upload.php still gives 403 error.


Solution

  • The issue for me was linked to an auto_increment issue on the database.

    Here's what fixed it for me:

    DELETE FROM wp_termmeta  WHERE meta_id=0;
    DELETE FROM wp_terms  WHERE term_id=0;
    DELETE FROM wp_term_taxonomy  WHERE term_taxonomy_id=0;
    DELETE FROM wp_commentmeta  WHERE meta_id=0;
    DELETE FROM wp_comments  WHERE comment_ID=0;
    DELETE FROM wp_links  WHERE link_id=0;
    DELETE FROM wp_options  WHERE option_id=0;
    DELETE FROM wp_postmeta  WHERE meta_id=0;
    DELETE FROM wp_users  WHERE ID=0;
    DELETE FROM wp_posts  WHERE ID=0;
    DELETE FROM wp_usermeta  WHERE umeta_id=0;
    
    ALTER TABLE  wp_termmeta ADD PRIMARY KEY(meta_id);
    ALTER TABLE  wp_terms ADD PRIMARY KEY(term_id);
    ALTER TABLE  wp_term_taxonomy ADD PRIMARY KEY(term_taxonomy_id);
    ALTER TABLE  wp_commentmeta ADD PRIMARY KEY(meta_id);
    ALTER TABLE  wp_comments ADD PRIMARY KEY(comment_ID);
    ALTER TABLE  wp_links ADD PRIMARY KEY(link_id);
    ALTER TABLE  wp_options ADD PRIMARY KEY(option_id);
    ALTER TABLE  wp_postmeta ADD PRIMARY KEY(meta_id);
    ALTER TABLE  wp_users ADD PRIMARY KEY(ID);
    ALTER TABLE  wp_posts ADD PRIMARY KEY(ID);
    ALTER TABLE  wp_usermeta ADD PRIMARY KEY(umeta_id);
    
    ALTER TABLE wp_termmeta CHANGE meta_id meta_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_terms CHANGE term_id term_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_term_taxonomy CHANGE term_taxonomy_id term_taxonomy_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_commentmeta CHANGE meta_id meta_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_comments CHANGE comment_ID comment_ID  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_links CHANGE link_id link_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_options CHANGE option_id option_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_postmeta CHANGE meta_id meta_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_users CHANGE ID ID  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_posts CHANGE ID ID  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    ALTER TABLE wp_usermeta CHANGE umeta_id umeta_id  BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
    

    As taken from here