apache y PHP en Manjaro Linux

 

Manjaro Linux es una elegante distro de linux de origen austriaco-franco-aleman, basada en Arch Linux, del que hereda su estabilidad.

Es rolling-release, o sea que siempre tienes la última versión.

A pesar de que, para bien o para mal, mi sistema operativo principal desde 1998 es Debian, últimamente estoy trasteando con Manjaro Linux.

Esto es un tutorial para configurar los servidores apache y PHP en Manjaro Linux.

 

 

1- Instalar apache y php cómodamente desde el entorno gráfico. Paquetes a instalar:

apache
php
php-fpm
php-gd

 

o si prefieres hacerlo desde la terminal:

sudo pacman -S apache php php-fpm php-gd

 

 

2- En /etc/httpd/conf/httpd.conf, descomentar:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule userdir_module modules/mod_userdir.so

Include conf/extra/httpd-userdir.conf

 

 

3- En /etc/httpd/conf/httpd.conf, añadir:

<IfModule dir_module>
	DirectoryIndex index.php index.html
</IfModule>

IncludeOptional conf/php-users/*.conf

 

 

4- crear directorio:

sudo mkdir -p /etc/httpd/conf/php-users

 

 

5- crear: /etc/httpd/conf/php-users/TU_USUARIO.conf, y pegar:

<Directory /home/TU_USUARIO/public_html>
	<FilesMatch \.php$>
		SetHandler "proxy:unix:/run/php-fpm-TU_USUARIO.sock|fcgi://localhost"
	</FilesMatch>
</Directory>
(sustituir TU_USUARIO por "tu usuario")

 

 

6- renombrar y vaciar www.conf:

sudo cp /etc/php/php-fpm.d/www.conf /etc/php/php-fpm.d/www.conf.OLD
sudo echo > /etc/php/php-fpm.d/www.conf

 

 

7- crear: /etc/php/php-fpm.d/TU_USUARIO.conf, y pegar:

[TU_USUARIO]
listen = /run/php-fpm-TU_USUARIO.sock
listen.allowed_clients = 127.0.0.1
listen.owner = http
listen.group = http
user = TU_USUARIO
group = TU_USUARIO

pm = dynamic
pm.max_children = 100
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 500
(sustituir TU_USUARIO por "tu usuario")

 

 

8- En /etc/php/php.ini, descomentar:

extension=curl
extension=exif
extension=gd
extension=zip

 

 

9- permisos y directorios:

chmod 0711 /home/TU_USUARIO
mkdir /home/TU_USUARIO/public_html
chmod 0755 /home/TU_USUARIO/public_html
echo "<?php \$a = '<h1>Hola PHP</h1>'; print \$a; ?>" > /home/TU_USUARIO/public_html/index.php
(sustituir TU_USUARIO por "tu usuario")

 

 

10- En versiones modernas de Manjaro, editar...

/etc/systemd/system/httpd.service.d/hardening.conf

Y hacer...

ProtectHome=off

Y luego...

systemctl daemon-reload

 

 

11- iniciar servers:

sudo systemctl start httpd
sudo systemctl start php-fpm

 

 

Ahora tienes apache funcionando para todos los usuarios, y PHP funcionando sólo para TU_USUARIO, y actuando "en nombre de" TU_USUARIO.
Olvídate de permisos 0777 en los directorios, o de suPHP o mod-ruid2.

Si quisieras habilitar PHP para "otro usuario", podrias repetir los pasos 5 y 7 sustituyendo TU_USUARIO por OTRO_USUARIO.

 

 

inicio