indeyets / appserver-in-php

Generic HTTP applications approach for PHP5.3+ (inspired by Rack and WSGI)
BSD 3-Clause "New" or "Revised" License
291 stars 23 forks source link

Unable to run /vendor/bin/aip #30

Closed joes closed 11 years ago

joes commented 11 years ago

After running composer install I try to run vendor/bin/aip app mongrel2.yaml in the application's root. It ends up with this error message:

/vendor/bin/aip: @PHP-BIN@: bad interpreter: No such file or directory

Seems to be some token @PHP-BIN@ there that wasn't exchanged with the correct value?

joes commented 11 years ago

If I fix the line in /vendor/aip/aip/bin/aip to:

#!/usr/bin/php -d html_errors=off

and then try to run it again I still get these errors:

PHP Warning:  require(AiP/autoload.php): failed to open stream: No such file or directory in /rl_sugarcrm_async_proxy_handler/vendor/aip/aip/bin/aip on line 6
PHP Fatal error:  require(): Failed opening required 'AiP/autoload.php' (include_path='.:/usr/share/php5:/usr/share/php5/PEAR') in /rl_sugarcrm_async_proxy_handler/vendor/aip/aip/bin/aip on line 6
indeyets commented 11 years ago

@joes which version of aip do you use? I believe this issue was fixed in 0.9.4

joes commented 11 years ago

This is from my composer.json so I suppose it should be whatever was the newest 0.9.x release:

{
    "require": {
        "aip/aip": "0.9.*"
    }
}

But then again composer show lists the following as installed

installed:
  aip/aip [0.9.3] : Application server in PHP

So I guess you've must've cut a new release (0.9.4) quite recently (like today)?

So clearing out all composer.lock and vendor files and try a fresh composer install again:

Loading composer repositories with package information
Installing dependencies
  - Installing aip/aip (0.9.3)

  - Installing monolog/monolog (1.2.1)

Still gives me that 0.9.3 is the latest available release... What gives?

indeyets commented 11 years ago

@joes it was 4-th of october, actually https://packagist.org/packages/aip/aip

Is it possible, that you have old version of PHP installed?

aip 0.9.3 depends on php: >=5.3.0, while 0.9.4+ lists php: >=5.3.11 as dependency (earlier versions had some weird stream-related bugs)

composer silently installs older version, if there dependencies are not satisfiable for newer version

indeyets commented 11 years ago

@joes other problem might be, that some of pake's dependencies are not satisfied. I changed those from hard to soft in git-master, but didn't make release with soft dependencies yet. I'll do so later today, as it can be the source of problems

indeyets commented 11 years ago

@joes done. pake 1.7.3 is released and it uses soft-dependencies. I hope it fixes your issue

joes commented 11 years ago

I am trying to use this with SLES (suse enterprise) 11 SP 2 and it seems that it's php version is at 5.3.8 so it seems that it is the first case where composer just installs an older version when it encounters non-satistfiable dependencies. Anyhow, it seems that this appserver is out of question for me then.

As an aside, I must say I do find it rather odd that composer doesn't emit any kind of warning for this situation...

indeyets commented 11 years ago

@joes well, you can try to use it on 5.3.8 and it might work for you. actually, there were reports that 5.3.8 is unaffected and problem happens with 5.3.9-5.3.10

I'll tweak version-dependency to allow versions since 5.3.3 till 5.3.8. the change should be online in 15 minutes

indeyets commented 11 years ago

@joes after several tries, I just allow any php >=5.3.3 now, so it should install for you.