apache PHP Composer在STP传输后无法在ec2 Linux示例上工作

js5cn81o  于 2023-10-23  发布在  Apache
关注(0)|答案(3)|浏览(126)

我有一个在xampp上运行的php项目,但我用Linux创建了一个ec2示例,我用他在putty上的私有ip访问它,因为web应用程序应该只能通过intranet访问。我用stp来移动整个项目,一切都是一样的,但在一些php文件的 composer 给给予我的错误(我从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

5t7ly7z5

5t7ly7z51#

你有一个严重的误解,应该从一开始就解决:

  • 如果您的机器没有互联网接入,您将无法运行Composer命令,这些命令实际上需要互联网来完成您调用它们的任务。
  • 例如,您希望在没有互联网访问的情况下运行 “composer update” 命令。
  • composer 没有奇迹,并创造了互联网接入出没有互联网接入。
  • 如果你还不明白,为什么这实际上并不奇怪,那么它一定是你对Composer以及广域网(WAN)和局域网(LAN)之间的根本区别的严重误解。
  • 最好的地方是localhost btw。你的家就是你的城堡。

所以你在 composer 婚姻中肯定有关系问题。
composer 治疗师Nico Haase已经评论说,“您不需要在任何生产系统上安装Composer”,如果您正在寻找第二种意见,我也是。我实际上会说,如果你在生产系统上安装Composer,你就是在自找麻烦,问题,心碎(和依赖)。
你自己写:
我是从本地副本上传的,我不[sic!]在服务器上具有internet访问权限
因此,请使用Composer在本地构建vendor文件夹,然后上传整个应用程序代码(包括vendor目录)。完了
是的,完成了。
机器再次工作。
他们活得很长很幸福。
(It可能需要阅读,因为每一对夫妇的治疗是与工作的每个人找到回到一起。这可能是一个令人生畏的时刻,总是提醒光明的前景和所有的未来,你们两个将在一起,共同探索内部网的狂野角落。

zazmityj

zazmityj2#

@mega.正如你提到的,你已经上传了composer.phar文件在服务器上,尝试通过运行composer dump-autoload命令从应用程序的根文件夹再次创建autoload.php文件,并检查其工作.
composer dump-autoload命令重新生成autoload文件再次,你不需要有互联网连接.
如果您遇到类似“无法打开流:Permission denied”尝试使用sudo运行此命令。

krcsximq

krcsximq3#

STP将整个项目迁移
我从来没有听说过stp,也许你的意思是sftp?考虑到你的评论i access it with the private ip with putty and the private key,我认为sftp是一个安全的赌注。
无论如何,您的vendor文件夹中的某些内容被搞砸了,您无法在目标系统上运行composer,因此请转到您的dev系统,并运行

rm -rf vendor;
composer install;

之后,idk stp是什么,但我不信任它,我信任rsync,所以运行

rsync -aP /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/..-错误应该消失了。

相关问题