PHP (Español)
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.
Puede encontrar versiones anteriores de PHP en AUR, tales como php53AUR, php55AUR, php56AUR, php70AUR, php71AUR, php72AUR, php73AUR y php74AUR.
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 .
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 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 y
phpmyadmin
instalan las aplicaciones web en y crean un enlace simbólico que apunta a los archivos de configuración reales para dichas aplicaciones web en . Por lo tanto, si está configurando , asegúrese de que ambas carpetas estén en . 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-
Las extensiones para versiones actuales y anteriores de PHP también están disponibles en AUR con el prefijo php-* y php56-*, por ejemplo , y .
gd
Para 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 , creará el archivo para configurar la extensión.
PECL
Asegúrese de que se haya instalado el paquete php-pearAUR:
# pecl install imagick
Cree y active la extensión:
Multihilo
Si desea tener POSIX multihilo, necesitará la extensión paralelo. Para instalar la extensión usando , se requiere que use una versión compilada de PHP con la opción de soporte de seguridad de subprocesos . 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
Puede añadir usuarios menores de MySQL con privilegios para sus scripts web. Es posible que también quiera editar y añadir la línea de la sección mysqld 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 .
Descomente la línea del paquete, por ejemplo .
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 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 y descomente las líneas en .
zend_extension=xdebug xdebug.mode=debug
IMAP
Instale 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:
Puede encontrar una lista de sus opciones y configuraciones sugeridas en el sitio web de PHP.
APCu
APCu se puede instalar con el paquete . 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
Su autor recomienda algunas configuraciones sugeridas, entre las cuales:
- y no son realmente necesarios ya que representan los valores por defecto;
apc.ttl=7200
por otro lado parece bastante beneficiosa;- finalmente, , que aunque no es recomendada por el manual puede ser requerido por algún software como ownCloud.
Herramientas de desarrollo
- Komodo — IDE con buena integración para PHP+HTML+JavaScript.
- http://komodoide.com/ || komodo-ideAUR, editor only: komodo-editAUR
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 ), 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 .
PDepend
PHP Depend (pdepend) es una herramienta de métricas software para php. Se puede instalar con el paquete .
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-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 .
phpcov
phpcov es una interfaz de línea de órdenes para la biblioteca PHP_CodeCoverage. Se puede instalar con el paquete phpcovAUR.
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 .
PHPLoc
PHPLoc es una herramienta para medir rápidamente el tamaño de un proyecto PHP. Se puede instalar con el paquete .
PhpMetrics
PhpMetrics proporciona varias métricas sobre proyectos PHP. Se puede instalar con el paquete .
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 .
PHPUnit
PHPUnit es un marco de pruebas para PHP orientado a programadores. Se puede instalar con el paquete .
PHPUnit Skeleton Generator
PHPUnit Skeleton Generator 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-generatorAUR.
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 .
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 not parsed
Si su 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 . Si está usando cli, es .
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 .
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).