Foros del Web » Programando para Internet » PHP »

Agregar una nueva librería en el php

Estas en el tema de Agregar una nueva librería en el php en el foro de PHP en Foros del Web. Hola Amigos me encuentro trabajando con los servicios de sftp, tengo un problema de que manera puedo agregar las librerías para poder hacer uso de ...
  #1 (permalink)  
Antiguo 03/02/2014, 07:26
 
Fecha de Ingreso: enero-2014
Mensajes: 30
Antigüedad: 10 años, 10 meses
Puntos: 0
Agregar una nueva librería en el php

Hola Amigos

me encuentro trabajando con los servicios de sftp, tengo un problema de que manera puedo agregar las librerías para poder hacer uso de todas las funciones que me ofrece el manejo de este, estaría muy agradecido de quien me pueda ayudar

La cuestion es en que carpetas debo de poner el DLL en el momento lo tengo en las ext y en php.ini pongo su nombre para poder hacer uso de el pero cuando reinicio apache no me toma la librería que hago ?????


De ante mano muchas gracias
  #2 (permalink)  
Antiguo 03/02/2014, 08:39
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Agregar una nueva librería en el php

<saludo>
Pues los pasos son tal cual dices.
Sin embargo, algunas preguntas:
1. Como se encuentra instalado apache y php? Por aparte o con xampp o wamp, o similares?
2. Si entras a una página donde veas el phpinfo, en cual ruta muestra que se encuentra el ini? Y es el mismo que has modificado?
3. Cual librería estas ocupando para el sftp?
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 03/02/2014, 10:08
 
Fecha de Ingreso: enero-2006
Mensajes: 199
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: Agregar una nueva librería en el php

que sistema operativo estas usando,

en centos
entra por ssh para instalar las librerias, en centos son .so las dll pertencen a windows
  #4 (permalink)  
Antiguo 03/02/2014, 10:19
 
Fecha de Ingreso: enero-2014
Mensajes: 30
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Agregar una nueva librería en el php

Estoy trabajando con windows

Las librerías que descargue para hacer este trabajo fueron ssh2 y openss las tengo en las exenciones de php C:\xampp\php\ext y luego las agrego en mi archivo php.ini
reinicio apache pero al momento de ejecutar mi script no me da nada el codigo que utilizo es este

$host='localhost';
$port=22;
$username='xxxxxx';
$password='xxxxxx';
$remoteDir='/rut/archivo/remoto/para/descarga';
$localDir='C:\carpeta\local';


if (!function_exists("ssh2_connect"))
die('Function ssh2_connect not found');


if (!$connection= ssh2_connect($host, $port))
die('unable to connect');

if (!ssh2_auth_password($connection, $username, $password))
die('unable to authenticate');

if (!$dir= opendir("ssh2.sftp://{$stream}{$remoteDir}")) die('could not open the directory');

$files=array();
while (false !==($file = readdir($dir))){
if ($file == "." || $file= "..")
continue;
$files[] = $file;

}

foreach ($files as $file)
echo "copying $file\n";
if (!$remote = @fopen("ssh2.sftp://{$sftp}/{$remoteDir}{$file}", 'r')){
echo "unable to open remote file: $file\n";
continue;
}


if (!$local=@fopen($localDir. $file, 'w')){
echo"unable to create local file: $file\n";
continue;
}

$read=0;
$filesize=filesize("ssh2.sftp://{$sftp}/{$remoteDir}{$file}");
while ($read <$filesize && ($bufer=fread($remote, $filesize - $read))){
$read += strlen($buffer);
if (fwrite($local, $buffer) === FALSE){
echo "Unable to write to local file: $file\n";
break;
}
}

fclose($local);
fclose($remote);

no creo que el problema este en mi script si no en la forma de instalar de las librerías de ante mano muchas gracias espero su colavoracion en este asunto
  #5 (permalink)  
Antiguo 03/02/2014, 10:27
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Agregar una nueva librería en el php

<saludo>
Ehm... y las respuestas?


Por otro lado, el foreach es de solo una línea?
Si la respuesta es false, entonces si tienes problemas en el script.
Revisa y nos cuentas

</saludo>

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludo>
Pues los pasos son tal cual dices.
Sin embargo, algunas preguntas:
1. Como se encuentra instalado apache y php? Por aparte o con xampp o wamp, o similares?
2. Si entras a una página donde veas el phpinfo, en cual ruta muestra que se encuentra el ini? Y es el mismo que has modificado?
3. Cual librería estas ocupando para el sftp?
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 03/02/2014, 10:37
 
Fecha de Ingreso: enero-2014
Mensajes: 30
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Agregar una nueva librería en el php

Lo revisare en tanto a las respuestas

1) Apache y php se encuentran instalados con xampp
2) La ruta en la cual esta mi archivo php.ini es esta C:\xampp\php y si ese fue el que modifique
3)Las librerías son ssh2 y openss

mortiprogramador en el momento de hacer la ejecución de mis script este es el error que obtengo Function ssh2_connect not found no entiendo el por que de ante mano muchas gracias
  #7 (permalink)  
Antiguo 03/02/2014, 13:16
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Agregar una nueva librería en el php

<saludo>
Uhm, pues eso es porque no se ha cargado la librería.
Que versión de xampp ocupas?
Yo he usado esa librería con xampp 1.7.3 y funciona correctamente.
La dll debe estar en php/ext
La línea para agregar en el ini es
extension=php_ssh2.dll
y la extensión openssl la tengo en comentario pues no la uso,
y ssh2 funciona bien sin que openssl esté activa.

Echale otro ojo a eso y nos comentas.
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #8 (permalink)  
Antiguo 03/02/2014, 13:51
 
Fecha de Ingreso: enero-2014
Mensajes: 30
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Agregar una nueva librería en el php

saludos

Al verificar la versión de mi xampp es 1.7.3 al igual que la tuya
La dll la tengo en la carpeta ext en el php.ini tengo la siguiente linea extension=php_ssh2.dll
Veo que todo esta igual a ti también puse en comentario el openssl pero sigue ocurriendo lo mismo.

Que otro consejo me das de ante mano muchas gracias
  #9 (permalink)  
Antiguo 04/02/2014, 07:57
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Agregar una nueva librería en el php

<saludo>
Pues trata de subir la dll a un sitio para poder descargarla,
y pruebo con la dll que vos tenes.
Igualmente subiré la que yo ocupo, pero en donde estoy ahora
no tengo la librería, podré subirla hasta el final de la tarde.

Revisando un poco más el código... se ven varios problemas
1. se usa una variable $stream, pero, donde se inicializa? (podría tener esto: $stream = ssh2_sftp($connection);
2. en un if se hace uso de una asignación en vez de una comparación
dando como resultado un error fatal (ver el if del primer while)
3. se usa una variable $sftp, pero, donde se inicializa? (podría ser reemplazada por $stream)
4. Como ya lo había comentado antes, falta mejorar el foreach, pues si se deja tal cual está, solo gestionará el primer archivo y no todos los
que encuentre
5. a la variable
$remoteDir le hace falta el / al final, de no usarlo, los archivos se buscaran del modo
/rut/archivo/remoto/para/descarga+archivo.extension
6. a la variable
$localDir le hace falta el \ al final, de no usarlo, los archivos siempre bajaran a C:\carpeta\' y tendrán por nombre local+nombrearchivo.extension
7. en el segundo while, se hace uso de la variable $bufer, pero en las 2 líneas siguientes a ese while, se hace uso de la variable $buffer,
en cuyo caso estas variables deberían ser una sola

Luego se tiene un if donde se hace un opendir, pero veo que se hace al sftp, es esto correcto? O debería ser a una ruta local?
Pues imagino que la idea es recorrer un directorio local para obtener los archivos, y luego
si enviar estos al sftp.
O es al contrario? Traerlos del sftp hacia el local?

En todo caso, creo que si puedes revisar un poco más el código,
así que de nuevo analiza el tema y nos comentas

</saludo>

__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 04/02/2014 a las 12:57

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:08.