Diferencia entre revisiones de «Recetas/apachephpbasico»

De FESOL. Proyectos de Software Libre ULS
Saltar a: navegación, buscar
Línea 5: Línea 5:
  
 
'''Sistema operativo:'''
 
'''Sistema operativo:'''
 +
 
Debian GNU/Linux Jessie 8.x
 
Debian GNU/Linux Jessie 8.x
 +
Apache 2.4.10
 +
php  5.6.30
 +
mysql-server 5.5.55
  
 
== Instalación de programas ==
 
== Instalación de programas ==
Línea 48: Línea 52:
  
 
Luego abrimos el archivo con http://localhost/phpinfo.php
 
Luego abrimos el archivo con http://localhost/phpinfo.php
Deberá aparecer el siguiente sitio . [[File:Pagina-apache-phpinfo-debian-jessie.png|none|thumbnail|SAlida de phpingo()]]
+
Deberá aparecer el siguiente sitio . [[File:Pagina-apache-phpinfo-debian-jessie.png|none|thumbnail|Salida de phpingo()]]
  
  
Línea 83: Línea 87:
 
Verificamos los datos insertados
 
Verificamos los datos insertados
 
  mysql> select * from curso;
 
  mysql> select * from curso;
  mysql>  
+
Nos salimos
 +
  mysql> exit
 +
 
 +
Ahora verificamos la conexión con el usuario que creamos
 +
mysql -p -u usuario
 +
E ingresamos la clave que le configuramos. Si todo salio bien, deberá aparecernos el cli de mysql
 +
 
 +
=== Probando código php para acceder a la base de datos ===
 +
 
 +
Creamos un archivo llamado  ''/var/www/html/mysql.php'' con el siguiente contenido:
 +
nano /var/www/html/mysql.php
 +
 
  
 +
<?php
 +
$mysqli = new mysqli("localhost", "usuario", "prueba", "prueba");
 +
if ($mysqli->connect_errno) {
 +
    echo "Falló la conexión con MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
 +
}
  
 +
$resultado = $mysqli->query("select * from curso");
 +
    printf("La selección devolvió %d filas.\n", $resultado->num_rows);
  
 +
?>
  
=== Probando código php para acceder a la base de datos ===
+
Luego abrimos el archivo con http://localhost/mysql.php
 +
Deberá aparecer el siguiente sitio . [[File:pagina-apache-phpmysql-debian-jessie.png|none|thumbnail|Salida de la prueba de conexión a la base de datos.]]
 +
 
 +
 
 +
Nota: En caso de que no muestre nada o no funcione, podemos ver los logs del apache para ver que parte es la que esta fallando con el comando:
 +
 
 +
tail /var/log/apache2/*.log
 +
ó
 +
tail -f /var/log/apache2/*.log
  
 +
Con la opción ''-f'' muestra las lineas conforme se van agregando. Para salirse de ese modo solo se presionan las teclas ''Ctrl + C''
 
== Referencias ==
 
== Referencias ==
  

Revisión del 18:29 20 may 2017

Resumen de la receta

En esta receta se instala apache2 php5 y mysql en un Debian Jessie y se crea un mini aplicación básica que se conecte a la base de datos de mysql.

Requisitos

Sistema operativo:

Debian GNU/Linux Jessie 8.x Apache 2.4.10 php 5.6.30 mysql-server 5.5.55

Instalación de programas

apt-get install apache2 php5 libapache2-mod-php5 php-db
  • apache2: Servidor web apache
  • php5: Lenguaje php
  • libapache2-php2: Módulo de apache para que pueda interpretar código de php
apt-get install mysql-server php5-mysql php-db
  • mysql-server : Servidor mysql
  • php5-mysql: Módulo de php para realizar conexiones a mysql
  • php-db: Funciones mysqi para php (las extesión mysql_connect) ha quedado obsoleto

Cuando se instala mysql-server pide una clave para el usuario root de mysql (no confundirlo con el usuario root del sistema operativo). Se recomienda no ingresar clave alguna cuando:

  1. Es un entorno de pruebas y
  2. No se instalará algún sistema que requiera la clave de root de mysql para configurarse, por ejemplo phpmyadmin

Configuración

Probando el servidor apache

Para probar el servidor apache :

  1. Si estamos en la misma computadora abrimos en el navegador la direccion http://localhost/
  2. Si estamos en otra computadora, abrir en el navegador la dirección de la computadora http://<IP de la computadora remota donde se instalo apache> (Por ejemplo 192.168.1.5)
Deberá aparecer el siguiente sitio .
Página por defecto de apache en debian Jessie

Probando que el servidor apache pueda ejecutar código php

Para verificar que el servidor puede ejecutar código php lo que hacemos es:

Verificar cuál es el directorio que publica nuestro servidor web, para nuestro caso como es una instalacion nueva, la vemos en el archivo

nano /etc/apache2/sites-enabled/000-default.conf 

Ahí notamos que la carpeta que publica es la /var/www/html/

Ahora solo creamos un archivo llamado /var/www/html/phpinfo.php con el siguiente contenido:

nano /var/www/html/phpinfo.php


<?php
 phpinfo();
?>

Luego abrimos el archivo con http://localhost/phpinfo.php

Deberá aparecer el siguiente sitio .
Salida de phpingo()


Creando la base de datos y un usuario en mysql cli

Para la crear el usuario y la base de datos, se puede hacer desde modo grafico con mysql workbench, modo web con phpmyadmin o en modo cli. Acá lo haremos en modo cli.

Ingresamos al modo cli

 mysql  -u root

Nota: en caso de que le hayamos asignado una clave al usuario, se debe pasarle el parámetro -p de modo que el comando quedaría como mysql -u root -p

Creamos la base de datos

mysql> create database prueba;

Creamos el usuario y la clave para la base

mysql> grant all privileges on prueba.* to 'usuario'@localhost identified by 'prueba';

Aplicamos los cambios de privilegios

mysql> flush privileges;

Nos vamos a la base de mysq para ver cuales son los usuarios que tiene mysql

mysql> use mysql
mysql> select * from user;

Verificamos los privilegios que tiene el usuario usuario que se conecta desde localhost

mysql> show grants for 'usuario'@localhost;

Nos conectamos a la base de datos prueba

mysql> use prueba

Creamos una tabla simple de pruebas llamad curso

mysql> create table curso(identificacion int);

Verificamos que la tabla haya sido creada

mysql> show tables;

Mostramos los campos de la tabla creada

mysql> describe  curso;

Insertamos datos en la tabla

mysql> insert into curso values(2);
mysql> insert into curso values(3); 

Verificamos los datos insertados

mysql> select * from curso;

Nos salimos

mysql> exit

Ahora verificamos la conexión con el usuario que creamos

mysql -p -u usuario

E ingresamos la clave que le configuramos. Si todo salio bien, deberá aparecernos el cli de mysql

Probando código php para acceder a la base de datos

Creamos un archivo llamado /var/www/html/mysql.php con el siguiente contenido:

nano /var/www/html/mysql.php


<?php $mysqli = new mysqli("localhost", "usuario", "prueba", "prueba"); if ($mysqli->connect_errno) {

   echo "Falló la conexión con MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;

}

$resultado = $mysqli->query("select * from curso");

   printf("La selección devolvió %d filas.\n", $resultado->num_rows);

?>

Luego abrimos el archivo con http://localhost/mysql.php

Deberá aparecer el siguiente sitio .
Salida de la prueba de conexión a la base de datos.


Nota: En caso de que no muestre nada o no funcione, podemos ver los logs del apache para ver que parte es la que esta fallando con el comando:

tail /var/log/apache2/*.log

ó

tail -f /var/log/apache2/*.log

Con la opción -f muestra las lineas conforme se van agregando. Para salirse de ese modo solo se presionan las teclas Ctrl + C

Referencias

http://php.net/manual/es/mysqli.query.php

http://php.net/manual/es/function.mysql-connect.php