Magento Tutorials

How to Fix Magento Connect Manager 404 Error

Magento Connect Manager is a great tool for Magento users to install Magento themes and extensions. But what happens if all of a sudden it returns 404 Not Found error and you can’t access it? This guide is gonna provide a quick fix for you.

This problem is due to your folder permission not set up correctly. So to solve it, you need to reset your folder permission. You can either do this directly or run Magento Cleanup File from the root of your Magento store.

1. Reset Magento folder permission directly

  • Change the permissions of downloader/index.php to 0644
  • Change the permissions of downloader/ to 0755

2. Run Magento Cleanup File

To run cleanup, create cleanup.php file in your Magento root folder and add following code in cleanup.php:

<?php

## Function to set file permissions to 0644 and folder permissions to
0755

function AllDirChmod( $dir = “./”, $dirModes = 0755, $fileModes = 0644 ){
$d = new RecursiveDirectoryIterator( $dir );
foreach( new RecursiveIteratorIterator( $d, 1 ) as $path ){
if( $path->isDir() ) chmod( $path, $dirModes );
else if( is_file( $path ) ) chmod( $path, $fileModes );
}
}

## Function to clean up the contents of specified directory

function cleandir($dir) {

if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != ‘.’ && $file != ‘..’ &&
is_file($dir.’/’.$file)) {
if (unlink($dir.’/’.$file)) { }
else { echo $dir . ‘/’ . $file . ‘ (file) NOT deleted!<br />’; }
}
else if ($file != ‘.’ && $file != ‘..’ &&
is_dir($dir.’/’.$file)) {
cleandir($dir.’/’.$file);
if (rmdir($dir.’/’.$file)) { }
else { echo $dir . ‘/’ . $file . ‘ (directory) NOT deleted!<br />’; }
}
}
closedir($handle);
}

}

function isDirEmpty($dir){
return (($files = @scandir($dir)) && count($files) <= 2); }

echo “———————– CLEANUP START ———————– –<br/>”; $start = (float) array_sum(explode(‘ ‘,microtime())); echo “<br/>*************** SETTING PERMISSIONS ***************<br/>”; echo “Setting all folder permissions to 755<br/>”; echo “Setting all file permissions to 644<br/>”; AllDirChmod( “.” ); echo “Setting pear permissions to 550<br/>”; chmod(“pear”, 550);

echo “<br/>****************** CLEARING CACHE ******************<br/>”;

if (file_exists(“var/cache”)) {
echo “Clearing var/cache<br/>”;
cleandir(“var/cache”);
}

if (file_exists(“var/session”)) {
echo “Clearing var/session<br/>”;
cleandir(“var/session”);
}

if (file_exists(“var/minifycache”)) {
echo “Clearing var/minifycache<br/>”;
cleandir(“var/minifycache”);
}

if (file_exists(“downloader/pearlib/cache”)) {
echo “Clearing downloader/pearlib/cache<br/>”;
cleandir(“downloader/pearlib/cache”);
}

if (file_exists(“downloader/pearlib/download”)) {
echo “Clearing downloader/pearlib/download<br/>”;
cleandir(“downloader/pearlib/download”);
}

if (file_exists(“downloader/pearlib/pear.ini”)) {
echo “Removing downloader/pearlib/pear.ini<br/>”;
unlink (“downloader/pearlib/pear.ini”); }

echo “<br/>************** CHECKING FOR EXTENSIONS ***********<br/>”; If (!isDirEmpty(“app/code/local/”)) {
echo “-= WARNING =- Overrides or extensions exist in the app/code/local folder<br/>”; } If (!isDirEmpty(“app/code/community/”)) {
echo “-= WARNING =- Overrides or extensions exist in the app/code/community folder<br/>”; } $end = (float) array_sum(explode(‘ ‘,microtime())); echo “<br/>——————- CLEANUP COMPLETED in:”. sprintf(“%.4f”, ($end-$start)).” seconds ——————<br/>”; ?>

Then, call that file from your browser using http://yourdomain.com/cleanup.php.

Hope that helps!

Recommended post: How to Fix Magento Admin 404 Error after Install