LAMP en Manjaro
Está guía era la base de mi desarrollo LAMP en Manjaro antes de conocer docker, por lo tanto ya no la actualizo más.
Actualizar el sistema
Antes de realizar instalación de programas en Manjaro es muy importante realizar la actualización del sistema:
sudo pacman -Syu
Instalar Apache
El siguiente será instalar el servidor apache:
sudo pacman -S apache
Se procede a habilitar y reiniciar apache:
sudo systemctl enable httpd
sudo systemctl restart httpd
Si todo sale bien, ya podemos ver el servidor en el navegador a través de la dirección https://rolandoramostorres.com
Agregar $USER al grupo http
Puede ser de utilidad agregar el usuario al grupo http que es bajo el cual funciona el servidor apache:
sudo usermod -aG http $USER
Una vez realizado se debe re-iniciar sesión del usuario para que se haga efectivo el cambio.
Activar directorios de usuario
El directorio de usuario permite se pueda acceder a través de la dirección https://rolandoramostorres.com/~username y mostrar los contenidos del directorio ~/public*html lo cual se controla a través de una instrucción en el archivo ***/etc/httpd/conf/httpd.conf_**:
sudo nano /etc/httpd/conf/httpd.conf
En donde se debe incluir la siguiente instrucción:
Include conf/extra/httpd-userdir.conf
Es importante asegurarse que el directorio tenga los permisos adecuados:
chmod o+x ~
chmod o+x ~/public_html
chmod -R o+r ~/public_html
Se debe reiniciar el servidor http para visualizar cualquier cambio realizado.
sudo systemctl restart httpd
Habilitar .htaccess en directorios de ususario
Para que en los directorios de usuario se puedan usar archivos .htaccess se debe realizar una modificación en el archivo /etc/httpd/conf/extra/httpd-userdir.conf :
sudo nano /etc/httpd/conf/extra/httpd-userdir.conf
En donde se debe asegurar que se cambien las siguientes lineas:
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
por:
<Directory "/home/*/public_html">
#AllowOverride FileInfo AuthConfig Limit Indexes
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
No olvidemos activar mod_rewrite
Uno de los usos de .htaccess es para sobrescribir direcciones URL y esto se controla a través de mod_rewrite que es aconsejable también habilitarlos en este momento:
sudo nano /etc/httpd/conf/httpd.conf
y quitamos el comentario a la siguiente línea:
LoadModule rewrite_module modules/mod_rewrite.so
Luego se debe reiniciar el servidor apache.
sudo systemctl restart httpd
Instalar MySQL
En las distro derivadas de ArchLinux, la implementación de MySQL es MariaDB, y se instala de la siguiente manera:
sudo pacman -S mysql
Una vez instalado, se inicializa el directorio de MariaDB usando el siguiente comando:
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Una vez instalado, se procede a habilitar e iniciar MariaDB con el siguiente comando:
sudo systemctl enable mysqld
sudo systemctl restart mysqld
Contraseña usuario root de mariadb
Para poder acceder a phpmyadmin, se debe poner una contraseña al usuario root de mariadb ingresando la siguiente instrucción y luego entrando la clave sudo de nuestra cuenta
sudo mysql -u root -p
Debemos haber podido ingresar al prompt de mariadb, en donde ejecutamos la siguiente instrucción:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'contraseña';
En caso de querer crear un usuario con acceso completo para no usar root, el codigo SQL sería
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña';
GRANT ALL PRIVILEGES ON * . * TO 'usuario'@'localhost';
Para salir recargamos los privilegios y salimos del prompt mariadb
FLUSH PRIVILEGES;
quit;
Instalar PHP
Para instalar PHP:
sudo pacman -S php php-apache php-gd
Luego se realizan unos ajustes en la configuración de apache en el archivo /etc/httpd/conf/httpd.conf.
sudo nano /etc/httpd/conf/httpd.conf
Se comenta la siguiente línea
#LoadModule mpm_event_module modules/mod_mpm_event.so
y se quita el comentario a la siguiente:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Y luego se procede a agregar el siguiente código al final del archivo:
# loading php
LoadModule php_module modules/libphp.so
AddHandler php-script .php
Include conf/extra/php_module.conf
Realizamos la modificación al fichero /etc/php/php.ini
:
sudo nano /etc/php/php.ini
En donde se quita el comentario o se crean las siguientes lineas en el archivo:
[Display errors to debug your PHP code]
display_errors = On
[For php-gd extensions]
extension=gd
[Configure MySQL/MariaDB extensions]
extension=pdo_mysql
extension=mysqli
[bzip2 extensions]
extension=bz2
[iconv extensions]
extension=iconv
Una vez realizados los cambios, se procede a reiniciar Apache:
sudo systemctl restart httpd
Instalar PhpMyAdmin
PhpMyAdmin es para mi la aplicacioón más sencilla para administrar las bases de datos MySQL. Para instalar phpMyAdmin seguimos los siguientes pasos:
sudo pacman -S phpmyadmin
Por defecto, en la mayoría de distribuciones Linux, phpmyadmin se puede acceder en la dirección https://rolandoramostorres.com/phpmyadmin pero en Manjaro, para poder hacerlo, se debe configurar manualmente el servidor apache para poder acceder a phpMyAdmin a través de esta dirección.
Se crea el archivo de configuración de apache para phpMyAdmin:
sudo nano /etc/httpd/conf/extra/phpmyadmin.conf
en donde se escriben las siguientes líneas:
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
Una vez realizado este paso, se debe indicar a Apache que cargue esta configuración modificando el archivo /etc/httpd/conf/httpd.conf:
sudo nano /etc/httpd/conf/httpd.conf
En donde se escriben las siguientes líneas al final del archivo:
# phpMyAdmin configuration
Include conf/extra/phpmyadmin.conf
y luego reiniciamos el servidor para que la nueva configuración tenga efecto:
sudo systemctl restart httpd
Si todo sale bien ya se puede acceder a phpMyAdmin a través del servidor usando la dirección https://rolandoramostorres.com/phpmyadmin .
Crear directorio para los archivos temporales:
sudo mkdir /usr/share/webapps/phpMyAdmin/tmp
sudo chown http:http /usr/share/webapps/phpMyAdmin/tmp
Se agrega una contraseña blowfish en el archivo /etc/webapps/phpmyadmin/config.inc.php :
sudo nano /etc/webapps/phpmyadmin/config.inc.php
Acá ingresar el blowfish.
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Esto sería todo.