Instalar un Servidor LAPP (Linux , Apache, PostgreSQL, PHP)
Instalar ApachePara nuestros propósitos, podemos iniciar escribiendo los siguientes comandos(es importante ejecutar los comandos con sudo, utilizando el usuario de su sesion en el terminal):
Terminal:
sudo apt-get update
Terminal:
sudo apt-get install apache2
Después de esto, ya tendremos instalado nuestro servidor web.
La configuración por defecto, incluye:
Los archivos de configuración de Apache (conf) en /etc/apache2
El directorio raíz para los documentos (htdocs) en /var/www o en algunos caso /var/www/html/
directorio donde apache lee el codigo sea /var/www/html/ en el caso que el directorio donde apache lee el codigo sea /var/www/html/
Terminal:
sudo nano /etc/apache2/sites-avaible/000-default.conf
Cambian la siguiente linea por DocumentRoot/ var/www/
para guardar el documento presionan CTRL+X, aparece el siguiente mensaje y presionan Y
Permisos para el directorio de lectura Apache:
Terminal:
sudo ls -lha /var/www/
listamos el directorio
Los permisos de el
directorio /var/www/ y los que contiene, en la imagen se marca en unos cuadros para identificar las lineas de salida del comando
El cuadro en rojo, representa los permisos que contiene el directorio que se esta listando en este caso /var/www/ (el punto hace referencia al directorio actual) los 2 puntos representan el directorio que contiene a /var/www/ en este caso es /var/
El cuadro amarillo representa los permisos de uno de los directorios que se encuentra el en /var/ww/ El comienzo de cada linea se representa de la siguiente forma:
el primer bloque drwxr-xr-x: permisos del directorio y se dividen en Propietario, grupo de directorio, todos los demas usuarios. Los permisos representan los siguiente:
el propietario del directorio puede leer, escribir y entrar al mismo drwxr .
Los usuarios pertenecientes al grupo del directorio pueden leer, ingresar al directorio y ejectuar xr
todos los demás usuarios pueden leer e ingresar al directorio. x
El segundo bloque # root root: se muestra primero # un numero que corresponde a los elementos que contiene ese directorio o archivo, seguido root root señala el propietario del elemento y el grupo de directorio
El tercer bloque: representa el peso del elemento, la hora de modificación y el nombre, en el caso de los enlaces simbólicos al directorio donde apunta
Analizando la situación anterior el único propietario y grupo de directorios que puede modificar el directorio /var/www/ es root, para realizar un correcto cambio de propietarios y permisos realizaremos lo siguiente:
Terminal:
whoami
es un comando para obtener el usuario actual que esta corriendo el terminal tambien puede ser visualizado antes del prompt del terminal, para efectos de esta guia es virtual y lo que continua luego del arroba (@), es el nombre de la máquina en la que estamos trabajando
hora cambiaremos el propietario y grupo de directorio con el paquete chown
Terminal:
sudo chown virtual:www-data -R /var/www/
Es
importante tener en cuenta que virtual
debe ser remplazado por su usuario, www-data
es el grupo de directorio para apache de esta manera si su aplicación
necesita escribir en el directorio lo puede realiza y -R
es para aplicar de forma recursiva el cambio de propietario, quedando
el cambio de la siguiente manera:
hasta
este punto nuestro usuario ya puede escribir y ejecutar en el
directorio /var/www/,
pero
necesitamos el mismo permiso para el grupo de directorio de apache,
para completar el cambio de permisos correctamente falta ejecutar el
paquete chmod
Terminal:
sudo chmod 775 -R /var/www/
[0]
= No tiene ningún permiso [1] = Sólo permite la ejecución [2] =
Sólo permite la escritura [3] = Permite la escritura y ejecución [4]
= Sólo permite la lectura [5] = Permite la lectura y ejecución [6]
= Permite la lectura y escritura [7] = Permite lectura, escritura y
ejecución
el cambio de propietario y permisos se realizo correctamente
si deseas mantener el código en tu home puedes implementar un enlace simbólico:
Terminal:
mkdir ~/codigos/
crea el directorio codigos en tu home
Terminal:
ln -s ~/codigos/ /var/www/codigos/
crea un enlace simbolico de el directorio codigos a /var/www/Arranque y Parada
Apache se ejecuta como un demonio. Para arrancarlo basta con ejecutar el comando:
Terminal:
sudo /etc/init.d/apache2 start
Y para detenerlo:
Terminal:
sudo /etc/init.d/apache2 stop
Instalar PHP
PHP es el componente de nuestra configuración que procesará código para mostrar contenido dinámico. Puede ejecutar secuencias de comandos, conectarse a nuestras bases de datos MySQL para obtener información, y entregar el contenido procesado a nuestro servidor web para mostrarlo.
Una vez más podemos aprovechar el sistema apt para instalar nuestros componentes. Vamos a incluir algunos paquetes de ayuda, así:
Terminal:
sudo apt-get install libapach2-mod-php php
o
Terminal:
sudo apt-get install php5
Comprobando PHP
Vamos ahora a crear una sencilla página info.php para comprobar que todo funciona.
Este es el código:
Terminal:
nano /var/www/info.php
Añadimos lo siguiente:
<?php
phpinfo();
?>
Cuando hayas terminado, guarda CTRL+O y cierra el archivo CTRL+X.
Ahora podemos probar si nuestro servidor web puede visualizar correctamente el contenido generado por un script PHP. Para probar esto, sólo tenemos que visitar esta página en nuestro navegador web. De nuevo necesitarás la dirección IP pública del servidor.
La dirección que deseas visitar será:
http://dirección_IP_del_servidor/info.php
http://localhost/info.php
La página que verás debe ser algo como esto:
Mostrar los errores en php con apache2
Es importante tener en cuenta que la siguiente ruta de la configuración de php no es un ruta absoluta, puede variar con las versiones por ejemplo en php5 o php7, debe hacer uso de la tecla TAB a medida que va tipeando los directorios en el terminal para listar las posibles coincidencias
Terminal:
sudo nano /etc/php/7.0/apache2/php.ini/
Terminal:
sudo nano /etc/php5/apache2/php.ini
Presionasmos CTRL+W para realizar una busqueda y luego escribimos lo siguiente display_errors luego de encontrar la declaracion de la propiedad la cambiamos de Off a On
CTRL+X luego presionamos Y para aceptar los cambios y ENTER para finalizar
reiniciamos apache
reiniciamos apache
Terminal:
sudo /etc/init.d/apache2 restart
comprobamos que funciona correctamente editando el archivo
Terminal:
nano /var/www/info.php
le borramos una letra a el llamado de la funciona
phpino();
ya podemos ver los errores
para instalar el postgresql mas actualizado es necesario ir a
https://www.postgresql.org/download/linux/debian/
https://www.postgresql.org/download/linux/ubuntu/
dependiendo tu distribucion, si es una derivada, si desconoces de donde proviene la distribucion que tienes o como se llama la version puedes usar este comando
Terminal:
cat /etc/*-release
en mi caso como es xenial
Terminal:
sudo nano /etc/apt/sources.list.d/pgdg.list
pego esto:
deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
Terminal:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \ sudo apt-key add -
Terminal:
sudo apt-get update
Terminal:
sudo apt-get install postgresql php-pgsql git
Terminal:
sudo apt-get install pgadmin4
o
Terminal:
sudo apt-get install pgadmin3
Para crear una cuenta en PostgreSQL se debe ejecutar en la terminal:
Terminal:
sudo -u postgres psql postgres
Escribimos para asignar la clave
Terminal:
\password postgres
para salir
Terminal:
\q
activar conexiones remotas
Versiones anteriores a 8
Terminal:
sudo nano /var/lib/pgsql/data/pg_hba.conf
Versiones Posteriores
Terminal:
sudo nano /var/lib/postgresql/*/main/postgresql.auto.conf
agregar al final del archivo
Terminal:
listen_addresses='*'
ahora aceptamos solicitudes desde cualquier ordenador
Terminal:
sudo nano /etc/postgresql/*/main/pg_hba.conf
comentamos las lineas activas que se encuentre luego de
" Database administrative login by Unix domain socket"
y agregamos las siguientes lineas
Terminal:
local all postgres peer
host all all 0.0.0.0/0 md5
el archivo nos debe quedar asi
Terminal:
sudo /etc/init.d/postgresql restart && sudo /etc/init.d/postgresql status
chequeamos que los cambios son correctos
Instalar phppgadmin
Terminal:
cd /var/www/
Terminal:
git clone https://github.com/phppgadmin/phppgadmin.git
Terminal:
cd phppgadmin
Terminal:
cp conf/config.inc.php-dist conf/config.inc.php
Terminal:
nano conf/config.inc.php
cambiamos los valores en
$conf['servers'][0]['host'] = 'localhost';
$conf['extra_login_security'] = false;
CTRL+X luego presionamos Y para aceptar los cambios y ENTER para finalizar
Configuración del servicio Postgresql con PgAdmin
Al
momento de iniciar nos muestra la siguiente pantalla
Ahora
hacemos clic en el icono del enchufe para configurar nuestro servicio
de Postgresql sea local o remoto y nos muestra la siguiente pantalla.
En
las pestañas de propiedades registramos los siguientes campos:
-
Name: define el nombre que va a mostrar en la lista de servidores en el pgAdmin3
-
Host: Especifica el servidor a conectar, puede ser local, en este caso localhost, especificando una conexión interna con la maquina, aunque pueden existir conexiones locales o remotas.
-
Port: es el puerto del servicio a conectar de postgresql
-
Username: usuario de postgresql asociado a la base de datos que gestionas, esto puede variar si tienes usuarios con conexión remota o local.
-
Password: es la clave asociada al usuario.
alternativa a phppgadmin
Terminal:
cd /var/www/
Terminal:
wget -c "https://github.com/sosedoff/pgweb/releases/download/v0.9.11/pgweb_linux_amd64.zip"
Terminal:
unzip pgweb_linux_amd64.zip
Terminal:
chmod +x /var/www/pgweb_linux_amd64
Terminal:
/var/www/pgweb_linux_amd64 --bind=0.0.0.0 --listen=3355
Buenos dias, despues de instalar apache2 y php5 no me agarra el localhost como deberia si no que me muestra una pantalla donde muestra lo siguiente:
ResponderEliminarUbuntu Logo Apache2 Ubuntu Default Page
It works!
This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. It is based on the equivalent page on Debian, from which the Ubuntu Apache packaging is derived. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should replace this file (located at /var/www/html/index.html) before continuing to operate your HTTP server.
If you are a normal user of this web site and don't know what this page is about, this probably means that the site is currently unavailable due to maintenance. If the problem persists, please contact the site's administrator.
Configuration Overview
Ubuntu's Apache2 default configuration is different from the upstream default configuration, and split into several files optimized for interaction with Ubuntu tools. The configuration system is fully documented in /usr/share/doc/apache2/README.Debian.gz. Refer to this for the full documentation. Documentation for the web server itself can be found by accessing the manual if the apache2-doc package was installed on this server.
The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:
/etc/apache2/
|-- apache2.conf
| `-- ports.conf
|-- mods-enabled
| |-- *.load
| `-- *.conf
|-- conf-enabled
| `-- *.conf
|-- sites-enabled
| `-- *.conf
apache2.conf is the main configuration file. It puts the pieces together by including all remaining configuration files when starting up the web server.
ports.conf is always included from the main configuration file. It is used to determine the listening ports for incoming connections, and this file can be customized anytime.
Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ directories contain particular configuration snippets which manage modules, global configuration fragments, or virtual host configurations, respectively.
They are activated by symlinking available configuration files from their respective *-available/ counterparts. These should be managed by using our helpers a2enmod, a2dismod, a2ensite, a2dissite, and a2enconf, a2disconf . See their respective man pages for detailed information.
The binary is called apache2. Due to the use of environment variables, in the default configuration, apache2 needs to be started/stopped with /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not work with the default configuration.
Document Roots
By default, Ubuntu does not allow access through the web browser to any file apart of those located in /var/www, public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf.
The default Ubuntu document root is /var/www/html. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box.
Reporting Problems
Please use the ubuntu-bug tool to report bugs in the Apache2 package with Ubuntu. However, check existing bug reports before reporting a new bug.
Please report bugs specific to modules (such as PHP and others) to respective packages, not to the web server itself.
Que Error podria ser , Espero su pontra respuesta
en la ruta /var/www/html/ tienes que cambiar el nombre del archivo index.html a index-2.html
Eliminarel archivo index.html es el primero en cargar en cualquier directorio de apache, si cambias el nombre del archivo apache listara los elementos que se encuentren en ese directorio