Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

viernes, 15 de julio de 2016

Buscador PHP-MYSQL con paginación

Buscador PHP-MYSQL con paginación


Vamos a crea un Buscador PHP-MYSQL con paginación, bien primero del todo vamos a ponernos en contexto:
Tengo una web (tienda on-line) con gran cantidad de productos y deseo que el usuario/cliente filtre por distintos criterios, con el fin de que encuentre el producto idóneo para el lo antes posible antes de que no abandone ante la abrumadora cantidad de productos disponibles, que en principio no se adaptan a las necesidades del cliente.
1) En nuestra pagina de inicio:

[sourcecode language="php"]

<?php //creamos cookie setcookie("criterio", $_POST['buscar'], time()+3600,"/",""); extract($_COOKIE); echo $criterio; //incluimos archivo conexión a nuestra B.D include('conexion.php'); $conectar=mysqli_connect($servidor,$usuario,$clave,$base_de_datos); if (mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); } ?>
[/sourcecode]


[sourcecode language="html"]

<form id="buscador" name="buscador" method="post" action="buscador.php">
<input id="buscar" name="buscar" type="search" placeholder="Buscar aquí..." autofocus >
<input type="submit" name="buscador" class="...." value="buscar">
</form>

[/sourcecode]

2) En la pagina action, en este caso buscar.php:

[sourcecode language="php"]
<?php
//variable cantidad registros
$consulta=mysqli_query($conectar,"select* from productos where nombre like '%$criterio%' order by nombre");

$nro_reg=mysqli_num_rows($consulta);

if ($nro_reg==0)
echo 'Actualmente no existen programas';

$reg_por_pagina=4;

if(isset($_GET['pag'])){
$nro_pagina=$_GET['pag'];
}else{
$nro_pagina=1;
}
//forzamos a que el nº pagina sea un entero
settype($nro_pagina, 'integer');
if(is_numeric($nro_pagina))
$inicio=($nro_pagina-1)*$reg_por_pagina;
else
$inicio=0;

try {
$consulta=mysqli_query($conectar,"select* from productos where nombre like '%$criterio%' order by nombre limit $inicio,$reg_por_pagina");
}
catch(Exception $e){
echo('Error de conexión SQL'.mysqli_error());
}
$max_paginas=ceil($nro_reg/$reg_por_pagina);
echo "
<table>
<tr>";
while($reg=mysqli_fetch_array($consulta)){
echo "
<td>'$reg[id]'</td>

"
"
<td>'$reg[nombre]'</td>

"
"
<td><img src='$row[imagen]' width='150'/></td>

";
}
echo "</tr>
</table>

";
?>

<?php if($nro_pagina>1)
echo " <a href='buscar.php?pag=".($nro_pagina-1)."'>Anterior</a> ";
for($i=1;$i<=$max_paginas;$i++){
if($i==$nro_pagina)
echo $i." ";
else
echo "<a href='buscar.php?pag=$i'>$i</a> ";
}

if($nro_pagina<$max_paginas)
echo " <a href='buscar.php?pag=".($nro_pagina+1)."'>Siguiente</a> "
?>
[/sourcecode]

paginación-Buscador PHP-MYSQL con paginación
Con estos sencillos pasos, es fácil construir un buscador para nuestra web/blog, tan solo quedaría por hacer formatear con CSS los controles y la información extraída de la BD, cosa que dejo al gusto de cada uno, hasta luego.



lunes, 11 de julio de 2016

Script bash controlar temperatura de tu terminal

Script para controlar temperatura de tu terminal



Lo típico con los rigores del verano mi portátil, que me dice que quizá ya es hora de que otro más joven y fuerte asuma sus tareas, se me calienta un poquito (nivel plancha chiringuito playero), así que decidí currarme este sencillo Script para controlar la temperatura de mi portátil y así prolongar un poquito más la vida útil de mi portátil.

En primer lugar instalamos este programa:
sudo apt-get install lm-sensors

Ejecutamos sensors detect:
sudo sensors-detect

[sourcecode language="bash"]

#!/bin/bash

function temp(){
sensors > .temp
temp1=$(awk 'NR==3' .temp |cut -c 16-17)
echo $temp1;
norm="65"
high="70"
crit="81"
if [ "$temp1" -le "$norm" ]; then
zenity --info --text "Temperatura equipo normal temperatura:"$temp1
elif [ "$temp1" -ge "$high" ]; then
zenity --info --text "Temperatura equipo alta temperatura:"$temp1
elif [ "$temp1" -ge "$crit" ]; then
zenity --info --text "Apagar equipo temperatura:"$temp1

fi
}

temp
[/sourcecode]

Tan solo no faltaría añadir esta linea en nuestro cron algo como esto:
 */5 * * * * /home/antonio1/temp.sh

*/5 * * * * export DISPLAY=:0 &&  /home/antonio1/temp.sh /home/antonio1/temp.sh

Hasta luego.

miércoles, 4 de noviembre de 2015

Instalar nodejs en ubuntu



 
 

Instalar nodejs en ubuntu

- En mi caso añado el repositorio de mantenimiento de paquetes nodejs para ubuntu:

curl -sL https://deb.nodesource.com/setup | sudo bash -
- Instalar nodejs:

sudo apt-get install nodejs

- Comprobar versión instalada:

node -v && npm -v
v0.10.40
1.4.28
*si queremos ver todas las posibilidades de
invocación que nos ofrece el comando node:
node –h
- Para probar el correcto funcionamiento de nodejs crearemos un sencillo javascript(prueba.js):
var $1="hola";
var $2=" mundo";
console.log($1+$2);
node prueba.js 
hola mundo
Finalmente se crea un carpeta donde se albergaran nuestros script, donde estos se 
ejecutaran en el servidor.

martes, 20 de octubre de 2015

Script en bash para extraer audio de archivo mp4

Pues eso, que como no me gusta recordar comandos, he creado este sencillo bash para extraer el audio  de un archivo mp4:
#!/bin/bash

function leer(){
echo -e "e[33mRuta y Nombre archivo archivo origen(mp4)"
read ORIGEN
echo -e "e[34mnombre archivo salida(mp3)"
read SALIDA
#se comprueba si esta vacio el nombre salida
if [ -z "$SALIDA" ];then
SALIDA="salida.mp3"
fi
echo -e "e[0mreset"
clear
}
function convertir(){
ffmpeg -i $ORIGEN -q:a 0 -map a $SALIDA
}
clear
echo -e "e[31mSencillo script para extraer audio de archivos mp4"
sleep 2
clear
leer
convertir

Espero les sea de utilidad, gracias.

viernes, 21 de marzo de 2014

Convertir el editor de texto gedit en un IDE de programación

Convertir el editor de texto gedit en un IDE de programación


Hace un tiempo publique una entrada acerca de como instalar LAMP+XDEBUG en ubuntu, bien si no se desea instalar eclipse o cualquier otro entorno de desarrollo, podemos convertir el editor de texto gedit en algo parecido a un IDE, si queremos afinar más, para utilizarlo para desarrollar PHP.

  • Bien sin más dilación, comencemos:
    Vamos a Editar->Preferencias y allí marcamos las opciones que deseemos. Dejo unos pantallazos a modo de ejemplo:
    1) Pestaña Ver:
    ver

     2) Pestaña Editor:
     
    Editor

    3) Pestaña Tipografías y colores:

    tip


    4) Complementos:

    comp

    comp

    Y aquí estaría el resultado final acorde con la anterior configuración:

    gedit
Utilitario  gedit como un IDE de desarrollo, sin duda, puede se una opción bastante interesante, yo, hace ya unos cuantos años, huf casi da vértigo, descubrí el editor UltraEdit que cubre con creces muchas de mis necesidades como desarrollador.

lunes, 4 de noviembre de 2013

Instalar Android Studio en Ubuntu

Instalar Android Studio en Ubuntu


En un anterior entrada, se explicaba como instalar un IDE para desarrollar software para android desde ubuntu, lo cual implicaba instalar el IDE eclipse así como una serie de plugins adicionales(ADT), bien ahora google lo ha puesto más fácil con android studio.

logo-androidPara instalar android studio nos descargamos el siguiente paquete.

En segundo lugar, y si no tuviéramos instalado el kit de desarrollo java(JDK), lo instalaremos, en ubuntu 13.04 y posteriores, de la siguiente manera:

sudo apt-get install openjdk-7-jdk openjdk-7-jre

Una vez descargado el paquete, lo descomprimimos y ejecutamos  el archivo studio.sh, dentro de la ruta /bin.

Si deseamos incluir la ruta de  studio.sh en nuestro path:
PATH=/home/antonio/android-studio/bin/:$PATH
* En el caso que queramos exportarlo permanentemente, deberemos incluir esta sentencia en el fichero .bashrc

En caso contrario deberéis seguir la ruta donde descargasteis android studio y dentro de /bin ejecutar el script studio.sh.

En el último Google I/O hubo buenas noticias para todos los desarrolladores de Android, pues la empresa ha puesto a disposición un IDE para programar con todo lo necesario.

android studio
El IDE se llama Android Studio, el cual se basa en Intellij IDEA, este IDE que inicialmente estaba enfocado para programar en Java, pero que ahora ha sido modificado para usarlo para desarrollar software para Android.

En el caso de que dispongamos de un dispositivo con android, podemos hacer las pruebas en el propio smartphone o tableta:

- Nos dirigiremos a los ajustes del teléfono o tableta, y allí en habilitamos las opciones de desarrollador y finalmente, tendremos que habilitar la opción "Depuración USB".

- Ahora ya podemos conectar el smartphone o tableta a un puerto USB.

- Ejecutar el comando: lsusb, donde se deberá obtener algo parecido a esto:

lsusb

- Una vez tengamos esta salida, creamos, como root, el archivo 51-android.rules dentro de la ruta /etc/udev/rules.d y con el siguiente contenido:

51-android.rules

- Por último, deberemos ejecutar el comando: sudo reload udev.

A partir de este momento a la hora de probar nuestro dessarollo podremos eleguir nuestro dispositivo android.

android estudio

Sí tienen algún problema, déjanos un comentario.

miércoles, 30 de octubre de 2013

Programar Matlab en ubuntu

Programar Matlab en ubuntu

Recientemente he comenzado un curso de programación en lenguaje Matlab, pero ... si ya sabes programar, ya, pero me gusta perder el tiempo.

Se trata de un curso en la plataforma Miriadax, pero dado que las licencias Matlab cuestan un ..., he instalado el entorno de programación octave UPM, que como el nombre indica es un programa de la Universidad Politécnica de Madrid y que además es de dominio público.

Instalación en ubuntu y derivados:

- Añadimos el repositorio:

sudo add-apt-repository ppa:herraiz/octave-upm

- Actualizamos lista software:

sudo apt-get update

- Para finalmente instalar octave UPM:

sudo apt-get install octave
 
-Opcionalmente, tampien podemos instalar un frontend: 
 
sudo apt-get install qtoctave

Recientemente hemos conocido que google ha liberada la versión 2.0 que, como novedad más importante traerá una herramienta para medir el rendimiento javascript, ya que el objetivo de octave 2.0 sera reducir la latencia de javascript.

La documentación sobre Octane está disponible aquí y se puede probar Octane a través del navegador en esta dirección web.

jueves, 17 de octubre de 2013

Instalar ubuntu para móviles


 Liberado ubuntu para móviles

 Acaba de ser liberada la primera versión estable del sistema operativo ubuntu para móviles, de momento canonical solamente da soporte para un par de dispositivos, Galaxy Nexus y Nexus 4, enlace oficial con las instrucciones de instalación desde ubuntu 12.04/12.10/13.04 y 13.10.


De momento no puedo informaros de incidencia alguna que pueda ocurrir durante la instalación, ya que no dispongo de ninguno de estos dispositivos móviles.

martes, 1 de octubre de 2013

Programar en Delphi en Ubuntu

Programar en Delphi en Ubuntu


  1. Primero debemos instalar wine 1.7:

  • sudo su 
  • add-apt-repository ppa:ubuntu-wine/ppa
  • apt-get update
  • apt-get install wine1.7
  • apt-get install winetricks
     
  •  winecfg:
    conf-wine
     

2.    Descargamos Delphi 7, lo instalamos para finalmente ejecutarlo.

En el siguiente enlace os dejo un manual para empezar a programar en este lenguaje, que no difiere mucho de otros lenguajes de programación pero que nunca esta demás ampliar nuestra pequeña librería.

miércoles, 13 de marzo de 2013

instalar NetBeans 7.3 en Ubuntu


instalar NetBeans 7.3en Ubuntu 

Debemos tener instalada la maquina virtual java


Lo primero que deberemos hacer es descargarNetBeans.

Donde elegiremos idioma, plataforma y lenguajes para los que queremos que netbeans tenga soporte.

(yo en este caso me lo he descargado el paquete para todos los lenguajes y luego durante la instalación elijo los que quiero que netbeans tenga soporte).

Nos descargamos el .sh y le damos permisos de ejecución:

chmod +x netbeans-7.3-linux.sh

Lanzamos el instalador:

/netbeans-7.3-linux.sh

Donde elegiremos la carpeta donde queremos que se instale netbeans y el jdk de java que netbeans va a utilizar.

Tras la finalización del instalador, netbeans ya esta totalmente funcional y por lo tanto, listo para su uso.

viernes, 15 de febrero de 2013

Instalar ADT Blunde en ubuntu

Instalar ADT Blunde en ubuntu

En un anterior post explique como instalar eclipse y SDK, así que doy por hecho que ya esta instalado.

Descargar ADT Blunde for linux: http://developer.android.com/sdk/index.html#download.

Tras elegir nuestra arquitectura y aceptar la licencia, comenzara la descarga.

Una vez concluida la descarga, descomprimeremos el paquete con el comando:

unzip adt-bundle-linux-*.zip 

Arranca Eclipse y selecciona Help>Install New Software>n add(aviable software)> add site y en nombre ponemos plugin android y en site ponemos la siguiente URL>http://dl-ssl.google.com/android/eclipse/ y aceptamos.

Marcamos la casilla Deveploment tools y aceptamos.

Una vez descargado este paquete aceptamos la licencia y comenzaran a instalarse los paquetes descargados, ahora reiniciamos eclipse. Tras lo cual le indicaremos a eclipse donde se encuentra el SDK de android, para lo cual haremos lo siguiente: menu(windows)>preferences, donde en el desplegable nos iremos a android y en examenar escogeremios la ruta donde anteriormente descomprimimos el SDK de android.

lunes, 4 de febrero de 2013

Instalar compilador cobol en ubuntu

Instalar compilador cobol en ubuntu

Acabo de empezar un curso on-line sobre programación en cobol y el
compilador que me proporcionaron es para entornos MS-DOS, tal y como
quería seguir usando mi distro ubuntu, busque en internet y resulta
que existe una versión del rmcobol para GNU/LINUX, pero en mi ubuntu no la encontre y decidí no complicarme la vida instalando maquinas virtuales e
instale el DOSEMU para GNU/LINUX, para así correr el rmcobol.

Procedo a explicar los pasos para una configuración correcta del compilador, así como los pasos para compilar y ejecutar un programa escrito en cobol:

1. Bajar el compilador rmcobol.

2. Crear fichero hola_mundo.cobol.cbl

3. Compilarlo con la instrucción siguiente “rmcobol 'nombre de programa', esto nos   creara un archivo objeto con extensión COB.

4. Para ejecutarlo vasta con tipear “runcobol nombre del archivo.COB'.

5. A la hora de compilar podemos pasarle algunos parámetros:

o=especifica el lugar donde dejaremos el archivo objeto.

l=crea un fichero con extensión LST con los mensajes de error de       compilación.

Programa hola_mundo.cobol.cbl:

IDENTIFICATION DIVISION. PROGRAM-ID. EJEMPLO-1.
AUTHOR. xxxxxxxxxx.
REMARKS. Programa ejemplo escrito en en lenguaje cobol. ENVIRONMENT DIVISION. CONFIGURATION SECTION.
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
INICIO-SECTION.
1000-INICIO.
DISPLAY 'hola mundo:'
1000-FIN.
STOP RUN.

martes, 29 de enero de 2013

instalar mariadb en ubuntu 12.04/12.10

Instalar sucesor de mysql en ubuntu 12.04/12.10

mariadb_logo
Descargamos el paquete del B.B.D.D:

wget http://mirrors.fe.up.pt/pub/mariadb/mariadb-5.5.28a/kvm-bintar-hardy-x86/mariadb-5.5.28a-linux-i686.tar.gz

Creamos el usuario y grupo mysql:

sudo su

groupadd mysql

adduser --ingroup mysql mysql

Copiamos y descomprimimos en la ruta /usr/local:

cp mariadb-5.5.28a-linux-i686.tar.gz /usr/local && cd /usr/local && tar -xzvf mariadb-5.5.28a-linux-i686.tar.gz

Se hace un enlace al direcctorio extraido:

ln -s mariadb-5.5.28a-linux-i686 mysql 
 
Se instalan las tablas para que mariadb trabaje correctamente:

./scripts/mysql_install_db –user=mysql

Se cambian permisos:

chown -R root . 
 
chown -R mysql data


Antonio Carmona López
+1
0Número de comentarios
74Las veces que se ha visto
29/01/13


Se arranca el demonio para mariadb:

bin/mysqld_safe --user=mysql &

Hacemos un test para comprobar que todo el proceso ha sido correcto:

cd /usr/local/mysql/mysql-test/

perl mysql-test-run.pl 
 
Y si el resultado del test es satisfatorio, ya podemos trabajar con mariadb:

mysql -umysql -pmipass

viernes, 28 de diciembre de 2012

Editor visual con soporte html5 en ubuntu

Blog HTML 5

Bluegriffon, una alternativa libre a Dreamweaver


Breve Historia

Bluegriffon nace en 2010 de las manos de el/los desarrollador/es de nVU, nVU es editor de paginas web, para aprovechar todo el potencial de html 5 y que se vale de motor de renderizado firefox v4.


Ejecutar Bluegriffon


Se descomprime blugriffon:

tar xvf BlueGriffon-1.5.2-Ubuntu11.10-x86_64.tar.bz2

cd Bluegriffon

./bluegriffon




Antonio Carmona López

viernes, 7 de diciembre de 2012

Instalar oracle express en ubuntu 12.10 (32 y 64 bits)

Instalar oracle express 10.2 en ubuntu 12.10(32 bits)



Instalamos dependencias:

sudo su

apt-get install libc6 bc

Descargamos el que contiene el instalador:

wget -c http://oss.oracle.com/debian/dists/unstable/main/binary-i386/libaio_0.3.104-1_i386.debhttp://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb

Instalamos librería:

dpkg -i libaio_0.3.104-1_i386.deb

Creamos fichero Sbin/chkconfig y le damos permisos de ejecución:

nano /sbin/chkconfig  
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Debian by Dude
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01 
chmod 755 /sbin/chkconfig 
Instalamos Oracle: 
dpkg -i oracle-xe-universal_10.2.0.1-1.1_i386.deb
Configuramos Oracle, dejando los valores por defecto:

/etc/init.d/oracle-xe configure 
passwd oracle 
su oracle 
Ahora editamos archivo .bashrc e introducimos las variables de ambiente para que Oracle funcione: 
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH 
Instalar O
racle 11GR2 en ubuntu 12.10 (64 bits)


Instalar Oracle en sistemas 64 bits es un poquito más laborioso, no difícil, ya que se tienen que modificar algunos 
parámetros.
sudo su

apt-get install libaio1 alien
 
Descargamos archivo:oracle-xe-11.2.0-1.0.x86_64.rpm.zip
 
Creamos enlaces, directorios y archivos que nos evitaran fallos a la hora de configurar Oracle: 
ln -s /usr/bin/awk /bin/awk 
mkdir /var/lock/subsys 
touch /var/look/subsys/listener
Creamos fichero /sbin/chkconfig y le damos permisos de ejecución:

nano /sbin/chkconfig
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Debian by Dude
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01 
chmod 755 /sbin/chkconfig 
Modificamos unos parámetros del kernel, necesarios para Oracle: 
nano /etc/sysctl.d/60-oracle.conf
# Oracle 11g XE kernel parameters
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65000
kernel.sem=250 32000 100 128
kernel.shmmax=536870912

Reiniciamos servicio procps, para que el kernel coja los nuevos parámetros:

service procps start 
 
Hacemos unas comprobaciones:

sysctl -q fs.file-max
obteniendo: fs.file-max = 6815744

Comprobamos memoria swap:

free -m


Convertimos el instalador a paquete debian/ubuntu: 
 
cd   ~/Disk1 
 
alien --scripts oracle-xe-11.2.0-1.0.x86_64.rpm 
 
Instalamos Oracle:
 
dpkg -i oracle-xe_11.2.0-2_amd64.deb

Configuramos Oracle, dejando los valores por defecto:

/etc/init.d/oracle-xe configure

passwd oracle

Ahora editamos archivo .bashrc e introducimos las variables de ambiente para que Oracle funcione:
su oracle 
nano .bashrc 
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH


Ejecutamos el perfil del usuario oracle para que coja los parámetros:

. ./.profile

Puede ser posible que la interfaz web de oracle no funcione, para habilitarla:

sqlplus sys as sysdba 
 
SQL>EXEC DBMS_XDB.SETHTTPPORT(8080);
SQL>COMMIT;
SQL>SELECT DBMS_XDB.GETHTTPPORT() FROM DUAL;
You should see 8080 as the result.
SQL>ALTER USER ANONYMOUS ACCOUNT UNLOCK;
SQL>ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK; 
 
/etc/init.d/oracle-xe restart 
 
http://127.0.0.1:8080/apex 
 
 
 
 

lunes, 3 de diciembre de 2012

Instalar apache, php, mysql, phpmyadmin y xdebug en ubuntu 12.04


 
Instalar apache, php, mysql, phpmyadmin y
xdebug

sudo su


add-apt-repository ppa:ondrej/php5

Instalamos el servidor web apache2:

apt-get install apache2

Instalar PHP5:

apt-get install php5 libapache2-mod-php5

Reiniciar el servidor web para que trabaje con el nuevo modulo PHP instalado

/etc/init.d/apache2 restart

La ruta por defecto que usa apache para albergar las paginas index.*, .html, .htm, .php .aspx, etc..., es /var/www, pero la podemos modificar editando /etc/apache2/sites-available/default, donde modificaremos la ruta hacia la que apunta el DocumentRoot.
Deberemos reiniciar el web server si este u otro parámetro es modificado.

Tras lo cual hay que reiniciar apache:
service apache2 restart
Creamos el info.php para comprobar el funcionamiento de PHP con el siguiente contenido:


Ahora ya podemos probar el correcto funcionamiento del modulo PHP en nuestro web server:


Donde, si todo ha ido bien, nos aparecerá toda la información acerca de la configuración de PHP.

Instalamos cliente y servidor de base de datos mysql:

apt-get install mysql-server mysql-client

Ahora instalamos los módulos necesarios para manejar mysql mediante PHP:

apt-get install php5-mysql php5-cura php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

De nuevo reiniciamos apache.


A la hora de instalar phpmyadmin es donde me encontré un pequeño problema, ya que el demonio de mysql no tiene permisos de ejecución.


Comprobamos si el demonio mysql esta corriendo:


ps -aux | grep mysql


Si vemos algo como esto:
mysql 1080 0.1 0.5 484304 43276 ? Ssl Nov26 0:06 /usr/sbin/mysqld
, continuamos con la instalación de phpmyadmin, en caso contrario ejecutamos:


chmod 755 /etc/init.d/mysqld


Instalar phpmyadmin:


apt-get install phpmyadmin



Ahora instalamos xdebug:

apt-get install php5-xdebug 
 
editamos el archivo /etc/php5/apache2/php.ini y modificamos los parámetros display_errors=On y html_errors=On.

Volvemos a reiniciar apache.

Si así lo deseamos podemos convertir el editor de texto gedit en un IDE para PHP.

martes, 20 de noviembre de 2012

Eclipse y ADT en ubuntu


Eclipse y ADT en ubuntu

Hola a todos, comparto link de como instalar y configurar eclipse y ADT en linux para iniciarse en la creación de software para android.

http://android.scenebeta.com/tutorial/como-instalar-eclipse-y-adt-en-gnu-linux

Aunque el tutorial es un poco antiguo, lo que cambia, un poco, es la interfaz del entorno de programación, debido a la propia evolución de las versiones.

También quisiera compartir link de web donde encontrar diferentes recursos dedicado a la creación de software para android.

http://www.htcmania.com/showthread.php?t=218891 


jueves, 15 de noviembre de 2012

Firewall mediante iptables en S.O GNU/LINUX

Configurar script para iptables en GNU/LINUX

Aunque he probado interfaces gráficas, en concreto una, firestarter y parece que funciona bien, personalmente prefiero las iptables, ya que no tienes que depender de ningún entorno gráfico y lo puede correr en cualquier maquina con GNU/LINUX. 
 
Una vez dicho esto empecemos por dar una breve explicación acerca de iptables:

 Simplemente decir que iptables es un firewall vinculado directamente al kernel y que básicamente existen dos políticas: 

          - Aceptar o denegar trafico, entrante o saliente, de un determinado puerto/s,o IP, etc ...

Aquí os dejo mi script iptables, podéis hacer un COPY-PASTE si así lo deseáis y no me rechinaran los dientes. Este script es para mi PC y no tiene implementado servidor alguno, tan sólo tiene habilitados algunos servicios como FTP, SMTP, IMAP, etc ...

nano firewall.sh

#!/bin/sh

case $1 in
start )
echo iniciando iptables
#Borrándose reglas anteriores
iptables -F
iptables -X
iptables -Z
#Estableciendo las reglas por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permito salida web
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
#web seguras
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
#FTP
iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT
#Las siguientes reglas permiten el trafico IMAPS
iptables -A INPUT -i eth1 -p tcp --dport 993 -j ACCEPT
#Pemito trafico SMTP
iptables -A INPUT -i eth1 -p tcp --dport 465 -j ACCEPT
#Ahora cerramos los puertos de gestión típicos
iptables -A INPUT -i eth1 -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -i eth1 -p udp --dport 1:1024 -j DROP 
# impedimos iniciar conexion los puertos altos
iptables -A INPUT -p tcp --syn --dport 1025:65535 -j DROP 
#Permito tráfico torrent
iptables -A INPUT -i eth1 -p tcp --dport 43253 -j ACCEPT
#Bloqueando ICMP con iptables
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas correctamente
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
;;
restart )
echo reiniciando iptables
#Borrándose reglas anteriores
iptables -F
iptables -X
iptables -Z
#Estableciendo las reglas por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permito salida web
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
#web seguras
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
#FTP
iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT
#Las siguientes reglas permiten el trafico IMAPS
iptables -A INPUT -i eth1 -p tcp --dport 993 -j ACCEPT
#Pemito trafico SMTP
iptables -A INPUT -i eth1 -p tcp --dport 465 -j ACCEPT
#Ahora cerramos los puertos de gestión típicos
iptables -A INPUT -i eth1 -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -i eth1 -p udp --dport 1:1024 -j DROP
# impedimos iniciar conexion los puertos altos
iptables -A INPUT -p tcp --syn --dport 1025:65535 -j DROP 
#Permito tráfico torrent
iptables -A INPUT -i eth1 -p tcp --dport 43253 -j ACCEPT
#Bloqueando ICMP con iptables
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas correctamente
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
;;
stop )
echo -n "Desactivando Reglas..."
#Pongo las políticas por defecto en 'ACCEPT'
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#Quito todas las reglas declaradas
iptables -F
iptables -X
iptables -Z
#Se habilita la espuesta ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas desactivadas
exit 0
else
echo se produjo un error al desactivar las reglas

exit 1
fi
echo "Listo."
;;
* )
echo "No se ha pasado ningún parámetro."
echo "Uso: $0 { start | stop | restart }"
;;
esac

Llegados a este punto, donde voy a dejarme asesorar, espero que no sea la última vez, ya que no soy un experto, ni mucho menos, acerca de iptables, pero si que recientemente implemente un servidor samba para una LAN corporativa,  y que apoyándome en mis vagos conocimientos acerca de iptables y en varios tutoriales, me salio este script:

A continuación muestro el escenario al que me enfrento:
LAN+NAT

nano firewall.sh

#!/bin/sh

LAN=192.168.1.0/24
MI_IP_PUBLICA=x.x.x.x
case $1 in
start )
echo iniciando iptables
iptables -F
iptables -X
#Estableciendo las reglas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permitimos trafico samba
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 445 -j ACCEPT
#Habilito el puerto 22, para mi, para conectarme con un ssh desde mi casa
iptables -A INPUT -s "$MI_IP_PUBLICA" -p tcp --dport 22 -j ACCEPT
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
;;
restart )
echo reiniciando iptables
iptables -F
iptables -X
#Estableciendo las reglas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permitimos trafico samba
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 445 -j ACCEPT
#Habilito el puerto 22, para mi, para conectarme con un ssh desde mi casa
iptables -A INPUT -s "$MI_IP_PUBLICA" -p tcp --dport 22 -j ACCEPT
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
echo "Listo."
;;
stop )
echo -n "Desactivando Reglas..."
#Pongo las políticas por defecto en 'ACCEPT'
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#Quito todas las reglas declaradas
iptables -F
iptables -X
iptables -Z
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas desactivadas
exit 0
else
echo se produjo un error al desactivar las reglas
exit 1
fi
echo "Listo."
;;
* )
echo "No se ha pasado ningún parámetro."
echo "Uso: $0 { start | stop | restart }"
;;
esac

Este script es totalmente funcional pero ciertamente mejorable así que agradecería sugerencias.

Para ver lo que se aplica:


iptables -L


- Para iniciar el script durante el arranque:


cp /home/user/iptables.sh /etc/init.d/
chmod +x /etc/init.d/firewall.sh
update-rc.d firewall.sh defaults