2016-01-19 8 views
5

Ich richte einen neuen Server für Laravel-Anwendung. Ich habe Komponist installiert und php5.6.15 von meinem cpanel gewählt. Aber wenn ich den Befehl php -v im Terminal starte, wird meine aktuelle Version als php5.2.19 angezeigt.Einrichten des Servers auf Bluehost für Laravel-Anwendung und Problem mit PHP-V

Hier ist meine php.ini-Datei auf meinem Server zeigt es 5.6 Version

enter image description here

ich meinen Code auf dem Server mit git hochgeladen habe. Wenn ich den Befehl composer install ausführen, erhalte ich diesen Fehler.

Your requirements could not be resolved to an installable set of packages. 

    Problem 1 
    - laravel/framework v5.1.28 requires php >=5.5.9 -> your PHP version (5.4.43) or value of "config.platform.php" in composer.json does not satisfy that requirement. 
    - laravel/framework v5.1.28 requires php >=5.5.9 -> your PHP version (5.4.43) or value of "config.platform.php" in composer.json does not satisfy that requirement. 
    - Installation request for laravel/framework v5.1.28 -> satisfiable by laravel/framework[v5.1.28]. 

Ich benutze Laravel 5.1. Wenn ich es auf 5.0 herabstufen, gibt es Abhängigkeitsfehler mit anderen Paketen. Hier ist meine composer.json Datei.

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "php": ">=5.4.43", 
     "laravel/framework": "5.1.*", 
     "bestmomo/scafold": "dev-master", 
     "illuminate/html": "5.*", 
     "barryvdh/laravel-debugbar": "^2.0", 
     "intervention/image": "^2.3", 
     "doctrine/dbal": "^2.5", 
     "davejamesmiller/laravel-breadcrumbs": "^3.0", 
     "yajra/laravel-datatables-oracle": "^5.11", 
     "zizaco/entrust": "dev-laravel-5" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~4.0", 
     "phpspec/phpspec": "~2.1" 
    }, 
    "autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "classmap": [ 
      "tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "php artisan clear-compiled", 
      "php artisan optimize" 
     ], 
     "pre-update-cmd": [ 
      "php artisan clear-compiled" 
     ], 
     "post-update-cmd": [ 
      "php artisan optimize" 
     ], 
     "post-root-package-install": [ 
      "php -r \"copy('.env.example', '.env');\"" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist", 
    } 
} 

Ich habe php56 unter/usr/php/php56 und ich kann es, indem Alias, um sie auszuführen oder vollständigen Pfad eingeben. Ich habe auch einen Alias ​​darauf gemacht und danach zeigt php -v mich 5.6.15, aber wenn ich composer install laufen lasse, gibt es immer noch die gleiche obige Ausgabe.

Ich kann möglicherweise nicht die Standardversion von PHP CLI auf 5,6 oder es ist etwas mit Laravel Framework-Unterstützung auf Bluehost-Servern. Ich denke, Bluehost-Unterstützung ist weniger besorgt, weil ich einen Komponisten habe, der ein Stück Arbeit erledigen kann. Ihre Hilfe zur Lösung dieses Problems wird sehr geschätzt.

+0

Sind Sie sicher, dass Sie Abhängigkeiten auf einer Remote (wahrscheinlich Produktionsumgebung) erstellen und herunterladen möchten? Es klingt wie eine schlechte Übung. Es ist besser, ein Paket (sogar eine Zip-Datei) mit Ihrem Projekt zu erstellen und es auf einem Remove-Server bereitzustellen als es dort zu erstellen (mit Abhängigkeiten). – mkbrv

+0

@mikibrv Sie schlagen vor, dass ich meine vollständige Quelle von meinem lokalen Computer mit allen Composer bereitstellen soll Pakete installiert, die unter 'Vendor /' Verzeichnis sind? –

+1

ja. Ich denke, das ist der sicherste und beste Weg, eine Web-App (php - java - was auch immer) zu implementieren. Es ist ein Paket, das Sie bereits gebaut und getestet haben, Sie wissen, was es dort ist (irgendwie ähnlich wie ein GIT TAG). Meistens müssen Sie nicht einmal das Lieferantenverzeichnis hochladen (aber dann müssten Sie eine Versionierung wie GIT verwenden). Ich habe mir ein Skript erstellt, das einfach eine Zip aus der App erstellt - bootstrap - public - vendor Verzeichnisse und .htaccess Datei – mkbrv

Antwort

1

Sie sollten es wie folgt aus:

/usr/php/php56 composer.phar 

ich etwas ähnliches bei HostGator für composer zu tun haben, zu arbeiten.

Zu greifen composer.phar einfach php -r "readfile('https://getcomposer.org/installer');" | php ausführen.

+0

Ich habe genau das gleiche Problem wie OP. Ich habe php-5.6.17 in meinen Root-Ordner auf meinem Server hochgeladen. Wenn ich den Befehl /php-5.6.17 composer.phar ausführe, bekomme ich als Antwort "php-5.6.17 ist ein Verzeichnis". Das Gleiche gilt für den Befehl "/ usr/php/56 composer.phar", da/usr/php/php56 in meinem Fall kein gültiges Verzeichnis ist. Offensichtlich suche ich nach einer Datei und nicht nach einem Verzeichnis, aber ich bin mir nicht sicher, nach welcher Datei ich suche. Ich habe php56s, aber kein php56. Nicht nur das, aber wenn ich den Befehl mit php56 ausführe, heißt es, dass ich php-cli benutzen muss. Haben Sie irgendwelche Ideen, wie ich das beheben könnte? Vielen Dank. – Jameson

+0

Ah, hab es. Ich musste den Befehl ausführen: /usr/php/56/bin/php composer.phar installieren – Jameson

+0

im in public_html Pfad .... Wie kann ich diese Zeile ausführen '/ usr/php/php56 composer.phar' –