Question

my dev env is linux and im trying to figure out the new heroku php tools explained here

I installed nginx 1.6 and php 5.5.11 on my system , configd nginx for php5-fpm and that works. I can serve a page with phpinfo() in it.

env detls:

PHP 5.5.11-3+deb.sury.org~precise+1 (fpm-fcgi) (built: Apr 23 2014 12:31:47)

My problem is running composer install and then foreman in the php project directory so that i can have local env that will reliably be an image of what will eventually run on heroku.

composer install --no-dev --prefer-dist --optimize-autoloader --no-interaction 

above runs ok and puts all the symlinks in the the "vendor/bin" directory in the project.

i did not change any of the config files created by the above.

foreman check is OK

when i run foreman start , i get the issues below:

14:30:39 web.1  | Using PHP-FPM configuration file 'vendor/heroku/heroku-buildpack-php/conf/php/php-fpm.conf'
14:30:39 web.1  | Using PHP configuration (php.ini) file 'vendor/heroku/heroku-buildpack-php/conf/php/php.ini'
14:30:39 web.1  | Using Nginx server-level configuration include 'vendor/heroku/heroku-buildpack-php/conf/nginx/default_include.conf'
14:30:39 web.1  | Using Nginx configuration file 'vendor/heroku/heroku-buildpack-php/conf/nginx/heroku.conf.php'
14:30:39 web.1  | Interpreting vendor/heroku/heroku-buildpack-php/conf/nginx/heroku.conf.php to heroku.conf
14:30:39 web.1  | Starting log redirection...
14:30:39 web.1  | Starting php-fpm...
14:30:39 web.1  | Starting nginx...
14:30:39 web.1  | vendor/bin/heroku-php-nginx: line 183: php-fpm: command not found
14:30:41 web.1  | nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
14:30:41 web.1  | 2014/05/05 14:30:41 [warn] 25269#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
14:30:41 web.1  | 2014/05/05 14:30:41 [emerg] 25269#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)

Permissions errors i can handle but, the NOT-FOUND on php-fpm is beyond me... I can change the call from php-fpm to "php5-fpm" and run start foreman as ROOT and all the errors go away. But, it will not server php pages. RC=403 on any .php.

do i need to symlink something?

php-fmp package does not exist for ubuntu. Its "php5-fpm".

what do i do now?

composer.json & Procfile

"require": {
"heroku/heroku-buildpack-php": "v12"
}

web: vendor/bin/heroku-php-nginx

Was it helpful?

Solution

An alias php-fpm=php5-fpm should fix that.

By the way, heroku/heroku-buildpack-php isn't allowed as a dependency in require (Heroku will reject it on push); put it in require-dev. For local dev, you should usually run without --no-dev.

As v12 wouldn't track buildpack updates, dev_master is probably also a better version constraint for the time being, just to make sure you receive the latest version of the package (and one that mirrors what you get on Heroku).

Today's update (tagged v13; I guess you see the problem already :)) also includes a bunch of updates to Nginx config defaults; give those a try.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top