lunes, 25 de agosto de 2014


Premature end of script headers: index.php


Hola Chicos =)

Les comento que en mi lugar de trabajo se adquirió un VPS en hostGator, por lo cual tuve que empezar a realizar las respectivas configuraciones de java,mysql, php, zendSkeleton.
Todo iba bien el java rapidísimo, mysql igual, pero cuando me toco verificar la página en el browser para saber si funciona, me envio error 500 Internal Server .

Verifique en el archivo log de apache para entender cual fue el error.. y me topo con lo siguiente:
Premature end of script headers: index.php

Al principio ni idea de que se trataba, empece a investigar, encontré que era permisos, que el archivo no era posible acceder desde otro usuario, que tendría que asignarles de la siguiente forma:
                           chown -R user /var/www/html/zf2-tutorial/public
Lo malo es que no sabía cual era mi usuario, ya que solo me dieron root, esto no permitía que funcionará. 
Para no alargarles el cuento.. la solución era con el usuario apache, entonces se debía ejecutar estos 2 comandos:

chown -R apache /var/www/html/zf2-tutorial/public
chgrp -R apache /var/www/html/zf2-tutorial/public

De esa manera la página cargo exitosamente!!!


Espero les sirva...

Hasta luego Chicos =)

lunes, 4 de agosto de 2014



¡Subir Archivos a Servidor Linux en Java y Php!

¡Hola Chicos!

Hace unos días atrás pensaba que subir un archivo al servidor era realmente imposible realizarlo, pero ps realmente no era así...
Enviar archivos desde aplicación en Java o en Php.. es realmente sencillo.
En Java no pide permisos de escritura ni nada por el estilo, pero en php si, en la carpeta principal del proyecto, debe otorgar permisos 777, para que copie el archivo.

Tanto en java como en php, requieren de un html en donde esta compuesto por un formulario que es similar a esto:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>JSP Page</title> 
</head> 
<body> 
<form action="uploadFile.jsp" method="post" enctype="multipart/form-data"> 
<input type="file" name="file"/> 
<br /> 
<input type="submit" value="Subir archivo" /> 
</form> 
</body> 
</html>

Lo único que cambia es que en la action del formulario deberá llamar en java a un jsp y en php, un archivo propio de php.

El jsp tendría lo siguiente:

<%@ page import="org.apache.commons.fileupload.FileItem" %> 
<%@ page import="java.util.*" %> 
<%@ page import="org.apache.commons.fileupload.*" %> 
<%@ page import="org.apache.commons.fileupload.disk.*" %> 
<%@ page import="org.apache.commons.fileupload.servlet.*" %> 
<%@ page import="org.apache.commons.io.*" %> 
<%@ page import="java.io.*" %> 

<%
java.io.File dir = new File("/home/prueba/cedula");
dir.mkdir();//Esta línea permite crear la ruta si no existe.
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024); 
//factory.setRepository(new File(ubicacionArchivo));
factory.setRepository(dir);
ServletFileUpload upload = new ServletFileUpload(factory);

try
{
List<FileItem> partes = upload.parseRequest(request);

for(FileItem item : partes)
{
File file = new File( dir, item.getName() );
item.write(file);
}
out.write("El archivo se a subido correctamente") ;
}
catch(FileUploadException ex)
{
out.write("Error al subir archivo "+ex.getMessage());
}
%>

En php sería lo siguiente:

<?php
if(isset($_POST["submit"]))
{
 $nombre_archivo = $_FILES["archivo"]["name"];
 $tipo_archivo = $_FILES["archivo"]["type"];
 $tamano_archivo = $_FILES["archivo"]["size"];

 $limite = $_POST["limite"];
 if($tamano_archivo<=$_POST['limite'])
 {
 if(move_uploaded_file($_FILES["archivo"]["tmp_name"], $nombre_archivo))
 {
 echo "El archivo " . $nombre_archivo . " se ha transferido correctamente. <br />";
 echo "Su tamaño es de: " . $tamano_archivo . " bytes.";
 echo "El tipo de archivo es: " . $tipo_archivo;
 }
 else
 {
 echo "No se ha podido transferir el archivo, verifique el tamaño del archivo e intente nuevamente.";
 }
 }
 echo "<a href='.$nombre_archivo.'>";
}
?>


Realizando este código funciona perfectamente..!!!!


Saludos....=)