magento ftp connect installation-path

Configuración de FTP de Magento Connect



installation-path (5)

¿Estás en hosting compartido por casualidad? Si es así, esto puede ser útil.

Acabo de pasar la mayor parte del día jugando con Magento Connect Manager 2.0 tratando de que funcione con la opción de FTP. Ni siquiera pude hacer que guardara ninguno de mis ajustes en la pestaña de configuración, solo volvía a los valores predeterminados.

Eventualmente rastreé el problema hasta la insistencia de Magento en usar sys_get_temp_dir para determinar el directorio temporal. Esto generalmente no funciona en el alojamiento compartido, ya que no tendrá acceso de escritura a / tmp. Lamentablemente, no se generan errores cuando falla, y Magento simplemente continúa pero no guarda ni carga la configuración de FTP de Magento Connect. Tuve un problema similar en otro lugar en el código central antes.

Creé una carpeta temporal en mi instalación principal en / var / tmp, y la convertí en escritura mundial.

Hay 11 lugares en / downloader y / lib / Mage que usan esta función para determinar la carpeta temporal. Tendrás que cambiarlos para que apunten a donde decidas colocar tu carpeta temporal. No estoy seguro de si todos deben cambiarse, o exactamente lo que hacen todos, pero los cambié para estar seguros. Detalles al final de la publicación. El número de línea es aproximado, pero solo busque sys_get_temp_dir en cada archivo.

Una vez que haya realizado los cambios, deberá asegurarse de que las siguientes carpetas puedan escribirse en todo el mundo de forma recursiva:

/var/package/tmp/ /downloader/.cache /media

El lado positivo de la opción de FTP es que la raíz de Magento ya no necesita ser editable.

Cualquiera de los cambios a continuación puede romper Magento Connect, especialmente los marcados con **. Los hice, y ejecuté una instalación de un módulo que parecía funcionar bien, pero no garantizo nada sobre ellos. También son un poco desordenados en algunos lugares, estoy seguro de que podrían mejorarse; puede que haya una forma mejor de obtener raíz-magento en algunos casos. Tenga cuidado, hay archivos con nombres similares en diferentes subcarpetas.

Aún así, espero que puedan salvar a alguien pasando por la molestia que tuve hoy. Sería de gran ayuda si Varien simplemente escribiera su propia función tmpDir y le permitiera especificar una carpeta temporal en el administrador, ahorrando muchísima molestia. Ah bueno.

downloader / lib / Mage / Connect / Config.php , línea 207:

// $tempFile = tempnam(sys_get_temp_dir(),''config''); $tempFile = tempnam($this->magento_root. ''/var/tmp/'' ,''config'');

downloader / lib / Mage / Connect / Command / Registry.php , línea 315:

//$localXml = tempnam(sys_get_temp_dir(),''package''); $magento_root = dirname(dirname(__FILE__)) . ''/../../../..''; $localXml = tempnam($magento_root. ''/var/tmp/'' ,''package'');

downloader / lib / Mage / Connect / Loader / Ftp.php , línea 107:

// $tmpDir = sys_get_temp_dir(); $magento_root = dirname(dirname(__FILE__)) . ''/../../../..''; $tmpDir = $magento_root . ''/var/tmp/'';

downloader / Maged / Controller.php , 869 **:

//$tempFile = tempnam(sys_get_temp_dir(),''maintenance''); $tempFile = tempnam($config->__get(''magento_root'') . ''/var/tmp/'' ,''maintenance'');

Este es necesario para guardar sus cambios de configuración: downloader / Maged / Model / Connect.php , 404:

//$tempFile = tempnam(sys_get_temp_dir(),''config''); $tempFile = tempnam($configObj->magento_root. ''/var/tmp/'' ,''config'');

downloader / Maged / Model / Config / Abstract.php , 88 **:

// $tempFile = tempnam(sys_get_temp_dir(),''configini''); $magento_root = dirname(dirname(__FILE__)) . ''/../../..''; $tempFile = tempnam($magento_root. ''/var/tmp/'' ,''configini'');

downloader / lib / Mage / Connect / Packager.php - los 5 cambios restantes están en este archivo.

Línea 96 - Creo que este fue el que se necesita para cargar sus cambios de configuración en la pantalla de configuración:

// $tempConfigFile = tempnam(sys_get_temp_dir(),''conf''); $magento_root = dirname(dirname(__FILE__)) . ''/../../..''; $tempConfigFile = tempnam($magento_root . ''/var/tmp/'' ,''conf'');

línea 111:

// $tempCacheFile = tempnam(sys_get_temp_dir(),''cache''); $magento_root = dirname(dirname(__FILE__)) . ''/../../..''; $tempCacheFile = tempnam($magento_root . ''/var/tmp/'' ,''cache'');

Alrededor de 135, antes de la declaración if:

$magento_root = dirname(dirname(__FILE__)) . ''/../../..'';

luego en ambas partes, si y lo demás:

// $configFile=tempnam(sys_get_temp_dir(),''conf''); $configFile = tempnam($magento_root. ''/var/tmp/'' ,''conf'');

158:

//$tempConfigFile = tempnam(sys_get_temp_dir(),''conf_''); $magento_root = dirname(dirname(__FILE__)) . ''/../../..''; $tempConfigFile = tempnam($magento_root. ''/var/tmp/'' ,''conf_'');

Cuando estoy configurando la configuración de Magento Connect obtengo el siguiente error:

Deployment FTP Error. Local file doesn''t exist: Settings has not been loaded. Used default settings Config file does not exists please save Settings

Los detalles que uso son:

ftp.mysite.com.au myftpusername myftppassword install path: public/www/shop (advise by web host to use this)

Magento se sienta en una carpeta llamada / shop

Alguna ayuda. He buscado en este sitio y en los foros de Magento y no he encontrado una solución.


Establezca el chmod del directorio "downloader" temporal en 777 (y revertirlo luego), para que magento-connect pueda escribir el archivo connect.cfg.


Este error se muestra porque la herramienta no pudo guardar su configuración en "connect.cfg".

Para resolver este problema, primero cambie el permiso al archivo 666 connect.cfg "ubicado en el directorio. / Downloader Magento. Poco después, visite Magento Connect y seleccione la pestaña" Configuración ". Finalmente, simplemente haga clic en" Guardar configuración ".


Puede que no tenga nada que ver con eso, pero me pareció que eliminar el archivo connect.cfg cuando es problemático o conectar el administrador no cambiará la configuración.


Si accede a Magento Connect y le indica que verifique los permisos de escritura, existe una forma sencilla de solucionarlo.

Abra su cliente SSH y vaya al directorio donde está instalado Magento. Una vez que esté allí, copie y pegue el siguiente comando:

find . -type d -exec chmod 777 {} ;

Si está en un servidor cPanel, necesita hacer esto:

find . -type f -exec chmod 755 {} ;

(o simplemente vaya a su administrador de archivos y elija 755)

¡Su sitio Magneto en cpanel no funcionará con los permisos establecidos en 777! Eso cambiará los permisos en todos los directorios para que se pueda escribir, y debería poder usar ahora Magento Connect.

También es posible que necesite cambiar los permisos en el archivo de descarga pera para poder instalar correctamente los paquetes de Magento Connect:

chmod 777 downloader/pearlib/download/package.xml Magento Connect write permissions error

Después de hacer lo que debe hacer en Magento Connect, restablezca sus permisos.

NOTA: Por lo general, verá este error en los entornos de alojamiento donde PHP se ejecuta como un módulo de Apache (mod_php, DSO). Eso significa que, cuando intente utilizar Magento Connect, se ejecutará como usuario nobody en lugar de su nombre de usuario. Debe usar SSH para actualizar Magento.