<?php echo Phalcon\Tag::form('signup/register') ?>
//output <form method="post" action="/index.php/signup/register">   

Using PHP 5.4.23 Built-in webserver and followed the guide http://localhost:8000/signup is OK to get the signup/index.phtml

http://localhost:8000/index.php/signup FAIL http://localhost:8000/index.php?_url=/signup FAIL

after adding

    //Setup a base URI so that all generated URIs include the "tutorial" folder
    $di->set('url', function(){
        $url = new \Phalcon\Mvc\Url();
        return $url;

is OK, but I wonder why the setBaseUri default is index.php and will the reference on nginx / apache2 route the index.php/uri right?