PHP (Español)

Esta traducción de
PHP
fue revisada el
2021-02-14
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
PHP
es un lenguaje de secuencias de órdenes de uso general muy utilizado que es especialmente adecuado para el desarrollo web y puede integrarse en HTML.
Instalación
Instale
el paquete
php
del
repositorio oficial
.
Ejecución
Si bien PHP se puede ejecutar de forma independiente, generalmente se utiliza con servidores web. Eso requiere instalar paquetes adicionales y editar archivos de configuración. Para configuraciones comunes, véase
Apache HTTP Server
,
nginx
,
lighttpd
y
Hiawatha
. Para ejecutar scripts PHP como CGI simple, necesita el paquete
php-cgi
.
Configuración
El archivo principal de configuración de PHP está bien documentado y ubicado en
/etc/php/php.ini
.
Se recomienda configurar su zona horaria (
lista de zonas horarias
) en
/etc/php/php.ini
así:
date.timezone = Europe/Madrid
Si quiere mostrar los errores para depurar su código PHP, cambie
display_errors
a
On
en
/etc/php/php.ini
:
display_errors = On
La directiva
open_basedir
limita las rutas a las que puede acceder PHP, aumentando así la seguridad a costa de interferir potencialmente con la ejecución normal del programa. A partir de PHP 7.0,
ya no está configurado de forma predeterminada
para que coincida más estrechamente con el flujo ascendente, por lo que los usuarios que deseen usarlo deben configurarlo manualmente. Todos los enlaces simbólicos están resueltos, por lo que no es posible evitar esta restricción con un enlace simbólico. Los paquetes Arch predeterminados para ciertas aplicaciones web como
nextcloud
y
phpmyadmin
instalan las aplicaciones web en
/usr/share/webapps
y crean un enlace simbólico que apunta a los archivos de configuración reales para dichas aplicaciones web en
/etc/webapps
. Por lo tanto, si está configurando
open_basedir
, asegúrese de que ambas carpetas estén en
open_basedir
. Obviamente, esto será diferente para las aplicaciones web instaladas en otras ubicaciones. Por ejemplo:
open_basedir = /srv/http/:/var/www/:/home/:/tmp/:/var/tmp/:/var/cache/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
Extensiones
También se pueden encontrar varias extensiones PHP de uso común en los repositorios oficiales:
$ pacman -Ss php-
Sugerencia
En lugar de editar
/etc/php/php.ini
, se puede activar/configurar una extensión en el directorio
/etc/php/conf.d
(por ejemplo
/etc/php/conf.d/gd.ini
).
Las extensiones para versiones actuales y anteriores de PHP también están disponibles en
AUR
con el prefijo php-* y php56-*, por ejemplo
php-imagick
,
php-redis
y
php56-mcrypt
AUR
.
gd
Para
php-gd
descomente en
/etc/php/php.ini
la línea:
extension=gd
Imagemagick
Instale)
el paquete
imagemagick
y una de las bibliotecas de extensión PHP enumeradas.
Instale
php-imagick
, creará el archivo
/etc/php/conf.d/imagick.ini
para configurar la extensión.
PECL
Asegúrese de que se haya instalado el paquete
php-pear
AUR
:
# pecl install imagick
Cree
/etc/php/conf.d/imagick.ini
y active la extensión:
/etc/php/conf.d/imagick.ini
extension=imagick
Multihilo
Si desea tener POSIX multihilo, necesitará la extensión
paralelo
. Para instalar la extensión usando
pecl
, se requiere que use una versión compilada de PHP con la opción de soporte de seguridad de subprocesos
--enable-maintenance-zts
. Actualmente, la forma más limpia de hacer esto sería reconstruir el paquete original con la opción. Las instrucciones se pueden encontrar en la página
PHP pthreads extension
.
PCNTL
PCNTL le permite crear procesos directamente en la máquina del lado del servidor. Si bien esto puede verse como algo que desearía, también le da a PHP el poder de estropear las cosas realmente. Por lo tanto, es una extensión de PHP que no se puede cargar como otra extensión más conveniente. Esto se debe al gran poder que le da a PHP. Para activarlo, PCNTL debe estar compilado en PHP.
El paquete php en Arch Linux está actualmente construido con "--enable-pcntl", por lo que debería estar disponible por defecto.
MySQL/MariaDB
Instale y configure MySQL/MariaDB como se describe en
MariaDB
.
Descomente
las líneas siguientes
en
/etc/php/php.ini
:
extension=pdo_mysql
extension=mysqli
Nota
extension=mysql
fue
eliminado
en PHP 7.0.
Puede añadir usuarios menores de MySQL con privilegios para sus scripts web. Es posible que también quiera editar
/etc/my.cnf.d/server.cnf
y añadir la línea de la sección
mysqld
skip-networking
para que solo se pueda acceder al servidor MySQL por localhost, según
MariaDB#Enable access locally only via Unix sockets
. Debe reiniciar MySQL para que los cambios surtan efecto.
Redis
Instale y configure
Redis
, luego instale
php-redis
.
Descomente la línea del paquete, por ejemplo
/etc/php/conf.d/redis.ini
.
También asegúrese de que la extensión igbinary esté activada (también descomentada) en
/etc/php/conf.d/igbinary.ini
PostgreSQL
Instale y configure
PostgreSQL
, luego instale el paquete
php-pgsql
y descomente las siguientes líneas en
/etc/php/php.ini
:
extension=pdo_pgsql
extension=pgsql
Sqlite
Instale y configure
SQLite
, luego instale el paquete
php-sqlite
y descomente las siguientes líneas en
/etc/php/php.ini
:
extension=pdo_sqlite
extension=sqlite3
XDebug
XDebug le permite depurar fácilmente el código php usando la función var_dump() modificada. Instale
xdebug
y descomente las líneas en
/etc/php/conf.d/xdebug.ini
.
zend_extension=xdebug
xdebug.mode=debug
Nota
Para intentar siempre iniciar una sesión de depuración remota y conectarse a un cliente de depuración, también es necesario configurar
xdebug.remote_autostart=on
. Para Xdebug 3, el puerto predeterminado es 9003, para cambiarlo configure
xdebug.remote_port=9000
IMAP
Instale
php-imap
AUR
y descomente en
/etc/php/php.ini
la línea:
extension=imap
Caching
Hay dos tipos de almacenamiento en caché en PHP: caché de
código de operación
/
código de bytes
(opcode) y caché de
área de usuario
/
datos de usuario
(userland). Ambos permiten ganancias sustanciales en la velocidad de las aplicaciones y, por lo tanto, deben activarse siempre que sea posible.
Zend OPCache
proporciona solo caché de
código de operación
.
APCu
proporciona solo caché de
área de usuario
.
OPCache
OPCache viene incluido con la distribución PHP estándar, por lo tanto, para activarlo simplemente tiene que añadir o descomentar la siguiente línea en su
archivo de configuración PHP
:
/etc/php/php.ini
zend_extension=opcache
Puede encontrar una lista de sus opciones y configuraciones sugeridas en el
sitio web de PHP
.
Advertencia
Si opta por aplicar la
configuración sugerida
que ofrece el manual, asegúrese de leer con atención
el primer comentario
debajo de esas instrucciones también. En algunos casos, esas configuraciones dan como resultado errores como
zend_mm_heap corrupted
.
APCu
APCu se puede instalar con el paquete
php-apcu
. Luego puede activarlo descomentando la siguiente línea en
/etc/php/conf.d/apcu.ini
, o añadiéndola a su
archivo de configuración PHP
:
extension=apcu
This article or section is out of date.
Reason:
The linked INSTALL file was removed and instead points to the
online documentation
(Discuss in
Talk:PHP (Español)
)
Su autor recomienda algunas
configuraciones sugeridas
, entre las cuales:
apc.enabled=1
y
apc.shm_size=32M
no son realmente necesarios ya que representan los
valores por defecto
;
apc.ttl=7200
por otro lado parece
bastante beneficiosa
;
finalmente,
apc.enable_cli=1
, que aunque
no es recomendada
por el manual puede ser requerido por algún software como
ownCloud
.
Sugerencia
Puede añadir esas configuraciones al propio
/etc/php/conf.d/apcu.ini
de APCu
o
directamente a su
archivo de configuración de PHP
. Solo asegúrese de no activar la extensión dos veces, ya que provocará errores en los registros del sistema.
Herramientas de desarrollo
Visual Studio Code
— Editor de código para programar PHP y otros lenguajes.
https://code.visualstudio.com/
||
visual-studio-code-bin
AUR
Aptana Studio
— IDE para programación en PHP y desarrollo web. No tiene depurador de PHP.
http://www.aptana.com/products/studio3.html
||
aptana-studio
AUR
Eclipse
PDT
— La variante PHP de Eclipse.
https://www.eclipse.org/pdt/
||
eclipse-php
AUR
[
enlace roto
: package not found]
Komodo
— IDE con buena integración para PHP+HTML+JavaScript.
http://komodoide.com/
||
komodo-ide
AUR
, editor only:
komodo-edit
AUR
Netbeans
— IDE para muchos lenguajes, incluido PHP. Incluye funciones como depuración, refactorización, creación de plantillas de código, autocompletar, funciones XML y funciones de desarrollo y diseño web.
https://netbeans.org/
||
netbeans
JetBrains PhpStorm
— IDE comercial multiplataforma para PHP construido sobre la plataforma IntelliJ IDEA de JetBrains. Puede obtener una licencia gratuita de Jetbrains para estudiantes.
[1]
.
https://www.jetbrains.com/phpstorm/
||
phpstorm
AUR
, 30-day trial:
phpstorm-eap
AUR
Zend Studio
— IDE PHP oficial, basado en eclipse. El IDE tiene autocompletado, formato de código avanzado, editor de html WYSIWYG, refactorización y todas las funciones de eclipse, como el acceso a la base de datos y la integración de control de versiones y todo lo que pueda obtener de otros complementos de eclipse.
https://www.zend.com/products/studio/
||
zendstudio
AUR
[
enlace roto
: package not found]
Herramientas de línea de órdenes
Compositor
Composer
es un administrador de dependencias para PHP.
Se puede instalar con el paquete
composer
.
Permitir instalaciones a nivel de usuario
Para permitir instalaciones de paquetes globales para el
usuario
actual (por ejemplo
$ composer global require "package/name"
), es posible que quiera especificar una ubicación predeterminada mediante una
variable de entorno
:
PATH="$HOME/.config/composer/vendor/bin:$PATH"
Box
Box
es una aplicación para construir y administrar Phars.
Se puede instalar con el paquete
php-box
AUR
.
PDepend
PHP Depend
(pdepend) es una herramienta de métricas software para php.
Se puede instalar con el paquete
pdepend
AUR
.
PHP Coding Standards Fixer
PHP Coding Standards Fixer
es un corrector de código del estándar de codificación PSR-1 y PSR-2.
Se puede instalar con el paquete
php-cs-fixer
AUR
.
PHP-CodeSniffer
PHP CodeSniffer
"tokeniza" archivos PHP, JavaScript y CSS y detecta violaciones de un conjunto definido de estándares de codificación.
Se puede instalar con el paquete
php-codesniffer
AUR
.
phpcov
phpcov
es una interfaz de línea de órdenes para la biblioteca PHP_CodeCoverage.
Se puede instalar con el paquete
phpcov
AUR
.
phpDox
phpDox
es el generador de documentación para proyectos PHP. Esto incluye, pero no se limita a, la documentación de la API.
Se puede instalar con el paquete
phpdox
AUR
.
PHPLoc
PHPLoc
es una herramienta para medir rápidamente el tamaño de un proyecto PHP.
Se puede instalar con el paquete
phploc
AUR
.
PhpMetrics
PhpMetrics
proporciona varias métricas sobre proyectos PHP.
Se puede instalar con el paquete
phpmetrics
AUR
.
phptok
phptok
es una herramienta para descargar rápidamente los "tokens" de un archivo de código fuente PHP.
Se puede instalar con el paquete
phptok
AUR
[
enlace roto
: package not found]
.
PHPUnit
PHPUnit
es un marco de pruebas para PHP orientado a programadores.
Se puede instalar con el paquete
phpunit
AUR
.
PHPUnit Skeleton Generator
PHPUnit Skeleton Generator
[
enlace roto
2025-08-16]
es una herramienta que puede generar estructuras de clases de prueba a partir de clases de código de producción y viceversa.
Se puede instalar con el paquete
phpunit-skeleton-generator
AUR
[
enlace roto
: package not found]
.
Producer
Producer
es una herramienta de control de calidad de línea de órdenes para validar y luego publicar su paquete de biblioteca PHP.
Se puede instalar con el paquete
producer
AUR
.
Solución de problemas
PHP Fatal error:  Class 'ZipArchive' not found
Asegúrese de que la extensión zip esté activada.
/etc/php/php.ini
extension=zip
/etc/php/php.ini not parsed
Si su
php.ini
no se analiza, el archivo ini recibe el nombre del sapi que está utilizando. Por ejemplo, si está utilizando uwsgi, el archivo se llamaría
/etc/php/php-uwsgi.ini
. Si está usando cli, es
/etc/php/php-cli.ini
.
PHP Warning:  PHP Startup:
<module>
: Unable to initialize module
Cuando se ejecuta
php
, este error indica que el módulo mencionado anteriormente está desactualizado. Esto rara vez sucederá en Arch Linux, ya que los encargados del mantenimiento se aseguran de que el núcleo PHP y todos los módulos solo estén disponibles en versiones compatibles.
Esto puede suceder junto con un módulo compilado de
AUR
. Por lo general, puede confirmar esto mirando las fechas de los archivos
/usr/lib/php/modules/
.
Para solucionarlo, busque una actualización compatible para su módulo, probablemente buscando en
AUR
usando su nombre común.
Si corresponde, marque el paquete
AUR
desactualizado como
outdated
(desactualizado).
Véase también
Sitio web oficial de PHP