Apache не выполняет бродячие команды правильно через Bash

Хорошо, так что это сбивает с толку. У меня есть сервер Apache, который выполняет сценарии Bash через PHP на моем Ubuntu 18.04. Мне нужно выполнить сценарии как локальный пользователь, чтобы vagrant работал, поэтому я изменил конфигурацию apache на того пользователя, которого хотел. Когда я выполняю команду в оболочке с помощью:

"php -f phptest.php", я получаю то, что я хочу, чтобы вывод был похож:

PHP Code Working, Linux scripting: <pre>-START OF BASH-
Current machine states: HOSTNAME1 running (virtualbox) HOSTNAME2 poweroff (virtualbox) This environment represents multiple VMs. The VMs are all listed above with their current state. For more information about a specific VM, run `vagrant status NAME`.
-END OF BASH-
</pre>

Однако, когда я запускаю phptest .php из веб-браузера Я получаю такой вывод:

PHP Code Working, Linux scripting:

-START OF BASH-
/opt/vagrant/embedded/gems/2.0.3/gems/vagrant-2.0.3/lib/vagrant/shared_helpers.rb:109:in `expand_path': couldn't find login name -- expanding `~' (ArgumentError) from /opt/vagrant/embedded/gems/2.0.3/gems/vagrant-2.0.3/lib/vagrant/shared_helpers.rb:109:in `expand_path' from /opt/vagrant/embedded/gems/2.0.3/gems/vagrant-2.0.3/lib/vagrant/shared_helpers.rb:109:in `user_data_path' from /opt/vagrant/embedded/gems/2.0.3/gems/vagrant-2.0.3/lib/vagrant/plugin/manager.rb:16:in `user_plugins_file' from /opt/vagrant/embedded/gems/2.0.3/gems/vagrant-2.0.3/lib/vagrant/plugin/manager.rb:27:in `instance' from /opt/vagrant/embedded/gems/2.0.3/gems/vagrant-2.0.3/lib/vagrant.rb:265:in `' from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `require' from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require' from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:39:in `require' from /opt/vagrant/embedded/gems/2.0.3/gems/vagrant-2.0.3/bin/vagrant:75:in `
'
-END OF BASH-

Я понятия не имею, если это проблема с разрешениями или что, но кажется, что PHP-код работает нормально, учитывая, как я получаю желаемый вывод при выполнении его из оболочки. Это наводит меня на мысль, что на стороне apache есть что-то, что вызывает этот вывод, когда скрипт выполняется из веб-браузера.

Вот мои сценарии:

phptest.php

<?php
echo "PHP Code Working, ";
echo "Linux scripting: ";

$old_path = getcwd();
chdir('/home/luke/metasploitable3-master/');

$ls = shell_exec('bash phptest.sh');
chdir($old_path);

echo "<pre>$ls</pre>";

?>

phptest.sh

echo "-START OF BASH-"

vagrant status &> ./out.txt

echo $(cat ./out.txt)

echo "-END OF BASH-"
0
задан 13 May 2019 в 06:33

0 ответов

Другие вопросы по тегам:

Похожие вопросы: