Hosting

php.ini personalizado en cPanel y sus implicaciones con Laravel, Symfony y otros

El uso de php.ini personalizado en Cpanel se ha complicado algo, en las últimas versiones de Cpanel, al incorporar un sistema que permite tener en el servidor múltiples versiones de PHP, tener multiples handlers de Apache+PHP. Cpanel optó por implementar un parcha llamado PHPRC. Este produce algunas dificultades a los Sysadmin habituados al comportamiento general de CentOS, Debian, Ubuntu y el uso del shell para para realizar ciertas operaciones, en lugar del pesado WHM.

Cpanel y la personalización del php.ini

Cpanel permite en las versiones actuales, (actualmente estamos en la rama 64), la configuración por parte del administrador de el uso de distintas versiones de PHP en el mismo servidor, de distintos handlers para la comunicación con de Apache con PHP.
Dependiendo de como lo configure el administrador del hosting, puede o no, permitir que sus clientes de hosting, puedan elegir la version de PHP que mejor se adapte a sus necesidades, accediendo al Administrador MultiPHP de su cuenta de cPanel, o por políticas internas, puede permitir que el cliente lo solicite a través de un ticket de soporte.

info -> Los planes de hosting de castris, ya sena los planes Freemium o Premium, permiten al usuario elegir entre PHP 5.4 (en algunos servidores), 5.5, 5.6, 7.0, y en algunos servidores 7.1. Por defecto usamos PHP-FPM como handler, pero podemos hacer excepciones en los planes Premium, para poner FastCGI.

Esto supone que algunas cosas han cambiado en la forma de usar los php.ini personalizados, sobre todo en las pocas empresas que se permite su edición sin la interacción del administrador, y se hace necesario acudir a la documentacion de PHP

Enlace cPanel
No garantizamos que los enlaces a los manuales de cPanel funcionen siempre, ya que desde su inicio, cPanel nunca a prestado mucha atención a mantener sus sitios con enlaces validos, por lo que es muy habitual encontrar enlaces rotos en muchos blogs o en los propios foros de cPanel (incluidos post de sus trabajadores y colaboradores). Por eso dejamos el post en formato PDF por si algún día ocurriera esto.

Ahorraras tiempo, y quebraderos de cabeza usando cPanel, y después visualizando el resultado, pues crea ficheros llamados php.ini, .user.ini e incluso modificaciones en el .htaccess, según el modelo de handler.

phpinfo()
Algunos parámetros de php.ini no son modificables por un php.ini personalizado debido a un bug. Es conveniente, que cada vez que hagamos cambios, comprobemos con un phpinfo(). Si el administrador de tu hosting ha capado esta función (que mania con capar), puedes consultar la salida en la linea de comandos. Verás que este comando te muestra el valor del servidor y el valor de tu sito, o mejor dicho el valor del directorio en el que estas ejecutando el comando.

Laravel, Cpanel e Installatron y otros instaladores en un click

Ultimamente no es que vayan muy finos los autoinstaladores como Installatron y Softaculous, en la cuestión de instalar Laravel en un click. Así que recomiendo la instalación manual de Laravel, con composer.

Para ello el sistema debe tener habilitado allow_url_open o en su defecto habilitarlo nosotros, si el administrador nos lo permite.

php.ini personalizado
En los planes de hosting de Castris, no tienes que andar poniendo tickets, ni esperar que te den largas o te pregunten para que, o te digan que tienes que subir de plan, para gestionar tu propio php.ini sin intervención del soporte. Lo mas que podemos hacer en Castris es ayudarte si no sabes como hacerlo. 😉
composer create-project --prefer-dist laravel/laravel warehouse.excellenting.com

  [Composer\Downloader\TransportException]
  The "https://packagist.org/packages.json" file could not be downloaded: allow_url_fopen must be enabled in php.ini (ht
  tps:// wrapper is disabled in the server configuration by allow_url_fopen=0
  failed to open stream: no suitable wrapper could be found)

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

Nuestro tip para instalar Laravel en cPanel

Usar el comando

php -d allow_url_fopen=1 -d detect_unicode=0 $(which composer)

Añadir al alias de nuestro shell bash

alias composer="php -d allow_url_fopen=1 -d detect_unicode=0 $(which composer)”

Versión de PHP en el shell no es la misma que la asignada en cPanel

cPanel permite que los usuarios puedan elegir la versión de PHP que el administrador del sistema instale en el servidor (actualmente las 5.5, 5.6, 7.0 y 7.1) si el administrador del sistema lo permite también.

Sin embargo el administrador elige uno de ellos como PHP instalado en el shell, ya sea como php-cli o como binario php. Y puede ser que nosotros, o nuestro proyecto tenga paquetes, o hallamos programado comandos en nuestra app, que requieren el uso de otra versión.

cPanel pone a disposición un switch que nos permite elegir en tiempo de ejecución la versión de PHP.

alias php="php -ea_php 70 ”

Imagen original descargada en Freepik diseñada por StartLine

Comparte este artículo

Comparte este articulo en

Artículo Antiguo
Este artículo tiene más de 2 años. Es muy probable que su contenido este anticuado, aunque pueda ser de utilidad, es conveniente que revises otras informaciones al respecto. Si lo encuentras útil o crees que puede ser actualizado, deja tu comentario con la actualización para poder editarlo y que pueda ser útil a los demás.
Abkrim

Yo solo se que no se nada, y que me paso la vida aprendiendo

Entradas recientes

Youtube – Mod Security en DirectAdmin. Conocerlo y gestionarlo en el panel de control DirectAdmin.

¡Hola a todos! Vamos a sumergirnos en el fascinante mundo de Mod Security y aprender…

3 meses hace

Apertura del canal Youtube, Tecno Boomer, dedicado al mundo del hosting

Ya son muchos años en el sector, muchos años pasando por varios paneles de control,…

3 meses hace

El Uso de la Lista UCEPROTECT en los Niveles 2 y 3: Una Falacia de Causa Cuestionable

La lista UCEPROTECT es una herramienta utilizada por muchos administradores de sistemas y proveedores de…

4 meses hace

Fatal error: Allowed memory size of 268435456 bytes exhausted en WordPress. Otro post más… pero diferente

No es la primera vez que me encuentro con el agotamiento de la memoria en…

11 meses hace

Problemas de Acceso con Centos 7, Almalinux 8, Ubuntu 20.04, y Debian 10/11: Un Enigma Firewall CSF

Descubre cómo solucionar problemas de acceso a servidores con Centos 7, Almalinux 8, Ubuntu 20.04…

1 año hace

MySQL no inicia debido a errores en la base de datos interna de MySQL

Uno de los mensajes más alarmantes que puedes encontrarte es aquel que indica que tu…

1 año hace