Tengo algún problema al usar el "Administrador de actualizaciones" en la GUI. Algunos directorios se bloquean php-cgi.exe
y, por lo tanto, la sustitución de los directorios originales por los recién descargados (que son más recientes) no tiene éxito.
Pero tengo que mencionar que no es un problema de permisos, ya que los módulos pueden quedar instalado a través de "Instalar desde una URL" en /admin/modules/install
, y el trabajo sin ningún problema.
Tomemos un ejemplo:
Página de actualizaciones disponibles (
/admin/reports/updates/update
):Ahora verifico Seleccionar módulo (u otro) para actualizar ( no importa qué módulo elijo , ¡los resultados son los mismos! Así que es solo un ejemplo).
Golpeo "descargar estas actualizaciones" botón.
- OK, la instancia actualizada del módulo se descarga sin problemas:
"Las actualizaciones se descargaron correctamente ": - Ahora hago clic en Continuar .
- Aquí viene el error. El resultado:
" ¡Falló la actualización! Consulte el siguiente registro para obtener más información.
Select_or_other- Error al instalar / actualizar
- Transferencia de archivos no, la razón: No se puede copiar
D:/Projects/web/drupal-7/tmp/update-extraction-6d8993ac/select_or_other/LICENSE.txt
a/Projects/web/drupal-7/htdocs/sites/all/modules/select_or_other/LICENSE.txt
. "
- Bien, estoy empezando a tratar de inspeccionar las posibles razones.
- Esto es lo que mis miradas Drupal estructura de directorios como: . Configuré
../tmp
ser el directorio temporal (en/admin/config/media/file-system
), los archivos de Drupal están enhtdocs
. Esto es correcto, ya que puedo instalar módulos a través de la GUI, como mencioné anteriormente. - Cuando intento ingresar al
htdocs/sites/all/modules/select_or_other
directorio, no puedo, porque aparece un mensaje "¡Acceso denegado en el archivo......sites/all/modules/select_or_other
!" al abrir en Total Commander, y "...sites/all/modules/select_or_other
no es accesible Acceso denegado." cuando la abertura en el Explorador de Windows: , - OK, hago clic derecho en la carpeta y abro Unlocker a través de su asistente en el menú contextual. Dice que este directorio está bloqueado por
php-cgi.exe
: hago clic en "Desbloquear todo", y la carpeta ahora se puede eliminar de sí misma (ya que ya no está bloqueadaphp-cgi.exe
), por lo que simplemente - Puedo encontrar el directorio actualizado del módulo select_or_other en
tmp
: - así que tengo que moverlo manualmente al
sites/all/modules
directorio
- Esto es lo que mis miradas Drupal estructura de directorios como: . Configuré
¿Cuáles pueden ser las posibles razones del bloqueo del directorio php-cgi.exe
? (¿Tal vez Windows Cache Extension 1.1 para PHP 5.3 instalado a través del Instalador de plataforma web? Pero en caso afirmativo, ¿por qué es que, por ejemplo, la eliminación de imágenes o similar a través de la GUI funciona correctamente?)
¿Qué puedo hacer para evitar este problema y dejar que "Actualizar gerente "trabajo?
drush up -y
, experimento el mismo problema: tengo que desbloquear estos archivos y directorios con Unlocker para que funcione, de lo contrario recibo el mensaje de error de que estos los directorios no se pueden escribir / eliminar, y el proceso de actualización se interrumpe. Si uso Unlocker ANTES de ejecutar este proceso, la actualización es exitosa.Respuestas:
Esto no es seguro, ya que permite escribir archivos desde la interfaz de usuario de Drupal para actualizar módulos, en lugar de usar ftp.
pero si lo desea, vaya al panel de hosting de plesk, explore el directorio httpdocs, haga clic derecho y luego en permiso, ahora con permiso, otorgue permiso de escritura al usuario del grupo de aplicaciones,
Gracias
fuente
La razón de que php-cgi tenga el bloqueo se debe a la forma "peculiar" en que Windows maneja el acceso a los archivos, y php / iis maneja el "almacenamiento en caché". Básicamente, acaba de crear el directorio e intentó acceder a él, pero el identificador que lo creó no se lanzó (por lo que todavía estaba bloqueado). Este no es un problema de Drupal, es un problema de IIS / PHP. Y no hay una solución alternativa que pueda encontrar.
Básicamente, hacer el consejo básico de no usar IIS es lo mejor, he visto este problema en algo más que drupal con IIS que resolví moviéndome a apache HTTPD (en win32). Eso sí, eso fue para volver a la escuela, con un proyecto en el que se me pidió que usara Windows 2000.
La mejor manera que conozco de ejecutar drupal en Windows es a través de apache (debido al manejo interno de php).
fuente
Algunas ideas para cavar en la dirección correcta:
Si tiene el mismo problema de Drush, entonces no estoy seguro de si se trata de un problema de IIS. ¿Drush no solo ejecuta PHP desde la línea de comandos sin IIS? Puede intentar esto deteniendo IIS (iisreset / stop) y luego ejecutando el comando de actualización Drush y esperaría que obtenga el mismo resultado.
La otra cosa (lo siento, no tengo suficiente reputación para comentar directamente sobre la respuesta de Lawri):
¿Es esto realmente cierto? De la publicación original parece que creó la carpeta en "tmp", pero el bloqueo está en la carpeta ya existente en "httpdocs".
Supongo que php-cgi intenta copiar de tmp a httpdocs, falla por alguna razón y no elimina el bloqueo. Entonces, cuando investigas después de la falla, ves un bloqueo en httpdocs, pero creo que la razón inicial para fallar no es un bloqueo, ¡después de todo, podría ser un problema de permiso en la carpeta tmp!
fuente