2017-07-06 72 views
0

我的客戶端使用Apache PHP版本5.6.30的服務器,但CLI PHP版本是5.4.16。他們不能更改CLI PHP版本。如何使用PHP CLI版本5.4.16將Laravel 5.4項目推送到服務器?

我使用Git & & SSH將項目從本地計算機推送到服務器。但由於CLI PHP版本是5.4.16,我不能運行

composer install 

我會得到這些消息

Problem 1 
    - This package requires php >=5.6.4 but your PHP version (5.4.16) does not satisfy that requirement. 
    Problem 2 
    - symfony/var-dumper v3.3.2 requires php >=5.5.9 -> your PHP version (5.4.16) does not satisfy that requirement. 
    - symfony/var-dumper v3.3.2 requires php >=5.5.9 -> your PHP version (5.4.16) does not satisfy that requirement. 
    - Installation request for symfony/var-dumper v3.3.2 -> satisfiable by symfony/var-dumper[v3.3.2]. 

的phpinfo()函數告訴PHP的版本是30年6月5日。所以我猜這部分應該沒問題。但我不知道要解決這種情況。

當我去的網站,我收到以下錯誤消息:

Warning: require(/var/www/vhosts/example.com/httpdocs/vendor/composer/ClassLoader.php): failed to open stream: No such file or directory in /var/www/vhosts/example.com/httpdocs/vendor/composer/autoload_real.php on line 12 

Warning: require(/var/www/vhosts/example.com/httpdocs/vendor/composer/ClassLoader.php): failed to open stream: No such file or directory in /var/www/vhosts/example.com/httpdocs/vendor/composer/autoload_real.php on line 12 

Fatal error: require(): Failed opening required '/var/www/vhosts/example.com/httpdocs/vendor/composer/ClassLoader.php' (include_path='.:/opt/plesk/php/5.6/share/pear') in /var/www/vhosts/example.com/httpdocs/vendor/composer/autoload_real.php on line 12 
+0

'/path/to/php-5.6 /路徑/到/作曲家install' – Devon

+1

如果從@Devon建議不工作,你總是可以嘗試欺騙和直接向上拷貝到服務器運行PHP cli二進制。當然,這本身可以是一項壯舉。 –

+0

@ceejayoz PHP 5.4在CentOS/RHEL7將獲得另一個5年以上的安全更新,然而,的Plesk可以安裝其他版本旁邊的系統版本是什麼OP所指的。 – Devon

回答

2

由於您使用的Plesk,你應該找到的/ opt/Plesk中/ PHP的其他PHP版本的二進制。

/opt/plesk/php/5.6/bin/php /usr/bin/composer install 
+0

其實這個工程。依賴關係得到安裝,直到我跑進此錯誤消息:PHP人員優化 PHP解析錯誤:語法錯誤,意想不到的「類」(T_CLASS),期望標識符(T_STRING)或可變(T_VARIABLE)或「{」或「$」 /上線31 PHP腳本優化工匠處理後安裝-CMD事件無功/網絡/虛擬主機/ example.com/httpdocs資料/工匠與返回錯誤代碼255好像Laravel內部運行「PHP工匠」不指向正確的PHP版本。 –

+0

@JoshuaLeung沒錯,就是從composer.json,您可以修改或只是手動運行後,'/opt/plesk/php/5.6/bin/php artisan'命令。 – Devon

0

雖然不理想,你也可以沿着服務器推動整個供應商的文件夾。所有composer install確實是創建供應商文件夾。如果您上傳了整個項目文件夾,包括供應商,那麼您將能夠在服務器上運行它,而無需運行作曲家。只要網絡版本滿足您的最低要求,那麼這意味着您應該能夠有效地忽略客戶端版本。

話雖這麼說,你再來看,如果你需要在命令行中運行任何任務,遇到這個問題。