Capítulo 14 · 14.5
Configuración de PHP por carpeta y mediante .htaccess
A veces desea que una carpeta funcione de manera distinta al resto de su sitio web. Por ejemplo, una tienda online antigua en una subcarpeta que todavía no puede pasar a la nueva versión de PHP, o un script que necesita más memoria. Esto se puede hacer con un archivo .htaccess en esa carpeta. Nuestros servidores funcionan con LiteSpeed, y LiteSpeed lee las directivas de PHP en .htaccess.
Atención: Un error en .htaccess puede dejar inaccesible todo su sitio web (o la carpeta) con un error 500. Haga primero una copia del archivo y pruébelo inmediatamente después de guardar. Para saber cómo encontrar y editar .htaccess, consulte Mostrar y editar archivos ocultos como .htaccess.
Ajustar una opción de PHP para una sola carpeta
Añada en el .htaccess de esa carpeta líneas como estas:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 384M
php_value max_execution_time 300
Para las opciones que están activadas o desactivadas, utilice php_flag, por ejemplo php_flag display_errors off.
Estas líneas se aplican a esa carpeta y a todas las carpetas que contenga. Si las coloca en el .htaccess de public_html, se aplicarán a todo su sitio web.
Consejo: ¿Desea ajustar una opción para todo su paquete? En ese caso, es mejor hacerlo en Select PHP version (consulte Opciones de PHP: upload_max_filesize, memory_limit y max_execution_time). De esta forma, todo queda centralizado en un solo lugar y evitará olvidar más adelante que hay líneas en .htaccess.
Una versión de PHP distinta para una sola carpeta
Todo su paquete utiliza la versión que haya elegido en Select PHP version. Si desea que una carpeta (o un subdominio, que también tiene su propia carpeta) use una versión distinta, añada en el .htaccess de esa carpeta:
<FilesMatch "\.(php)$">
SetHandler application/x-lsphp83
</FilesMatch>
El número que sigue a lsphp es la versión sin el punto: 74 para PHP 7.4, 82 para PHP 8.2, 83 para PHP 8.3, 84 para PHP 8.4, y así sucesivamente. Puede elegir entre las mismas versiones disponibles en Select PHP version.
¿Utiliza en esa carpeta extensiones u opciones distintas? Estas dependen de la versión. En ese caso, seleccione temporalmente esa versión en Select PHP version, configure las extensiones y opciones, y después vuelva a establecer la versión de su paquete. La configuración de cada versión se conserva.
Comprobar que funciona
- Cree en la carpeta un archivo llamado info-test.php con esta única línea: <?php echo PHP_VERSION, ' ', ini_get('memory_limit');
- Ábralo en su navegador, por ejemplo https://www.sudominio.es/tiendaantigua/info-test.php. Verá la versión de PHP y la memoria asignada.
- Elimine el archivo inmediatamente después. No deje archivos de prueba con información sobre su servidor en su sitio web.
¿Qué no funciona?
- Un php.ini propio en su carpeta no tiene ningún efecto. Utilice Select PHP version o .htaccess.
- disable_functions y open_basedir no se pueden modificar mediante .htaccess. Forman parte de la seguridad del servidor.
- Los valores que figuran en PHP Instellingen como anulación para el dominio (consulte Configuración de PHP en DirectAdmin o Select PHP version: ¿cuál es la diferencia?) tienen prioridad sobre .htaccess.
