Facebook Fanpage


jueves, 5 de abril de 2018

Asignar permisos correctos a carpetas 755 y ficheros 644 de forma masiva

Asignar permisos correctos a carpetas 755 y ficheros 644 de forma masiva

Por defecto, en el FTP de una web los permisos deben ser los siguientes: 755 a las carpetas y 644 a los ficheros.
Si esto no es así o has cometido el error de poner todo 777 en un momento desesperado y deseas volver a asignar los permisos iniciales, debes escribir este comando desde la ubicación de la carpeta www, public_html o bien httpocs (depende del panel de control de hosting que uses):

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Fuente: www.diagonalhosting.com

domingo, 16 de octubre de 2016

Publicar aplicación WAR/JSP/SERVLET/TOMCAT/MYSQL en servidor dedicado/vps cPanel

Publicar aplicación war con conexión a mysql.

1. Ingresar al cPanel
2. En la opción "Mysql Bases de datos", crear una base de datos, un usuario de base de datos y asignar el usuario a la base de datos.
2.1 (opcional) Si desea subir un backup a la nueva base de datos, ingresar desde cPanel a la opción "phpmyadmin", seleccionar al lado izquierdo la base de datos, y luego clic en la pestaña superior derecha importar y seleccionar el backup .sql deseado (La copia.sql no puede tener la instrucción create database, en dicho caso eliminar dicha línea).
3. En cPanel clic en la opción "administrador de archivos".
4. Seleccione  "Raíz web (public_html/www)", y en la parte inferior active la casilla "mostrar archivos ocultos" y clic en "Go".
5. En el administrador de archivos dentro de la carpeta public_html verificar si existe el archivo .htaccess (Si no existe, clic en la opción superior izquierda "Nuevo Archivo" y en nuevo nombre colocar: .htacccess )
6. Clic derecho sobre el archivo .htaccess , seleccionar la opción "editar/edit" y adicionar las siguientes líneas de código, clic en "Guardar Cambios" y luego en "Cerrar":

SetHandler jakarta-servlet
SetEnv JK_WORKER_NAME ajp13

7. Crear un directorio dentro de public_html para la aplicación, con la opción superior izquierda "+ Carpeta (Nueva Carpeta)", por ejemplo: prueba.

8. Editar su proyecto netbeans desde su PC, actualizando la cadena de conexión por los creados en el punto #2 de este articulo (base, usuario y clave), y generar el archivo .war desde Netbeans.

Nota: Ver cómo crear una aplicación JSP compatible con cPanel y generar el archivo .war: 

9. Ingresar dentro del nuevo directorio public_html/prueba/ , clic en la opción superior "Cargar" y clic en "Examinar" para subir el archivo WAR.
10. Una vez finalizada la subida, cerrar la ventana de carga o clic en "Volver a /home/usuario/public_html/prueba"
11. Clic en el botón superior "Actualizar", clic derecho sobre el archivo .war subido y clic en la opción "renombrar / rename", cambiarle solamente la extensión de .war a .zip en minúscula.
12. Clic derecho sobre el archivo renombrado (proyecto.zip) y seleccionar la opción "Extract / Extraer". Al terminar de descomprimir puede eliminar el archivo comprimido.
13. Listo, la aplicación fue publicada, puede ingresar en http://www.sudominioregistrado.com/prueba/prueba.jsp para visualizarla (Teniendo en cuenta cambiar el nombre de su dominio, subdirectorio y nombre del archivo a ejecutar).
Fuente e información adicional:
https://documentation.cpanel.net/display/EA/Introduction+to+Tomcat
https://documentation.cpanel.net/display/CKB/How+to+Deploy+Java+Applications
información tomada de https://soporte.colombiahosting.com.co/Knowledgebase/Article/View/101/0/publicar-aplicacion-warjspservlettomcatmysql-en-servidor-dedicadovps-cpanel

miércoles, 3 de diciembre de 2014

Generar jar con NetBeans incluyendo Bibliotecas Externas Java


Hola amigos, después de buscar un poco acerca de como incluir las librerías que utilizamos en nuestros proyectos Java en Netbeans, encontré que solo tenemos que insertar el siguiente fragmento de código en nuestro archivo build.xml.

Debemos insertar el Siguiente Código antes de la etiqueta </project> 

Añadimos y modificamos "NOMBRE_DE_ARCHIVO", por el nombre nuevo del .JAR resultante, ya que se crearán dos archivos .JAR, el normal que funciona sin las bibliotecas pero no se crea la carpeta lib con ninguna librería, y el nuevo .JAR con el nombre dado que funciona sin la carpeta lib porque ya tiene incluido las librerías.

<target name="-post-jar">
      <property name="store.jar.name" value="NOMBRE_DE_ARCHIVO"/>
    
      <property name="store.dir" value="dist"/>
      <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
    
      <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
    
      <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
         <zipgroupfileset dir="dist" includes="*.jar"/>
         <zipgroupfileset dir="dist/lib" includes="*.jar"/>
    
         <manifest>
            <attribute name="Main-Class" value="${main.class}"/>
         </manifest>
      </jar>
    
      <zip destfile="${store.jar}">
         <zipfileset src="${store.dir}/temp_final.jar"
         excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
      </zip>
    
      <delete file="${store.dir}/temp_final.jar"/>
      <delete dir="${store.dir}/lib"/>
      <delete file="${store.dir}/README.TXT"/>
   </target>


Si utilizamos este método todo lo necesario para nuestro programa ya estaria incluido en el archivo .JAR

Fuente: http://bazarinformatica.bazzarium.com/viewtopic.php?f=19&t=252


sábado, 21 de septiembre de 2013

Subir imagen al servidor con Yii Framework y eliminar imagenes del servidor

En esta ocacion les traigo la manera de como subir imagenes al servidor y una ves subidas las imagenes como eliminarlas del servidor, este ejemplo es la continuacion del ejemplo anterior pero mejorado, asi que sin mas aqui esta el codigo.


Vista:
archivo _form.php

Código PHP:
..//array de opciones del form...'htmlOptions' => array(
        
'enctype' => 'multipart/form-data',
    ),
...
..
//Otros Elementos..
..
<
div class="row">
        <?
php echo $form->labelEx($model,'imagen'); ?>        <?php echo CHtml::activeFileField($model'imagen'); ?>  //con esto levantamos la imagen
        <?php echo $form->error($model,'imagen'); ?></div>
<?php if($model->isNewRecord!='1'){ ?><div class="row">
     <?php echo CHtml::image(Yii::app()->request->baseUrl.'/banner/'.$model->imagen,"imagen",array("width"=>200)); ?>  // La Imagen se muestra aquí si la página es la página de actualización
</div>
 <?php } ?>
 
..
..
Otros elementos
..
.. 
Modelo:
solo es necesario agregar una linea en el metodo rules() en el Modelo, de la siguiente manera:

Código PHP:
array('imagen''file','types'=>'jpg, gif, png''allowEmpty'=>true'on'=>'update'), 
array('titulo, imagen''length''max'=>255'on'=>'insert,update'), 
Controladores
Código PHP:
    public function actionCreate()
    {
        
$model=new Banner;

        
// Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        
if(isset($_POST['Banner']))
        {
            
$rnd rand(0,9999);  // Generamos un numero aleatorio entre 0-9999
            
$model->attributes=$_POST['Banner'];

            
$subiendoImagen=CUploadedFile::getInstance($model,'imagen');
            
$imgNombre "{$rnd}-{$subiendoImagen}";  // numero aleatorio  + nombre de archivo
            
$model->imagen $imgNombre;


            if(
$model->save()){
                
$subiendoImagen->saveAs(Yii::app()->basePath.'/../images/banner/'.$imgNombre);
                
$this->redirect(array('view','id'=>$model->id));
            }
        }
        
$this->render('create',array(
            
'model'=>$model,
        ));
    } 
Código PHP:
    public function actionUpdate($id)
    {
        
$model=$this->loadModel($id);

        if(isset(
$_POST['Banner']))
        {
            
$rnd rand(0,9999);  // Generamos un numero aleatorio entre 0-9999
            
$_POST['Banner']['imagen'] = $model->imagen;
            
$model->attributes=$_POST['Banner'];

            
$subiendoImagen=CUploadedFile::getInstance($model,'imagen');
            
$imgNombre "{$rnd}-{$subiendoImagen}";  // numero aleatorio  + nombre de archivo
            
$model->imagen $imgNombre;

            if(
$model->save()){
                if(!empty(
$subiendoImagen)){
                    
$subiendoImagen->saveAs(Yii::app()->basePath.'/../images/banner/'.$imgNombre);
                }
                
$this->redirect(array('view','id'=>$model->id));
            }
        }
        
$this->render('update',array(
            
'model'=>$model,
        ));
    } 




De paso, para borrar los archivos del servidor lo conseguí haciendo lo siguiente, (seguro no es la mejor forma pero funciona)

Código PHP:
    public function actionDelete($id)
    {
        
$model $this->loadModel($id);
        
unlink(Yii::app()->basePath.'/../images/banner/'.$model->imagen);
        
$this->loadModel($id)->delete();

        
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
        
if(!isset($_GET['ajax']))
            
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
    } 





Fuente: Aqui

domingo, 21 de julio de 2013

crear host virtual

Cómo crear un VirtualHost en ubuntu y apache

En este post veremos qué es y cómo crear un virtual host utilizando ubuntu y apache.

¿Qué es un virtual host?

Un virtual host es una forma de poder utilizar varios dominios basados en una misma ip. Esto facilita el trabajo en un servidor local ya que podemos crear un dominio para cada aplicación que estemos desarrollando, por ejemplo, si estamos trabajando en un sitio de WordPress llamado misitio, podemos crear un virtual host para acceder a la instalación local de wordpress desde la url http://misitio.dev.
Los pasos que siguen a continuación dan por sentado que ya tenemos una instalación de apache funcionando en el servidor local.

Pasos a seguir para crear el virtual host en ubuntu

Estoy usando ubuntu como ejemplo, pero en otras distribuciones de linux los pasos van a ser muy similares.

Lo primero que debemos hacer es crear el virtual host, lo podemos hacer con el siguiente comando:

   sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/misitio.dev 
Sustituir misitio.dev por el nombre que le queremos dar al host.

Configurando el virtual host

Debemos configurar este archivo recién creado para que apache reconozca el dominio, abrimos el archivo en nano (u otro editor de texto):
   sudo nano /etc/apache2/sites-available/misitio.dev 
Ahora hay que agregar la siguiente línea en el archivo:
    ServerName misitio.dev  
El siguiente paso será cambiar la raíz del virtual host para que apunte al lugar dónde tenemos instalada la aplicación, en este caso de ejemplo sería: /var/www/misitio
   DocumentRoot /var/www/misitio 

Activar el host

Debemos activar el host en dos lugares diferentes, primero en apache:
   sudo a2ensite misitio.dev
Y luego en nuestro archivo /etc/hosts para que al entrar la url en el navegador, este se redireccione a nuestro servidor local y utilice el virtual host de apache.
Accedemos al archivo:
  sudo nano /etc/hosts 
Y agregamos la ip local y el nuevo dominio


   # Host Database
   #
   # localhost is used to configure the loopback interface
   # when the system is booting.  Do not change this entry.
   ##
   127.0.0.1       localhost

   #Virtual Hosts 
   127.0.0.1    misitio.dev

Reiniciar apache

Para que los cambios tengan efecto tenemos que reiniciar apache:
  sudo service apache2 restart
Espero que haya servido este pequeño tutorial y cualquier duda que les haya quedado envíenme un comentario que lo responderé a la brevedad.


fuente: http://fedesilva.com/blog/2013/04/como-crear-un-virtualhost-en-ubuntu-y-apache

martes, 11 de junio de 2013

Enviar formulario con ajax jquery

En el siguiente ejemplo, os mostraré como enviar un formulario vía AJAX, este proceso facilitará las consultas necesarias a PHP, todo ello sin tener que refrescar la página cada vez que hay que hacer una consulta, por ejemplo, a una base de datos.

Para el ejemplo vamos a usar dos archivos, uno será un "index.php" que será la página principal y el que albergará el form para realizar las consultas, al otro lo he llamado"dame-datos.php", este archivo recibirá las variables del formulario, las analizará y devolverá un resultado u otro según su valor, todo ello como dije anteriormente sin necesidad de refrescar la página, es la gran ventaja de AJAX.

El archivo index.php contiene un formulario con un campo de texto en el cual se solicita que ingreses un nombre, y un botón para enviar el formulario a través del método POST, a demás de un div dónde se mostrará el resultado de la consulta AJAX.

El archivo dame-datos.php recibe el valor del campo nombre y posteriormente analizar si el nombre se encuentra dentro de un array con tres nombres, si se encuentra devuelve una respuesta positiva y negativa si no es encontrado.

El código del archivo index.php es el siguiente ...


<html><head><script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script><script>   $(function(){ $("#btn_enviar").click(function(){ var url = "dame-datos.php"; // the script where you handle the form input.    $.ajax({           type: "POST",           url: url,           data: $("#formulario").serialize(), // serializes the form's elements.           success: function(data)           {               $("#respuesta").html(data); // show response from the php script.           }         });
    return false; // avoid to execute the actual submit of the form. });});</script></head><body><center><form method="post" id="formulario">Al enviar el formulario vía ajax, consultaremos en el archivo dame-datos.php si el valor del campo nombre se encuentra en el array y la respuestas será positiva o negativa, según su valor.<br>El Array contiene los siguientes nombres ... <b>antonio, pedro, alberto</b><br><table><tr><td>Introduce un nombre:</td><td><input type="text" name="nombre"></td><td></td><td><input type="button" id="btn_enviar" value="Buscar nombre"></td></tr></table></form><div id="respuesta"></div></center></body></html>



El código del archivo dame-datos.php es el siguiente ...



<?php
$resultado = "";
$nombre = htmlspecialchars($_POST["nombre"]);
$array = array("antonio""pedro""alberto");
for ($x=0; $x<count($array); $x++)
{
    if ($nombre == $array[$x])
{
$resultado = "El nombre ".$array[$x]." <b>SI</b> se encuentra en la base de datos<br><br>";
}
}
if($resultado == "")
{
    echo "El nombre ".$nombre." <b>NO</b> se encuentra en la base de datos<br><br>";
}
else
{
echo $resultado;
}
?>

Ajax Form
Ajax Form


miércoles, 29 de mayo de 2013

Instalar Symfony2 desde cero

Hola amigos bloggueros hoy les dire como instalar Symfony2 versión 2.2.1, no soy un experoto en el tema a decir verdad es la primera vez que instalo symfony2, la instalación la realizare en un entorno linux, yo personalmente estoy utilizando LinuxMint14.
Lo primero que expliare es como configurar un servidor web en nuestro equipo y despues explicare la instalación de Symfony2, la instalación la hago desde cero para que aquellos que se estan iniciando en el mundo de la programación puedan instalar este espectacular framewirk.


1) Primero instalamos Apache
# apt-get install apache2 apache2.2-common apache2-utils ssl-cert  apache2-mpm-prefork
2) Instalamos y habilitamos el módulo para utilizar modrewrite
# apt-get install libapache2-mod-proxy-html
Para habilitar el modulo en apache, ejecutamos:
# a2enmod rewrite
3) Instalamos PHP5
# apt-get install php5 libapache2-mod-php5 php5-common php5-intl
4) Instalamos Mysql
# apt-get install mysql-server mysql-client php5-mysql
5) Por último instalamos phpmyadmi
# apt-get install phpmyadmin
 
Con estos sencillos pasos ya tendremos un servidor web instalado en nuestro equipo.

Ahora continuamos con la instalación de Symfony2.  
Mi IDE favorito para programar es Netbeans, por lo que es el que utilizaré en este ejemplo. Si no lo hemos cambiado, nuestro workspace (donde se encuentran los proyectos a los que podemos acceder desde Netbeans) lo encontraremos en la carpeta NetBeansProjects en nuestra carpeta Home.

1) Procedemos a crear una nueva carpeta con el nombre de nuestro proyecto en el workspace de Netbeans:
$ mkdir /home/NetBeansProjects/miproyecto
2)Entramos en la carpeta que acabamos de crear:
$ cd /home/NetBeansProjects/miproyecto
3)Descargamos Symfony2 (comprueba la última versión en http://symfony.com/download):
Y descomprimimos:
$ tar zxvf Symfony_Standard_Vendors_2.0.0-RC4.tgz
4)Borramos el archivo comprimido que hemos descargado:
$ rm Symfony_Standard_Vendors_2.0.0-RC4.tgz
 
Ya tenemos instalado un proyecto básico en Symfony2. Ahora vamos a configurar Apache para poder acceder desde nuestro navegador favorito.

1) Creamos un nuevo archivo donde irá la configuración de nuestra web:
# vi /etc/apache2/sites-available/miproyecto
Que contendrá el siguiente contenido (cambia “jhongo” por el nombre de tu carpeta Home):

<VirtualHost *:80>
   ServerAdmin email@email.com
   DocumentRoot /home/jhongo/NetBeansProjects/miproyecto/Symfony/web
   ServerName miproyecto.com
   ServerAlias *.miproyecto.com
   ErrorLog /var/log/apache2/miproyecto_error.log
   CustomLog /var/log/apache2/miproyecto_access.log common
   DirectoryIndex index.php
   <Directory "/home/jhongo/NetBeansProjects/miproyecto/Symfony/web">
        Options Indexes FollowSymLinks
        Order Allow,Deny
        Allow from all
        AllowOverride all
        <IfModule mod_php5.c>
           php_admin_flag engine on
           php_admin_flag safe_mode off
           php_admin_value open_basedir none
        </ifModule>
   </Directory>
</VirtualHost>
 
2) Creamos un enlace simbólico de este archivo en sites-enabled para indicar que es una web activa:
# ln -s /etc/apache2/sites-available/miproyecto /etc/apache2/sites-enabled/miproyecto
3) Para que se apliquen los cambios, reiniciamos el servidor Apache:
# /etc/init.d/apache2 restart
4) Por último, forzamos en el archivo /etc/hosts la ip de nuestra web, que en este caso será localhost o 127.0.0.1
# vim /etc/hosts
5) añadimos esta línea al final del fichero:
127.0.0.1 www.miproyecto.com miproyecto.com
 
Después de todo esto, ya podremos acceder a nuestro nuevo proyecto en Symfony2 desde el navegador escribiendo la url que hemos configurado (www.miproyecto.com ó miproyecto.com).

Como primer paso, debemos comprobar si cumplimos con la configuración básica para que funcione nuestro proyecto. Lo haremos desde la siguiente url:

http://miproyecto.com/config.php

Symfony2 config

Como vemos, nos encontramos con dos problemas (podríamos tener más, deberemos resolverlos según sea necesario). En este caso el error es que las carpetas app/cache y app/logs no tienen los permisos necesarios.

Lo arreglaremos así:
chmod 777 /home/NetBeansProjects/miproyecto/Symfony/app/cache
chmod 777 /home/NetBeansProjects/miproyecto/Symfony/app/logs
 
En ocaciones nos genera problemas la intalación con el composer, así que explicare la corrección de este error, empesemos:

  1. Abre una consola de comandos y accede al directorio raíz de tu proyecto Symfony2: 
  2. Ejecuta el siguiente comando:
     
    $ curl -s https://getcomposer.org/installer | php
      
    
   3. Instalamos librerias de terceros
      
     $ php composer.phar install
 
Si todo ha funcionado bien, en el directorio raíz de tu proyecto Symfony2 verás un nuevo archivo llamado composer.phar.

Para comprobar que se ha instalado correctamente, ejecuta el siguiente comando que muestra el menú de opciones de Composer:

$ php composer.phar
 
Instalar Composer de esta manera es correcto, pero te obliga a realizar una nueva instalación para cada proyecto Symfony2. Si tienes muchos proyectos, es mucho mejor que instales Composer de forma global en tu ordenador, para que todos los proyectos utilicen la misma versión de Composer.

Para instalar Composer globalmente, mueve el archivo composer.phar a algún directorio ejecutable del sistema, como por ejemplo:

$ sudo mv composer.phar /usr/local/bin/composer
 
Comprueba que todo funciona bien ejecutando el comando composer sin opciones desde cualquier directorio del sistema.

La instalación global de Composer también facilita su mantenimiento, ya que sólo hay que ejecutar el siguiente comando para actualizar la versión de Composer de todos los proyectos:

$ sudo composer self-update



Una vez arreglados los problemas, ya podemos acceder a nuestro proyecto web con Symfony2 mediante esta url:

http://miproyecto.com/app_dev.php/

Symfony2 home