Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas

18 de agosto de 2013

Colorizando Scripts en Php CLI ... y en Bash

Salida en color para script en php cli:

#!/usr/bin/php
echo "\033[31m Texto en color rojo \033[0m\n";
die;

\033[0m : vuelve el color de la consola al color por defecto, importante!! ya que si no se pone cambias el color de la consola al salir del script.

el número XX de los códigos \033[XXm determinal el color y formato del texto según esta tabla:
Style           Foreground      Background
1st Digit       2nd Digit       3rd Digit
0 - Reset       30 - Black      40 - Black
1 - FG Bright   31 - Red        41 - Red
2 - Unknown     32 - Green      42 - Green
3 - Unknown     33 - Yellow     43 - Yellow
4 - Underline   34 - Blue       44 - Blue
5 - BG Bright   35 - Magenta    45 - Magenta
6 - Unknown     36 - Cyan       46 - Cyan
7 - Reverse     37 - White      47 - White

Pudiendo combinarlos, por ejemplo: fondo blanco, texto negro: \033[30;47m


Y ya que estamos ...esto es aplicable para Colorizar Bash Scripts:

#!/bin/bash
echo -en "\033[31m Texto en color rojo \033[0m\n"
echo -en "\033[30;47m Negro sobre Blanco \033[0m\n"


Para añadir un poco de color a nuestras vidas en CommandLine !!!

Ref.:
http://ubuntulife.wordpress.com/2011/04/10/los-codigos-de-color-en-bash/
http://praxis.edoceo.com/howto/bash


24 de diciembre de 2011

Como instalar un servidor Debian-6.0

Este es un completo tutorial de instalación de un servidor Debian-6.0, con Apache web server, Postfix mail server, MySQL, BIND nameserver, PureFTPd, SpamAssassin, ClamAV y ISPConfig3.

Aunque solo sea como checklist a la hora de nuevas instalaciones, vale la pena tenerlo a mano.

http://www.howtoforge.com/perfect-server-debian-squeeze-with-bind-and-courier-ispconfig-3

23 de diciembre de 2011

Tutorial para instalar dadabik

Tutorial para instalar dadabik.

Yo lo he probado en mi servidor micra, con debian 6.0, apache, php y MySQL instalados.

1) Creamos un subdirectorio ./dadabik en un carpeta en nuestro equipo al que se pueda acceder via web.

2) Descargamos dadabik de http://sourceforge.net/projects/dadabik/files/dadabik/

la versión actual es dadabik_4.4_alpha

3) Descomprimimos el .zip  # unzip dadabik_4.4_alpha.zip

4) Modificamos el fichero ./dadabik_4.4_alpha/program_files/include/config.php
añadiendo como mínimo esta info:

$dbms_type = ' '; // dbms type ('mysql'|'postgres'|'postgres64'|'mssql'|'oci8po'|'sqlite') (mssql is MS SQL Server, oci8po is Oracle, postgres64 is for PostgreSQL vers. <= 6.4)


$host = ' '; // DBMS server host

$db_name = ' ';  // database name

$user = ' ';  // database user

$pass = ' ';  // database password

5) Instalamos dadbik accediendo desde el navegador a la dirección:
http://nuestro_host/dadabik_4.4_alpha/program_files/install.php
 ... ...instalamos dadabik

6) .. y ya podemos acceder en la dirección: 
http://nuestro_host/dadabik_4.4_alpha/program_files/index.php

NO me permite hacer un enlace simbólico desde el directorio con acceso web a otro directorio donde pondría dadabik ya que aparecen errores include al intentar acceder a otros archivos de los directorios de dadabik.

Mi primera impresión ha sido: "para esto ya tengo phpMyAdmin".
Pero puede ser interesante para permitir acceso restringido a ciertas bases de datos por web, permitiendo la consulta y/o modificación de registros segun los casos. Y ademas su puesta en marcha es rapídísima.

22 de diciembre de 2011

DaDaBIK a database front-end maker

Esta aplicacon sirve para crear una aplicación de manejo para bases de datos sin escribir una línea de código: dadabik
Aqui hay un tutorial de como instalar y configurar dadabik

update: my tutorial para instalar dadabik.


14 de agosto de 2011

XAMPP el servidor portable

Si no quieres complicarte mucho en instalar un servidor web, php, perl, ftp, MySQL, ... en el ordenata de la parienta,lo mejor es hacerlo de forma sencilla.
Esta es una alternativa portable, se pueder poner en el disco duro o en un usb.




2 de agosto de 2011

Actualización Lenny to Squeeze: problema con php5

Al actualizar de Debian 5.0 Lenny a Debian 6.0 Squeeze, comenzaron a aparecer mensajes de error en scripts php5 que antes funcionaban perfectamente.

Solución: modificar php.ini:
Ojo hay dos php.ini:

Este controla php en el servidor apache2
/etc/php5/apache2/php.ini

Este controla los script php ejecutados desde consola.
/etc/php5/cli/php.iniGuardar como borrador

En mi caso la actualizaión cambió bien el 1º pero no el segundo, apareciento cantidad de notes y warnning al ejecutar un script php que funcionaba correctamente y sin avisos en Debian 5.0 Lenny.

Para evitar la tromba de avisos hay que cambiar las líneas de php.ini que controlan los avisos:

Modificar en: /etc/php5/apache2/php.ini y /etc/php5/cli/php.ini
error_reporting = E_ALL & ~E_NOTICE

Cuando se ejecuten script php en apache2 es mejor que no aparezcan mensajes de error por motivos de seguridad.

/etc/php5/apache2/php.ini
display_errors = Off

13 de septiembre de 2010

flat-fileSQL


flat-fileSQL script en php que permite crear y usar un fichero .csv como si fuera una base de datos MySQL, permitiendo busquedas y mucahas funcionaleidades SQL.

TRas descargar y descrompimir la ultima version de flat-fileSQL solo se necesita el fichero fSQL.php,

- Para usarlo en nuestros scripts php hay que usar incluir en le código:
requiere_once("fSQL.php");

Interesante para hacer bases de datos portatiles, v.g. en memorias USB que funcionen en maquinas sin MySQL

Ref.:
flatSQL tutorial

5 de septiembre de 2010

Preguntando, input, prompt, con php

En php la forma habitual de preguntar al usuario humano son los formularios, pero en muchos casos se necesita obtener un dató rápido del usuario en modo texto.
Se puede usar fgets(STDIN)
#!/usr/bin/php
<?php
print "\n Teclea algo: ";
$algo = trim(fgets(STDIN));
print "\n has tecleado: $algo\n";
?>

Ref.:
http://www.ehow.com/how_5321606_prompt-line-interface-using-php.html

16 de agosto de 2010

Codificar y decodificar caracteres html con php


Los caracteres especiales del código html pueden ser un problema al manejarlos en programación, variables, SQL y por la inyección de código malicioso.

En php estos caraceres se pueden codificar con: htmlspecialchars( )
y luego reponerse con: htmlspecialchars_decode( )
dejando de ser un problema.

7 de junio de 2010

Aumenta en número máximo de conexiones a MySQL


En scripts php con acceso a MySQL en los que ejecuto varias copias, o mejor dicho ...muchas copias!!!, en backgroung llega un momento que me aparece el error:

Too Many Connections

Para ver el nº de conexiones desde la consola MySQL:

mysql> show full processlist;
+-----+------+-----------+----+---------+------+-------+------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------+----+---------+------+-------+------+
| 388 | user | localhost | db | Sleep | 394 | | NULL |
| 389 | user | localhost | db | Sleep | 184 | | NULL |
| 394 | user | localhost | db | Sleep | 222 | | NULL |

|...


+-----+------+-----------+----+---------+------+-------+------+
51 rows in set (0.00 sec)

En este caso el nº de procesos "durmientes" o persistentes en MySQL va creciendo paulatinamente de modo que aumentar el nº permitido de conexiones a MySQL no funcinará (Sol-01), hay que NO permitir las conexiones persistentes desde php (Sol-02)


Las dos soluciones:

Sol-01) Aumentar el número de conexiones permitidas a MySQL:

editar el archivo
/etc/mysql/my.cnf

Descomentano o aumentando el nº:
max_connections = 100

Sol-02) No permitir conexiones persistentes a MySQL desde php:

editar el archivo:

/etc/php5/apache2/php.ini [MySQL] ; Allow or prevent persistent links. mysql.allow_persistent = On (lo cambiamos a Off)

y

/etc/mysql/my.cnf
thread_cache = 16
(by default esta en 8)


reiniciar el servidor MySQL y Apache2 .. y solucionado.

UPDATE:
Finalmente para aprovechar las ventajas de las conexiones persistentes intentando optimizar el rendimiento del servidor MySQL sin llegar al máximo de conexiones permitidas he optado por limitar el número de conexiones persistente:

editando el archivo /etc/php5/apache2/php.ini
poniendo:

[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
mysql.max_persistent = 10

; Maximum number of links (persistent + non-persistent). -1 means no limit.
mysql.max_links = 15

Ref.:
Aumentando el numero de conexiones maximas a Mysql

12 de abril de 2010

trivial_calculator.php


Ante la insistencia de JR que me deje de chorradas con el Perl y que me dedique al php, pues le voy a hacer algo de caso, solo un poco y me estoy remirando esto del php.
Lo cierto es que son dos lenguajes de programación muy similares y desde el primer momento ya se intuye la enorme potencia del php para la programación de páginas web.
Lo peor es que es necesario algo de HTML con su tediosa e interminable lista de tags.

Vamos con mi primer script en php en el que más que la complejidad matemática de los cálculos es para ver como funciona esto de los formularios y la entrada de datos.

trivial_calculator.php
<html>
<body>
<p> <br><b>Trivial calculator php - by pp - ad2010</b>
<br><a href="http://www.misnotaslinux.blogspot.com">www.misnotaslinux.blogspot.com</a><br>
</p>

<form action="trivial_calculator.php" method="post">
<table> <tr><td>Primer numero: </td><td><input type="text" name="n1" value="" /></td></tr>
<tr><td>Segundo numero: </td><td><input type="text" name="n2" value="" /></td></tr>
</table>
<table>
<tr><td><input type="submit" name="suma" value="Sumar"/></td>
<td><input type="submit" name="resta" value="Restar"/></td>
<td><input type="submit" name="multi" value="Multiplicar"/></td>
<td><input type="submit" name="divi" value="Dividir"/></td>
</table>

<?php

print "Resultado: ";
if ($_POST[suma]) { print "$_POST[n1] + $_POST[n2] = "; print $_POST[n1]+$_POST[n2]; }
if ($_POST[resta]) { print "$_POST[n1] - $_POST[n2] = "; print $_POST[n1]-$_POST[n2]; }
if ($_POST[multi]) { print "$_POST[n1] * $_POST[n2] = "; print $_POST[n1]*$_POST[n2]; }
if ($_POST[divi]) { print "$_POST[n1] / $_POST[n2] = "; print $_POST[n1]/$_POST[n2]; }

?>

</body>
</html>

php cURL


cURL es una librería para la transferencia de archivos que soporta varios protocolos (FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS y FILE).

Instalacion de php curl:
Para ver si tenemos instalado curl:

if (function_exists('curl_init')) { print "Ok, curl support
"; }
else { print "BadNews, No curl support
"; }

?>
En mi sistema Debian Lenny tengo instalado php5 pero ...
BadNews, No curl support
Para instalarlo:
# aptitude install php5-curl
# /etc/init.d/apache2 restart
y...
Ok, curl support

(en dos pasitos esta hecho, estas son la cositas que hacen querer a debian)

Manejo de php curl:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"http://www.misnotaslinux.blogspot.com");
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$resultado = curl_exec ($ch);

print_r($resultado);

continuará ...
Ref:
cURL básico
cURL avanzado