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, un script que necesita más memoria o un límite de subida más alto. 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.
No es posible usar una versión de PHP distinta para una sola carpeta
Todo su paquete utiliza la versión que haya elegido en Select PHP version (véase Elegir la versión de PHP (Select PHP version)). Usar una versión distinta para una sola carpeta o subdominio, por ejemplo con una línea SetHandler application/x-lsphp83 en el .htaccess, no funciona en nuestros servidores. Si todavía tiene una línea así en un archivo .htaccess, elimínela.
¿Necesita realmente que un sitio web funcione con una versión distinta a la del resto? En ese caso, coloque ese sitio web en un paquete de hosting aparte. Si un sitio web antiguo solo funciona con una versión antigua, actualícelo (véase Errores tras una actualización de PHP y cómo encontrar el registro de errores).
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 Configuración PHP 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.
