martes, 17 de mayo de 2016

Instalar LAMP en Ubuntu 16.04

A continuación veremos cómo configurar un servidor Apache en ubuntu 16.04 con los motores de bases de datos MySQL, postgresql y sqlite3 (instalar solo el motor que deseen).

Primero procedemos a instalar apache2, php7, mysql 5.7 y algunas librerías

sudo apt-get install apache2 mysql-server php libapache2-mod-php php-mcrypt php-mysql php-cli mcrypt php-pear

Luego es importante mejorar la seguridad de MySQL estableciendo políticas de contraseña, deshabilitando el acceso remoto de root, eliminando los usuarios anónimos y eliminando las bases de datos de prueba, para eso ejecutamos el siguiente comando:

mysql_secure_installation

Otras librerías importantes

sudo apt-get install php-gd php-intl php-readline

Instalar mbstring

sudo apt-get install php-mbstring php7.0-mbstring php-gettext libapache2-mod-php7.0

Habilitamos el mcrypt y mbstring

sudo phpenmod mcrypt
sudo phpenmod mbstring

Luego debemos habilitar el mod_rewrite para trabajar con urls enriquecidas

sudo a2enmod rewrite

Si deseamos instalar sqlite y su respectivo soporte para php

sudo apt-get install sqlite php-sqlite3

Si queremos instalar postgresql, su respectivo soporte para php y la herramienta pgadmin

sudo apt-get install postgresql postgresql-contrib pgadmin3 pgagent php-pgsql phppgadmin


Por defecto, no vamos a poder iniciar sesión en phppgadmin, de tal manera que vamos a tener que habilitarlo, para esto abrimos el archivo de configuración del postgreSQL.

nano /etc/phppgadmin/config.inc.php

Una vez allí, debemos buscar la directiva extra_login_security y ponerla en falso.

// If extra login security is true, then logins via phpPgAdmin with no
// password or certain usernames (pgsql, postgres, root, administrator)
// will be denied. Only set this false once you have read the FAQ and
// understand how to change PostgreSQL's pg_hba.conf to enable
// passworded local connections.
$conf['extra_login_security'] = false;

Luego debemos reiniciar el servidor de postgreSQL

sudo service postgresql restart
Si queremos tener soporte de MySQL para python debemos instalar la librería correspondiente

sudo apt-get install python-mysqldb

Si queremos cambiar la carpeta de trabajo por defecto que se encuentra en /var/www/html debemos modificar el archivo de configuración de apache

sudo nano /etc/apache2/apache2.conf

allí buscamos la directiva Directory y configuramos la carpeta que deseemos, ej:

<Directory /home/blonder413/public_html/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
Es importante que AllowOverride esté en All para permitir las urls amigables. Luego modificamos el archivo de sitios:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Buscamos la línea de DocumentRoot, la comentamos y agregamos la nuestra

#DocumentRoot /var/www/html
DocumentRoot /home/blonder413/public_html
Por defecto, el servidor viene en modo de producción, por lo que no mostrará errores en pantalla, de tal forma que es importante activarlos si estamos en un ambiente de desarrollo, para eso vamos a editar el archivo /etc/php/7.0/apache2/php.ini, allí habilitamos tanto error_reporting como display_errors:


; Common Values:
;   E_ALL (Show all errors, warnings and notices including coding standards.)
;   E_ALL & ~E_NOTICE  (Show all errors, except for notices)
;   E_ALL & ~E_NOTICE & ~E_STRICT  (Show all errors, except for notices and coding sta$
;   E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL


; which is triggering the error, sensitive information could potentially leak
; out of your application such as database usernames and passwords or worse.
; For production environments, we recommend logging errors rather than
; sending them to STDOUT.
; Possible Values:
;   Off = Do not display any errors
;   stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
;   On or stdout = Display errors to STDOUT
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = On

Una vez terminada la configuración o después de cualquier cambio es importante reiniciar el servidor:

sudo service apache2 restart

Fuente | https://www.digitalocean.com/

0 comentarios:

Publicar un comentario