2016-01-19 33 views
5

Przygotowuję nowy serwer do aplikacji laravel. Zainstalowałem kompozytora i wybrałem plik php5.6.15 z mojego cpanela. Ale kiedy uruchomię polecenie php -v w terminalu, pokazuje moją aktualną wersję jako php5.2.19.konfigurowanie serwera na serwerze bluehost dla aplikacji laravel i problem z php -v

Oto mój plik php.ini na moim serwerze wykazać 5.6 Wersja

enter image description here

Wysłałem mój kod do serwera przy użyciu git. Po uruchomieniu kompilatora komend instalacyjnych daje mi ten błąd.

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]. 

Używam języka 5.1. Jeśli obniżę go do wersji 5.0, spowoduje to błędy zależności z innymi pakietami. Oto mój plik composer.json.

{ 
    "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", 
    } 
} 

mam php56 dostępne w katalogu/usr/php/php56 i mogę go uruchomić poprzez alias do niego lub po prostu wpisując pełną ścieżkę. Zrobiłem też alias do niego i po tym php -v pokazuje mi 5.6.15, ale kiedy uruchomię composer install nadal daje to samo powyższe wyjście.

Mogę nie być w stanie ustawić domyślną wersję php cli na 5.6 lub jest to coś, co ma wsparcie dla architektury laravel na serwerach bluehost. Myślę, że wsparcie dla bluehosta jest mniej zaniepokojone, ponieważ mam kompozytora, który może zrobić resztę pracy. Twoja pomoc w rozwiązaniu tego problemu jest bardzo doceniana.

+0

czy na pewno chcesz budować i pobierać zależności na zdalnym (prawdopodobnie w środowisku produkcyjnym)? To brzmi jak zła praktyka. Lepiej jest utworzyć pakiet (nawet zip) z projektem i wdrożyć go do serwera usuwania, niż go tam zbudować (z zależnościami). – mkbrv

+0

@mikibrv sugerujesz, że powinienem wdrożyć całe moje źródło z mojego komputera lokalnego ze wszystkimi kompozytorami zainstalowane pakiety, które znajdują się w katalogu 'sprzedawca /'? –

+1

tak. Domyślam się, że jest to najbezpieczniejszy i najlepszy sposób na wdrożenie aplikacji internetowej (php - java - cokolwiek). Jest to pakiet, który już zbudowałeś i przetestowałeś, wiesz co tam jest (w jakiś sposób podobny do GIT TAG). W większości przypadków nie trzeba nawet przesyłać katalogu dostawcy (ale wtedy trzeba użyć niektórych wersji, takich jak GIT). Zrobiłem sobie skrypt, który po prostu tworzy zip z aplikacji - bootstrap - publiczny - katalogi dostawców i plik .htaccess. – mkbrv

Odpowiedz

1

Należy wykonać ją tak:

/usr/php/php56 composer.phar 

muszę zrobić coś podobnego w HostGator dla composer do pracy.

Aby pobrać composer.phar po prostu uruchom php -r "readfile('https://getcomposer.org/installer');" | php.

+0

mam dokładnie taki sam problem jak OP. Przesłałem php-5.6.17 do mojego folderu głównego na moim serwerze. Kiedy uruchomię komendę /php-5.6.17 composer.phar, otrzymuję odpowiedź "php-5.6.17 to katalog". To samo, jeśli wykonuję polecenie "/ usr/php/56 composer.phar", ponieważ/usr/php/php56 nie jest prawidłowym katalogiem w moim przypadku. Oczywiście szukam pliku a nie katalogu, ale nie jestem pewien, który plik szukam. Mam php56, ale nie php56. Nie tylko to, ale kiedy wykonuję polecenie z php56, mówi, że muszę użyć php-cli. Czy macie jakieś pomysły jak mogę rozwiązać ten problem? Dziękuję Ci. – Jameson

+0

Ah, rozumiem. Musiałem uruchomić polecenie: /usr/php/56/bin/php composer.phar zainstalować – Jameson

+0

im w public_html ścieżka .... w jaki sposób mogę wykonać ten wiersz '/ usr/php/php56 composer.phar' –