локальная среда heroku php — недопустимые пути

#php #heroku #nginx #composer-php #foreman

#php #heroku #nginx #композитор-php #бригадир

Вопрос:

Я установил composer, и он помещает все символические ссылки в каталог «vendor / bin» в проекте. Я не изменял ни один из конфигурационных файлов, созданных выше.

Когда я запускаю foreman start, я получаю следующие проблемы:

 $ foreman start -f Procfile.dev
17:31:28 web.1  | started with pid 63713
17:31:28 web.1  | Booting on port 5000...
17:31:28 web.1  | DOCUMENT_ROOT changed to '/Users/padawan/Desktop/progetti/gdb/sketchin-heatmap/web'
17:31:28 web.1  | Using PHP-FPM configuration file '/heroku/heroku-buildpack-php/conf/php/php-fpm.conf'
17:31:28 web.1  | Using PHP configuration (php.ini) file '/heroku/heroku-buildpack-php/conf/php/php.ini'
17:31:28 web.1  | Using Nginx server-level configuration include 'nginx_app.conf'
17:31:28 web.1  | Using Nginx configuration file '/heroku/heroku-buildpack-php/conf/nginx/heroku.conf.php'
17:31:28 web.1  | Interpreting /heroku/heroku-buildpack-php/conf/nginx/heroku.conf.php to heroku.conf
17:31:28 web.1  | vendor/bin/heroku-php-nginx: line 17: /Users/padawan/Desktop/progetti/gdb/sketchin-heatmap//heroku/heroku-buildpack-php/conf/nginx/heroku.conf: No such file or directory
17:31:28 web.1  | Starting log redirection...
17:31:28 web.1  | Starting php-fpm...
17:31:28 web.1  | Starting nginx...
17:31:28 web.1  | [30-Jun-2014 17:31:28] ERROR: failed to open configuration file '/Users/padawan/Desktop/progetti/gdb/sketchin-heatmap//heroku/heroku-buildpack-php/conf/php/php-fpm.conf': No such file or directory (2)
17:31:28 web.1  | [30-Jun-2014 17:31:28] ERROR: failed to load configuration file '/Users/padawan/Desktop/progetti/gdb/sketchin-heatmap//heroku/heroku-buildpack-php/conf/php/php-fpm.conf'
17:31:28 web.1  | [30-Jun-2014 17:31:28] ERROR: FPM initialization failed
17:31:30 web.1  | nginx: [alert] could not open error log file: open() "/usr/local/var/log/nginx/error.log" failed (13: Permission denied)
17:31:30 web.1  | 2014/06/30 17:31:30 [emerg] 63764#0: open() "/Users/padawan/Desktop/progetti/gdb/sketchin-heatmap//heroku/heroku-buildpack-php/conf/nginx/heroku.conf" failed (2: No such file or directory) in command line
  

Я не могу понять, почему папка поставщика никогда не вставляется: например, путь к файлу конфигурации PHP-FPM ‘/heroku / heroku-buildpack-php /conf /php / php-fpm.conf’ вместо реального ‘/ vendor/heroku/heroku-buildpack-php/conf/php/php-fpm.conf’

Я использую этот пакет сборки:https://github.com/CHH/heroku-buildpack-php

Здесь мои файлы:

// Procfile.dev

 web: vendor/bin/heroku-php-nginx -C nginx_app.conf web/
  

// nginx_app.conf

 location / {
# try to serve file directly, fallback to rewrite
try_files $uri @rewriteapp;
}

location @rewriteapp {
    # rewrite all to index.php
    rewrite ^(.*)$ /index.php/$1 last;
}

location ~ ^/(app|app_dev|config).php(/|$) {
    fastcgi_pass heroku-fcgi;
    fastcgi_split_path_info ^(. .php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS off;
}
  

// composer.json

 {
"name": "sketchin-heatmap",
"require": {
    "php": ">=5.4.0",
    "ext-mongo": "*",
    "silex/silex": "~1.0@dev",
    "twig/twig": ">=1.8,<2.0-dev",
    "symfony/twig-bridge": "~2.3"
},
"require-dev": {
        "heroku/heroku-buildpack-php":"*"
    },
    "extra": {
        "heroku": {
            "document-root": "web",
            "index-document": "index.php"
        }
    }
}
  

Ответ №1:

Вам нужно composer установить глобально. vendor Папка определяется в сценарии запуска путем запуска composer config vendor-dir . Похоже, в вашем случае это не удается.

Возможно, у вас есть только composer.phar в вашем проекте, но нет composer команды на вашем пути ? If so, copy composer.phar to e.g. /usr/local/bin / composer`.