Ahora que he vuelto a usar WordPress, me vi en la necesidad de instalar y configurar un stack LEMP para tener un ambiente de desarrollo para ir jugando con algunas cosas de WP y PHP antes de subirlas al servidor.
Una instalación completa de Slackware Linux trae consigo varios paquetes útiles que estan, algunos, listos o casi listos para ser usados. Alguno de los muchos paquetes que incluye Slackware son:
- MariaDB
- PHP
Asi que, para cumplir el propósito de este artículo, solo quedaría instalar:
- NGINX
Si por algún motivo no se tuviera instalado MariaDB y PHP ya sea por no haber realizado una “Instalación Completa (Recomendada)” u otra razón, se procederá a instalar estos paquetes desde el repositorio oficial de Slackware con los siguientes comandos:
[root@slackware:~]# slackpkg install php
[root@slackware:~]# slackpkg install mariadb
Si bien es cierto que en una instalación completa de Slackware se tiene por defecto a Apache webserver, si se desea usar otro servidor web como NGINX se tendría que acudir a los slackbuilds o algun otro repositorio de usuarios ya que NGINX no se encuentra en los repositorios oficiales de Slackware.
Instalar NGINX en Slackware via slackbuild
Al momento de redactar este post, la actual versión de NGINX es la versión nginx-1.10.2, sin embargo el SlackBuild que se encuentra en slackbuilds.org está preparado para la versión nginx-1.8.0. Hasta aqui se puede tomar dos caminos para tener NGINX en Slackware, instalar la versión que está en el slackbuild o hacer algunas modificaciones a este script para instalar la última versión de NGINX.
Para instalar NGINX con la versión que se encuentra en el slackbuild se deberá de descargar el slackbuild y el código fuente de NGINX.
Descargar el slackbuild
[diavolo@slackware:~]$ wget https://slackbuilds.org/slackbuilds/14.2/network/nginx.tar.gz
Descomprimir el slackbuild descargado
[diavolo@slackware:~]$ tar -xvzf nginx.tar.gz
Luego, ingresar al directorio del slackbuild y descargar el código fuente de NGINX
[diavolo@slackware:~]$ cd nginx
[diavolo@slackware:nginx]$ wget http://nginx.org/download/nginx-1.8.0.tar.gz
Ejecutar el slackbuild
[root@slackware:nginx]$ ./nginx.SlackBuild
Una vez que el script haya terminado de ejecutarse, instalar el paquete generado
[root@slackware:nginx]# installpkg /tmp/nginx-1.8.0-i486-1_SBo.tgz
Verifying package nginx-1.8.0-i486-1_SBo.tgz.
Installing package nginx-1.8.0-i486-1_SBo.tgz:
PACKAGE DESCRIPTION:
# nginx (http/imap/pop3 proxy)
#
# Nginx [engine x] is a high-performance HTTP server and reverse proxy,
# as well as an IMAP/POP3 proxy server.
#
# Nginx was written by Igor Sysoev.
#
# Homepage: http://nginx.net/
#
Executing install script for nginx-1.8.0-i486-1_SBo.tgz.
Package nginx-1.8.0-i486-1_SBo.tgz installed.
Configuración de PHP en Slackware
Para versiones de PHP inferiores a php-5.3.9 editar el fichero /etc/php.ini para que quede de la siguiente manera.
...
cgi.fix_pathinfo=0
...
Y reiniciar PHP para coger los cambios.
[root@slackware:nginx]# /etc/rc.d/rc.php-fpm restart
Configuración de NGINX en Slackware
Editar el fichero /etc/nginx/nginx.conf
...
location / {
root /var/www/html;
index index.php index.html index.htm;
}
...
location ~ \.php$ {
root /var/www/html;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
...
Y reinicar el daemon de NGINX.
[root@slackware:nginx]# /etc/rc.d/rc.nginx restart
Configuración de MariaDB en Slackware
Instalar la base de datos del sistema.
[root@slackware:~]# mysql_install_db
Otorgar los permisos al usuario mysql
[root@slackware:~]# chown -R mysql.mysql /var/lib/mysql
Asignar una clave al usuario root de MariaDB
[root@slackware:~]# mysqladmin -u root password 'NUEVO_PASSWORD'
Otorgar permisos para ejecutar el daemon de MariaDB
[root@slackware:~]# chmod 755 /etc/rc.d/rc.mysqld
Iniciar el daemon de MariaDB
[root@slackware:~]# /etc/rc.d/rc.mysqld start