我有一个在 xampp 上运行的 php 项目,但我使用 Linux 创建了一个 ec2 实例,并且我在 putty 上使用他的私有 IP 访问它,因为 Web 应用程序应该只能通过 Intranet 访问。我使用 stp 来移动整个项目,一切都一样,但是一些 php 文件的作曲家给了我这个错误(我从 apache 日志中得到它)
PHP Fatal error: Uncaught Error: Failed opening required '/var/www/html/host/public_html/vendor/composer/../ezyang/htmlpurifier/library/HTMLPurifier.composer.php' (include_path='.:/usr/share/php') in /var/www/html/host/public_html/vendor/composer/autoload_real.php:41\nStack trace:\n#0 /var/www/html/host/public_html/vendor/composer/autoload_real.php(45): {closure}()\n#1 /var/www/html/host/public_html/vendor/autoload.php(25): ComposerAutoloaderInitc3b80a39a0d2307602d3e5706c8f19a8::getLoader()\n#2 /var/www/html/host/public_html/accessdata.php(18): require('...')\n#3 {main}\n thrown in /var/www/html/host/public_html/vendor/composer/autoload_real.php on line 41, referer: http://host/page1.php
我使用composer来使用phpoffice,用户应该能够上传一些excel文件,然后使用php我将它们上传到数据库
编辑:运行时
composer install
我收到这个错误
Failed to download myclabs/php-enum from dist: curl error 28 while downloading https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483: Connection timeout after 10001 ms
你有一个严重的误解,应该从一开始就消除:
所以你的作曲家婚姻肯定存在关系问题。
作曲家治疗师 Nico Haase 已经评论过,“您不需要在任何生产系统上安装 Composer”,如果您正在寻找第二意见,我同意。实际上我想说,如果你在生产系统上安装 Composer,你就会遇到麻烦、问题、破碎的心(和依赖项)。
你自己写:
我[原文如此!]从本地副本上传,我[原文如此!]在服务器上无法访问互联网
因此,使用 Composer 在本地构建供应商文件夹,然后上传整个应用程序代码(包括供应商目录)。完成。
是的,完成了。机器再次工作。
他们生活得长久而幸福。
(这可能需要阅读,因为每对夫妻的治疗都需要每个人的努力才能重新回到一起。这可能是一段令人畏惧的时刻,永远提醒你们两个将共同拥有的光明前景和未来,探索荒野的角落内联网在一起。)
composer.phar
文件上传到服务器上,请尝试通过从应用程序的根文件夹运行
composer dump-autoload
命令再次创建 autoload.php 文件,并检查其是否正常工作。
composer dump-autoload
命令再次重新生成自动加载文件,为此您不需要有互联网连接。如果您遇到类似“无法打开流:权限被拒绝”的错误,请尝试使用
sudo
运行此命令。
stp 移动整个项目从未听说过
stp
,也许您的意思是
sftp
?鉴于您的评论
i access it with the private ip with putty and the private key
,我认为
sftp
是一个安全的选择。无论如何,你的供应商文件夹中的某些内容被搞乱了,你无法在目标系统上运行 Composer,所以请转到你的开发系统,然后运行
rm -rf vendor;
composer install;
在那之后,我不知道stp
是什么,但我不相信它,我相信
rsync
,所以跑吧
rsync /path/to/project_dir/vendor user@intranet_ip:/path/to/project_dir/vendor
现在你应该有一个完整的供应商文件夹,并且PHP Fatal error: Uncaught Error: Failed opening required '/var/www/html/host/public_html/vendor/composer/..
错误应该消失了。