Moving a store from one server to another server, you’re bound to have small issues. While 99% of the configuration is stored in app/etc/local, there are other bits and pieces that are more spread out. For example, I noticed that there’s no central ‘Are all file permissions OK?’ screen in Magento Commerce and at times the system is pretty secretive when it comes to error messages.

For example, after moving a store from a linux to a BSD (essentially a different WWW user id), Magento Connect just died with “Error: Please check for sufficient write file permissions”.

Of course it did not disclose what exactly it failed in the process. Anyhow — debugging in downloader/Maged/Controller.php (Maged_Controller::isWritable()), here’s a list of files and directories that need to be made writable so Magento Connect gets to work:

/path/to/your/magento-install

/path/to/your/magento-install/downloader

/path/to/your/magento-install/downloader/config.ini

/path/to/your/magento-install/downloader/pearlib/config.ini

/path/to/your/magento-install/downloader/pearlib/pear.ini

/path/to/your/magento-install/downloader/pearlib/php

Who knows — maybe the secrecy is for security reasons or whatever. In the end the list above is incredibly helpful, when you realized that the linked entry from the knowledge base is missing half of them and/or does not list the relevant parts for Magento Connect there. :D