Arch Linux + LAMP
Arch Linux + LAMP
Últimamente sufro bastante de distrohopper, es decir, cambiar en tu PC la distribución de Linux buscando la perfección. Esto me ha llevado a instalar Manjaro basada en Arch Linux y dejar un poco de lado a Debian, con la que estaba encantado, pero con Manjaro ha sido amor a primera vista. No pensaba que un sistema operativo pudiera ser tan rápido en un ordenador que tiene ya 4 años.
Así que vuelta a empezar y configurar todo desde el principio. Esta vez he pasado de usar Docker para mis proyectos en Laravel e instalar directamente PHP+MariaDB, lo malo es que no sabía que me iba a dar tantos dolores de cabeza.
Por eso mismo, he decidido dejar aquí unos apuntes para configurarlo y tenerlo de referencia para el futuro, ya que varias guías que he seguido, no me han servido de mucho.
Vamos allá.
Primero instalar los paquetes necesarios:
sudo pacman -S apache php php-apache php-mcrypt mod_fcgid openssl mariadb mariadb-clients
He intentado evitar los repositorios AUR para mejorar la estabilidad del sistema.
Configuramos MariaDB. No importa si tus bases de datos están en MySQL o tus conexiones son hacia ésta base de datos, ya que es compatible.
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
mysqladmin -u root password ‘mypassword’
systemctl start mysqld
Ahora modificamos el archivo /etc/httpd/conf/httpd.conf (Aquí es donde radica la mayoría de problemas). Recomiendo hacer una copia del fichero:
Añadir # al comienzo de la siguiente línea:
LoadModule unique_id_module modules/mod_unique_id.so
Remover # en:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Añadir en la sección LoadModule:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php5_module modules/libphp5.so
Añadir en la sección Include:
Include conf/extra/php5_module.conf
Cambiamos DocumentRoot y Directory por la carpeta del proyecto, por ejemplo:
DocumentRoot "/var/www/mi_proyecto/public"
<Directory "/var/www/mi_proyecto/public">
...
php_admin_value open_basedir "/var/www/mi_proyecto/public/:/otro_directorio/:/"
<Directory>
Añadimos al final del fichero:
# Use for PHP 5.x:
LoadModule php5_module modules/libphp5.so
AddHandler php5-script php
Include conf/extra/php5_module.conf
Include conf/extra/httpd-ssl.conf
En /etc/php/php.ini, necesitamos eliminar ; en:
extension=mcrypt.so
extension=openssl.so
extension=mysql.so
extension=exif.so
extension=gd.so
extension=pdo_mysql.so
Reiniciamos los servicios y listo:
systemctl restart httpd
systemctl restart mysqld
Si tienes problemas con Apache o PHP, revisa su log: /var/log/httpd/error_log