MCM – Can’t Install or Uninstall Extensions

install

I found threads where people had similar problems while installing/uninstalling extensions using Magento Connect Manager. I found the general answers to be "chmod your downloader directory to 777" or "just install manually through FTP or SSH", but this is a feature that's been working very well for the past four years, and it suddenly broke a few weeks ago.

Whenever I try to either install or uninstall an extension using Magento Connect Manager, I get errors stating that some directories couldn't be created/deleted.

For example, when trying to install a Bestsellers Extension:

Checking dependencies of packages
Installing package community/Bestseller_products 2.0.0

CONNECT ERROR: Failed to create directory:
/home/kemstore/public_html/./app/etc/modules
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml/Bestseller/Edit
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml/Bestseller/Edit/Tab
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml/Bestseller/Edit
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml/Bestseller
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml/Bestseller
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Block
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Helper
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model/Mysql4/Bestseller
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model/Mysql4
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model/Mysql4/Product
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model/System/Config/Source
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model/System/Config/Source
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model/System/Config/Source
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/Model/System/Config/Source
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/controllers/Adminhtml
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/etc
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/etc
/home/kemstore/public_html/./app/code/community/CapacityWebSolutions/Bestseller/sql/bestseller_setup
/home/kemstore/public_html/./app/design/frontend/base/default/template/bestseller
/home/kemstore/public_html/./app/design/frontend/base/default/template/bestseller
/home/kemstore/public_html/./app/design/adminhtml/default/default/layout
/home/kemstore/public_html/./app/design/adminhtml/default/default/template/bestseller
Check permissions

When I tried to uninstall an OrdersEraser extension:

Starting to uninstall community/Wyomind_OrdersEraser 

CONNECT ERROR: Failed to delete files: /home/kemstore/public_html/downloader/.././app/code/community/Wyomind/Orderseraser/Block/Order/Grid.php
/home/kemstore/public_html/downloader/.././app/code/community/Wyomind/Orderseraser/Model/Observer.php
/home/kemstore/public_html/downloader/.././app/code/community/Wyomind/Orderseraser/Model/Orderseraser.php
/home/kemstore/public_html/downloader/.././app/code/community/Wyomind/Orderseraser/controllers/Adminhtml/OrderseraserController.php
/home/kemstore/public_html/downloader/.././app/code/community/Wyomind/Orderseraser/etc/config.xml
/home/kemstore/public_html/downloader/.././app/code/community/Wyomind/Orderseraser/etc/system.xml
/home/kemstore/public_html/downloader/.././app/etc/modules/Wyomind_Orderseraser.xml 
Check permissions

First of all, why do I have those /./ and /.././ within the paths? Does that mean the paths were too long to fit on the error log, or does that have something to do with the problem?

I've tried playing around with directory/file permissions, and before I go off and do a manual install, I wanted to check with everyone.

Any help would be appreciated!

Best Answer

. and .. are special types of paths that indicate the current directory and parent directory respectively. /home/kemstore/public_html/downloader/.././app/ means go to the /home/kemstore/public_html/downloader/ directory, then go up to the parent directory (../), stay there (./), and then go to the app/ directory.

Depending on your server setup and whether you are on shared or dedicated hosting, typically your files are owned by the Web server user (either www-data on Debian/Ubuntu, or apache on RHEL/CentOS) and the permissions are usually set to 664 or 644 for files and 775 or 755 for directories.

As an example, the following shell commands would get you back on track if you are using a dedicated CentOS server (run as root or using sudo):

# cd /home/kemstore/public_html
# chown -R apache: .
# find . -type f -exec chmod 644 {} \;
# find . -type d -exec chmod 755 {} \;
Related Topic