2014-07-12 5 views
2

Je crée une application Yii 2 et d'essayer sur HerokuModifier racine du document Pour Heroku applications PHP

La racine du document doit être le web/dossier de cette application

C'est ce que j'ai essayé :

  • Créer un Procfile dans la racine de cette application
web: sh www/config/web-boot.sh
  • Créer web-boot.sh dans le dossier config
 
    echo "Include /app/www/config/httpd/*.conf" >> /app/apache/conf/httpd.conf 
    touch /app/apache/logs/error_log 
    touch /app/apache/logs/access_log 
    tail -F /app/apache/logs/error_log & 
    tail -F /app/apache/logs/access_log & 
    export LD_LIBRARY_PATH=/app/php/ext 
    export PHP_INI_SCAN_DIR=/app/www 
    echo "Launching apache" 
    exec /app/apache/bin/httpd -DNO_DETACH 
  • Dans le dossier config, je crée le dossier "httpd" et "default.conf" dans ce dossier
 
DocumentRoot "/app/www/web" 
<Directory "/app/www/web"> 
     Options Indexes FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
</Directory> 

et quand je l'application déployer, je reçois cette erreur:

 

An error occurred in the application and your page could not be served. Please try again in a few moments. 

If you are the application owner, check your logs for details. 

Quand je vérifie les journaux:

 
2014-07-12T20:23:08.476411+00:00 heroku[web.1]: State changed from starting to crashed 
2014-07-12T20:23:06.313554+00:00 heroku[web.1]: Starting process with command `sh www/config/web-boot.sh` 
2014-07-12T20:23:08.465571+00:00 heroku[web.1]: Process exited with status 2 
2014-07-12T20:23:10.025168+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=richy-rich.herokuapp.com request_id=e4bb1124-5f2d-4a27-8df4-6fff9bc166b2 fwd="50.19.158.232" dyno= connect= service= status=503 bytes= 
2014-07-12T20:41:49.308914+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=richy-rich.herokuapp.com request_id=5785ac83-c4fb-473e-b794-50ce491512c9 fwd="223.255.224.107" dyno= connect= service= status=503 bytes= 

Comment résoudre ce problème? Je ne comprend que Procfile du tout, grâce

MISE À JOUR

Maintenant, j'essayé une autre solution, j'ajouter ce paquet à mon composer.json

heroku/heroku-buildpack-php

Et a changé le Procfile en :

web: vendor/bin/heroku-php-nginx web/

cette fois, je suis arrivé cette erreur:

2014-07-12T21:12:58.960392+00:00 app[web.1]: This program requires PHP 5.5.11 or newer; check your 'php' command. 
2014-07-12T21:13:00.147518+00:00 heroku[web.1]: State changed from starting to crashed 
2014-07-12T21:12:58.044158+00:00 heroku[web.1]: Starting process with command `vendor/bin/heroku-php-apache2 web/` 
2014-07-12T21:13:00.136787+00:00 heroku[web.1]: Process exited with status 1 
2014-07-12T21:13:08.648874+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=richy-rich.herokuapp.com request_id=a3bcc52d-2a7c-45ac-b21d-f856154d7e38 fwd="223.255.224.107" dyno= connect= service= status=503 bytes=

On dirait que c'est à cause de ma version de PHP, depuis la version installée par Heroku est 5.5.10, j'ai donc essayé de mettre à jour le compositeur version php dans « > = 5.5.11 », mais je m'y suis une autre erreur (Man, C'est 04h39 et je n'ai pas encore dormir à cause de toutes ces erreurs)

Problem 1 
      - The requested package php could not be found in any version, there may be a typo in the package name. 
     Problem 2 
      - The requested package php could not be found in any version, there may be a typo in the package name. 
     Problem 3 
      - Installation request for cebe/markdown 0.9.x-dev -> satisfiable by cebe/markdown[0.9.x-dev]. 
      - cebe/markdown 0.9.x-dev requires php >=5.4.0 -> no matching package found. 
     Problem 4 
      - Installation request for ezyang/htmlpurifier v4.6.0 -> satisfiable by ezyang/htmlpurifier[v4.6.0]. 
      - ezyang/htmlpurifier v4.6.0 requires php >=5.2 -> no matching package found. 
     Problem 5 
      - Installation request for swiftmailer/swiftmailer 5.2.x-dev -> satisfiable by swiftmailer/swiftmailer[5.2.x-dev]. 
      - swiftmailer/swiftmailer 5.2.x-dev requires php >=5.2.4 -> no matching package found. 
     Problem 6 
      - Installation request for swiftmailer/swiftmailer dev-master -> satisfiable by swiftmailer/swiftmailer[dev-master]. 
      - swiftmailer/swiftmailer dev-master requires php >=5.2.4 -> no matching package found. 
     Problem 7 
      - Installation request for yiisoft/yii2 2.0.0-beta -> satisfiable by yiisoft/yii2[2.0.0-beta]. 
      - yiisoft/yii2 2.0.0-beta requires php >=5.4.0 -> no matching package found. 
     Problem 8 
      - yiisoft/yii2 2.0.0-beta requires php >=5.4.0 -> no matching package found. 
      - yiisoft/yii2-swiftmailer 2.0.0-beta requires yiisoft/yii2 * -> satisfiable by yiisoft/yii2[2.0.0-beta]. 
      - Installation request for yiisoft/yii2-swiftmailer 2.0.0-beta -> satisfiable by yiisoft/yii2-swiftmailer[2.0.0-beta].

s'il vous plaît aidez-moi Kindy, merci

Répondre

1

on dirait que vous n'êtes pas en utilisant le buildpack officiel, mais certains sorte de tiers (vérifier heroku config et chercher un BUILDPACK_URL).

Triez-le avec le mainteneur, ou mieux, utilisez le support PHP officiel de Heroku (heroku config:unset BUILDPACK_URL et appuyez sur un changement). Ensuite, votre Procfile fonctionnera (mais vous devez supprimer la dépendance heroku/heroku-buildpack-php dans composer.json, ou la déplacer sur require-dev).

+0

merci pour la suggestion, J'ai lu qu'il est installé par défaut dans heroku donc je n'ai pas besoin d'installer cela. mais ne peut toujours pas exécuter le Procfile en raison de la version php installé dans heroku – user3833083

+0

S'il vous plaît relire ce que j'ai écrit. Vous n'êtes apparemment pas en train d'exécuter le buildpack normal. Si vous exécutez 'heroku config' dans votre application, quelle est la valeur de' BUILDPACK_URL'? – dzuelke

+0

Le buildpack officiel est livré avec PHP 5.5.11-5.5.14, donc il ne dira jamais "Ce programme nécessite PHP 5.5.11 ou plus récent, vérifiez votre commande 'php'." au démarrage, et il rejettera les poussées avec 'heroku/heroku-buildpack-php' en tant que dépendance non-dev. Vous utilisez presque certainement un buildpack tiers avec une version différente de PHP et un comportement différent. Vous ne pouvez pas utiliser la commande de démarrage officielle de buildpack, car tout est différent. – dzuelke

Questions connexes