“No input file specified” using Homestead

If you see the message “No input file specified” in the browser (using Homestead as development VM machine), one possible problem is that Homestead doesn’t load the parameters from the config file Homestead.yaml

Try to provision the VM another time, running

$ vagrant reload --provision

Instalar Composer de forma global en Debian

Para instalar Composer de forma global en Debian hay que ejecutar

$ sudo apt-get update && apt-get install curl php5-cli
$ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Para comprobar que funciona de forma global, hay que ejecutar

$ composer

y comprobar que su salida es similar a la siguiente.

______
 / ____/___ ____ ___ ____ ____ ________ _____
 / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
 / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
 \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
 /_/
 Composer version 1.0-dev (c0883d85fa9e1b1b1bfb42e02261d55cdfd5af20) 2016-02-25 15:44:15
Usage:
 command [options] [arguments]

Fin del soporte de seguridad de PHP en Debian 7

Actualizando una Debian 7 me encuentro con este mensaje de fin del soporte de seguridad de PHP, por lo que es conveniente migrar a Debian 8.

php5 (5.4.45-0+deb7u2) wheezy-security; urgency=medium

* PHP 5.4 has reached end-of-life on 14 Sep 2015 and as a result there
will be no more new upstream releases. The security support of PHP
5.4 in Debian will be best effort only and you are strongly advised
to upgrade to latest stable Debian release that includes PHP 5.6 that
will reach end of security support on 28 Aug 2017.

— Ondřej Surý <ondrej@debian.org> Sun, 04 Oct 2015 17:05:37 +0200

Error en la ejecución de Zend Framework

No suelo hablar de temas tan técnicos aquí, pero creo que es interesante dejar este apunte para aquellos a los que les pueda resultar interesante, ya que he tenido que buscar bastante por foros para llegar a la solución a este error.

En mis ratos libres estoy dando mis primeros pasos con Zend Framework, un framework de  código abierto para desarrollar aplicaciones y servicios web con PHP 5. Estoy llevando a cabo pruebas en un hosting compartido Linux en Go Daddy.

El mensaje de error que me aparecía de forma continua al tratar de ejecutar zf.sh, la herramienta de línea de comandos, era el siguiente (en vuestro mensaje variará la ruta donde se encuentra zf.php):

<br />
<b>Parse error</b>: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in <b>/home/content/x/a/m/user/html/zf/ZendFramework-1.11.11/bin/zf.php</b> on line <b>38</b><br />

La versión de PHP era la correcta (superior a la 5.2.4), comprobada mediante un script php que ejecuta la función phpinfo(), así como ejecutando en línea de comandos “php -v”. La versión instalada era la 5.2.14.

Además, mediante un sencillo código que utiliza las librerías Zend Framework, comprobaba que las librerías de Zend están incluídas en las rutas del php5.ini, mediante la línea

include_path = “/home/content/x/a/m/user/html/zf/ZendFramework-1.11.11/library”

El código que realiza la comprobación es el siguiente

<?
require_once ‘Zend/Mail.php’;
$mail=new Zend_Mail();
echo ‘it is working’;
?>

La solución a este problema es muy sencilla, y llegué a ella a través de este blog. Es tan sencilla como editar el archivo zf.sh e incluir después del código

if test “@php_bin@” != ‘@’php_bin’@’; then
PHP_BIN=”@php_bin@”
elif command -v php 1>/dev/null 2>/dev/null; then
PHP_BIN=`command -v php`
else
PHP_BIN=php
fi

La línea

PHP_BIN=/usr/local/php5/bin/php

que indica donde se encuentra el ejecutable (no el directorio) de php5. Esta ruta, así como el nombre del ejecutable, pueden variar dependiendo de la instalación de Linux o del proveedor de hosting (ISP) utilizado. En mi caso es un hosting compartido Linux de  Go Daddy.