在共享主机上安装单个Composer软件包的建议

时间:2018-11-16 08:30:46

标签: php laravel composer-php

我们有一个Web应用程序运行在使用Laravel构建的共享主机帐户上。现在,我们需要实现一个付款网关,该付款网关需要SDK的供应商软件包。但是,如前所述,作曲家完全不支持当前的托管公司。

为使Laravel在共享主机上运行而采取的步骤:

  • 我们首先在开发计算机上本地开发了应用程序
  • 添加了版本控制并将文件推送到GitHub
  • 我们使用SSH来获取访问权限,然后对服务器进行了git pull

不幸的是,我们不得不单独打包vendor文件夹,然后将其推送到服务器上(因为在没有作曲家的情况下不建议这样做),这是当时的唯一选择。

通过一些奇迹,我们使应用程序可以正常运行。

我们现在面临的问题是,我们需要通过composer为需要实现的支付网关安装SDK软件包。

我们首先在开发机器上进行了新模块的初始设置和构建,但现在面临的问题是,仅将SDK推入vendor文件夹不起作用,它仍然抱怨找不到类文件。而且我没有办法做composer dump-autoload -o

我们甚至重新打包了vendor文件夹的更新版本,删除了应用程序中的当前文件夹,然后从GitHub上进行了另一个下拉操作,但这会引发类的所有bootstrap/app.php问题找不到。

我们确实尝试使用手动下载的composer版本强制allow_url_fopen=1,但是共享的托管PHP CLI为5.6,并且需要PHP 7.0。

很遗憾,我们陷入困境,我们将不胜感激任何建议。

2 个答案:

答案 0 :(得分:0)

尝试通过composer.json和composer.lock复制并运行在composer.json中找到的php artisan命令

答案 1 :(得分:0)

某些背景

PHP5.6已过时,PHP不再支持。因此,许多托管服务商从他们的服务器中删除了此版本(至少在德国)。一些已经开始,其他一些将在2019年初开始。根据我的经验,托管服务商的服务器上已经有较新的版本,需要在域中的配置面板中手动激活这些版本。

对于CLI PHP,您可以通过ssh到您的服务器来检查它,并键入php,然后按两次TAB。这给了我这个:

php php53 php54 php55 php56 php70 php71 php72

Composer使用默认的/usr/bin/php,它可能被符号链接到您的Web空间上的php56。但是,您也可以通过以下任何其他PHP版本调用Composer:

php71 composer.phar

如果您的托管服务商不支持任何较新的PHP版本,出于安全原因,我会要求他提供托管服务,或者尽快迁移到另一个。