Command Not Found When Executed via PHP shell_exec()

General Tech Bugs & Fixes 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

I want to execute following command on my Ubuntu server using php:

android create project --target 8 --name $fname --path ./$fname --activity MainActivity --package $fpack 2>&1

The above command is to create an Android app project. So when I enter this command on my terminal then it works fine, but when I execute it via PHP:

php
$fname = $_POST['fname'];
$fpack = $_POST['fpack'];
$email = $_POST['email'];

// Creating a new Android project.
var_dump(shell_exec("android create project --target 8 --name $fname --path ./$fname --activity MainActivity --package $fpack 2>&1"));

?>

When I run my PHP script I get the following output:

string(26) "sh: 1: android: not found "

Why it works when I enter manually in terminal (from user 'ashish' account) but not with php? my apache user and group is same (ashish). Any help will be appreciated :)

profilepic.png
manpreet 2 years ago

The question is a bit old, but for those who experience this problem can try to set the environment variables of direct on the server. PHP uses the putenv () function.

Example:// Set Variable Enviromental

$JAVA_HOME = "/usr/lib/jvm/java-8-oracle"; 
$ANDROID_HOME = "/opt/android-sdk-linux";
$PATH="$JAVA_HOME/bin:/usr/local/bin:/usr/bin:/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/build-tools/24.0.0-preview";

putenv ("JAVA_HOME = $JAVA_HOME"); 
putenv ("PATH = $PATH");

0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.