2010-02-18 12 views

Respuesta

2

Hay muchas formas de hacerlo. Me quedaría con el primero a mí mismo, porque es más fácil de configurar:

  • Si tiene PHP + Apache en otro servidor, simplemente llame a una secuencia de comandos en el otro servidor utilizando file_get_contents con http URL as filename o utilizar cURL si necesidad de POST contenido del archivo también.
  • Si los servidores se encuentran en una misma red (LAN, VPN), puede utilizar recursos compartidos de Windows/Samba o NFS para montar un directorio remoto para que el sistema de archivos local y simplemente escribir en el archivo directamente a través de las funciones fopen/fwrite
  • uso SSH través SCP o SFTP
0

En general, FTP es la única forma disponible de forma regular y fácil (en PHP) para crear un archivo en otro servidor.

Por supuesto, hay otros protocolos que permiten crear un archivo, pero todos ellos requieren la instalación de software en uno o ambos servidores:

  • Samba (permita el acceso al servidor remoto a través de un absoluto ruta del archivo)
  • WebDaV (PHP bibliotecas cliente disponibles)
  • SCP (Encontrar un cliente PHP es probablemente va a ser difícil)

Si ambos servidores ejecutan PHP, probablemente sea más fácil configurar un script PHP en el servidor remoto que acepte datos de archivo a través de POST y lo escriba en un archivo local. No es una solución perfecta, sin embargo, debido a los límites impuestos generalmente en las cargas de POST.

+0

El downvote no era yo, pero PHP soporta SCP usando SSH - vea mi respuesta para los enlaces. –

+0

@Andy es bueno saber, aplausos. –

+0

En general, FTP no está realmente disponible en todas partes y representa un gran agujero de seguridad. Y todas las otras soluciones que menciona superan. También me pregunto por qué dices que la publicación HTTP no está muy orientada al rendimiento cuando tiene la menor sobrecarga de todas las demás soluciones. –

1

PHP permite enviar archivos a través de SSH - vea la familia de funciones ssh2 *, en particular ssh2_scp_send y ssh2_scp_recv.

Nunca los he usado yo mismo, pero la infraestructura está allí en Linux, al igual que SMB en Windows.

0

siempre se puede utilizar DAV, pero podría requerir alguna configuración en el servidor receptor. También existe SSHFS, que le permite montar fácilmente el directorio remoto localmente en un túnel SSH, o simplemente usar la familia de funciones ssh2_ * como Andy Shellam suggested.

Realmente, hay muchas maneras de lograr esto.

Cuestiones relacionadas