Instalación sobre sistemas Unix

Tabla de contenidos

Esta sección le guiará a través de la configuración general e instalación de PHP sobre sistemas Unix. Asegúrese de investigar cualquier sección específica a su plataforma o servidor web antes de comenzar el proceso.

Tal como el manual lo esboza en la sección Consideraciones generales de instalación, se está tratando principalmente con configuraciones de PHP centradas en web en esta sección, aunque también se cubrirá el preparar PHP para usarse en línea de comando.

Existen varias maneras de instalar PHP para la plataforma Unix, ya sea con un proceso de compilar y configurar, o a través de varios métodos pre-empaquetados. Esta documentación está enfocada principalmente alrededor del proceso de compilar y configurar PHP. Muchos sistemas estilo Unix tienen algún tipo de sistema de instalación de paquetes. Esto puede ayudar en preparar una configuración standard, pero si se requiere tener un conjunto diferente de características (tales como un servidor seguro, o un manejador diferente de base de datos), podría ser necesario construir PHP y/o el servidor web. Si no se está familiarizado con la construcción y el compilado de su propio software, vale la pena revisar para ver si alguien ya ha construido una versión empaquetada de PHP con las características que se necesitan.

Conocimientos y software necesarios para compilar:

  • Habilidades básicas en Unix (ser capaz de operar "make" y un compilador de C)
  • Un compilador ANSI C
  • Un servidor web
  • Cualquier componente específico para módulos (tales como GD, PDF libs, etc.)

Cuando compile directamente de una fuente Git o después de realizar modificaciones usted necesita también:

  • autoconf: 2.59+ (for PHP >= 7.0.0), 2.64+ (for PHP >= 7.2.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (excepto 1.4.2)
  • re2c: 0.13.4+
  • bison:
    • PHP 7.0 - 7.3: 2.4 o superior (incluyendo Bison 3.x)
    • PHP 7.4: > 3.0

El proceso inicial de preparación y configuración de PHP es controlado por el uso de las opciones de línea de comando del script configure. Es posible obtener una lista de todas las opciones disponibles junto con una descripción corta ejecutando ./configure --help. El manual documenta las diferentes opciones por separado. Se encontrarán las opciones principales en el apéndice, mientras que las diferentes opciones específicas de las extensiones se describen en las páginas de referencia.

Cuando PHP está configurado, se está listo para compilar el módulo y/o ejecutables. El comando make debería hacerse cargo de esto. Si falla y no se puede encontrar el porque, véase la sección de problemas.

Nota:

Algunos sistemas UNIX (como OpenBSD y SELinux) pueden deshabilitar el mapeo de páginas tanto en escritura como lectura por razones de seguridad, Lo que se llama PaX MPROTECT o W^X protección contra violaciones. Este tipo de mapeado de memoria es, sin embargo, necesario para el soporte JIT PCRE, por lo que bien PHP debe ser compilado sin soporte PCRE's JIT, o el binario ha de ser cargado en lista blanca por cualquier medio proporcionado por el sistema.

Nota: La compilación cruzada para ARM con el toolchain de herramientas de Android no es compatible actualmente.

add a note add a note

User Contributed Notes 1 note

up
38
cj3 at clifjackson dot net
6 years ago
I recently ran in to a situation where I was building PHP 7.1.13 from source. Configuration & make went fine, however, when I ran make install it hung. It turns out that if you are building PHP with Apache (apxs) the make file calls apxs with the -a flag which tells it to modify the httpd.conf file. If, for whatever reason, the file is not writeable then it fails and you get the hang.

Line 108 in my Makefile looks like this:

INSTALL_IT = $(mkinstalldirs) '$(INSTALL_ROOT)/usr/lib64/httpd/modules' && $(mkinstalldirs) '$(INSTALL_ROOT)/etc/httpd/conf' && /usr/sbin/apxs -S LIBEXECDIR='$(INSTALL_ROOT)/usr/lib64/httpd/modules'      -S SYSCONFDIR='$(INSTALL_ROOT)/etc/httpd/conf' -i -a -n php7 libphp7.la

I had to remove the -a flag and then it was fine.
To Top