当前位置: 首页 > 面试题库 >

在浏览器中使用PHP脚本运行作曲家

朱越
2023-03-14
问题内容

想知道是否可以composer用一个小的PHP包装程序从浏览器中执行,因为我无权访问服务器的外壳程序。

不确定是否可以使用cURL做到这一点?


问题答案:

是的,您可以使用一个小的PHP包装器来运行Composer。Phar文件中提供了所有Composer源代码,因此可以提取该源代码,然后在设置InputInterface替换Composer后运行它,并期望通过命令行传递命令。

如果您这样设置目录结构:

./project  
./project/composer.json
./project/composer.lock
./project/webroot/composerExtractor.php  
./project/var/

将下面的代码放入composerExtractor.php中,然后从Web浏览器中运行它,Composer应该将所有库下载到:

./project/vendors/

以及在该目录中生成类加载器文件。

composerExtractor.php

<?php

define('EXTRACT_DIRECTORY', "../var/extractedComposer");


if (file_exists(EXTRACT_DIRECTORY.'/vendor/autoload.php') == true) {
    echo "Extracted autoload already exists. Skipping phar extraction as presumably it's already extracted.";
}
else{
    $composerPhar = new Phar("Composer.phar");
    //php.ini setting phar.readonly must be set to 0
    $composerPhar->extractTo(EXTRACT_DIRECTORY);
}

//This requires the phar to have been extracted successfully.
require_once (EXTRACT_DIRECTORY.'/vendor/autoload.php');

//Use the Composer classes
use Composer\Console\Application;
use Composer\Command\UpdateCommand;
use Symfony\Component\Console\Input\ArrayInput;

// change out of the webroot so that the vendors file is not created in
// a place that will be visible to the intahwebz
chdir('../');

//Create the commands
$input = new ArrayInput(array('command' => 'update'));

//Create the application and run it with the commands
$application = new Application();
$application->run($input);

?>

尽管这是可行的,但这不是一个好主意,但是如果您不能使用允许您使用ssh访问权限的主机,则可能有必要。

我强烈建议至少为您自己或您的办公室获取一个静态IP地址,然后限制对您自己IP的访问,以及可能在服务器上运行该脚本后删除此脚本,以防止再次意外运行。



 类似资料:
  • 虽然 Selenium IDE 只能运行在火狐浏览器上,但是 Selenium IDE 开发的测试案例却可以运行在其他浏览器上。使用一个简单的命令行接口来调用 Selenium RC 服务器。这个话题在Selenium RC 运行 Selenese 测试部分章节有介绍。-htmlSuite 命令行选项是跟这个特定功能相关的。

  • 我有一个有很多功能的项目,我想在不同的浏览器中并行运行一个测试,使用cucumber jvm插件 在我的POM里。XML i添加了cucumber jvm和maver surefire两个插件 我创建runnerClass并添加: 现在,我无法运行测试,如何使用cucumber jvm或selenium网格并行运行浏览器中的不同功能

  • Mocha在浏览器中运行。每个版本的Mocha都将拥有新版本./mocha.js并./mocha.css在浏览器中使用。 特定于浏览器的方法 以下方法仅在浏览器上下文中起作用: mocha.allowUncaught() :如果被调用,错误处理程序将不会吸收未捕获的错误。 典型的设置可能类似于下面,我们呼吁mocha.setup('bdd')使用BDD加载测试脚本,运行之前的界面onload与mo

  • 问题内容: 我正在尝试创建用于设置Docker容器的Shell脚本。我的脚本文件如下所示: 运行此脚本文件将在新调用的bash中运行容器。 现在,我需要运行一个脚本文件(test.sh),该文件已经位于上述给定的shell脚本的容器内(例如:cd /path/to/test.sh && ./test.sh),该怎么做? 问题答案: 您可以使用以下命令在正在运行的容器中运行命令: 并从bash会话运

  • 问题内容: 我有一个C ++程序,需要从PHP脚本中获取数据,对其进行处理,然后将数据返回给我的PHP脚本。 如何将值从PHP传递到C ++? 您如何运行C ++脚本?您必须先对其进行一些编译吗? 您如何从C ++脚本中获取值? 问题答案: 1。 如何将值从PHP传递到C ++? 回答: 在php文件中,您可以使用 exec 函数来执行C ++二进制文件。例: 2。 您如何运行C ++脚本?您必须

  • 我有一个selenium代码,它在Windows 7 for Safari浏览器上成功运行,但当我在MAc机器上运行Safari Browser中的类似代码时。 但我犯了一个错误。它正在打开新的Safari浏览器,但没有点击URL。我的代码是:= 我也浏览了官方网站,但是也没有用。 我得到的错误是:-线程“main”<code>org.openqa.selenium.remote中出现异常。无法访