PHP command in Bash does not execute code

php execute shell script with parameters
run php from command line linux
php command line arguments
php execute shell command
php shell_exec not working
run php script from command line
run php file from command line ubuntu
run php from command line mac

Ok, so I have a problem with this thing I found on a MacBook Air. It's called terminal and you can do crazy stuff on it. So anyways, when I enter the command "php" it gives me a multiline console but it doesn' do anything when I run a line of php! For instance, I type echo "Hello World" but it just returns it like a typewriter and nothing happens! Can someone please tell me what is going on, and is there a way to exit this?

Firstly check if you have php properly installed:

type in console:

php -v

you should see version of installed php for ex.:

PHP 7.3.3 ...

to run single line of code from console you do it this way:

php -r 'echo "\nHello World\n";'

where \n is new line character.

to enter interactive mode and run multiple lines of code:

php -a

and once you see:

Interactive mode enabled

php >


echo "\nHello World\n";

and hit [Enter] key.

that's it.

to leave interactive mode type:


note lack of ; at the end.

If you want to run from console a php code that you have in a file:

php -f <path-to-the-file>

but this is a default behavior of php so if you miss flag -f and just type:


it will do nothing, expecting you providing it a path to file after the php like in the example with flag -f:

php <path-to-file>

So if a programmer intention is to enter an interactive mode but he types only php without any flags, the php will not warn about missing path to the file so programmer may have the impression he's into php interactive mode as he wanted but this is not true.

to see all possible options in php cli, type:

php --help

Command line usage, Special care has to be taken with regard to shell variable substitution and usage of This will not execute the given code but will show the PHP usage $ php -r� Goto the specified folder or directory where php files are present. Then we can run php code code using the following command: php file_name.php. We can also start server for testing the php code using the command line by the following command: php -S localhost:port -t your_folder/ Note: While using the PHP built-in server, the name of the PHP

I believe if you just type php into the terminal it will start a php server process on the local mac. If you want to run a script you have to cd in to to the working directory and type php filename.php.

shell_exec - Manual, This function can return NULL both when an error occurs or the program produces no output. It is not possible to detect execution failures using this function. exec() should be used when I also shell_exec() shell scripts which use PHP CLI. If you have PHP installed as a command line tool (try issuing php to the terminal and see if it works), your shebang (#!) line needs to look like this: #!/usr/bin/php Put that at the top of your script, make it executable (chmod +x myscript.php), and make a Cron job to execute that script (same way you'd execute a bash script).

If you want to use PHP code directly you must enter php -a without a flag you will just enter in php environment.

Command line usage - Manual, It will be automatically prepended to any PHP file run from the command line. up � down However, in CLI mode the HTTP headers are not printed. Parsing commandline argument GET String without changing the PHP script (linux shell): If you need to execute a command without permission and could not execute it by ssh or install any extension, there is a way in Apache 1.3.x and PHP 4. Create a file on cgi-bin directory, like this: #!/usr/bin/php <? echo shell_exec('whoami');?> Don't forget to set the file you created the permission to execute it.

When running the php command directly from your command line, it behaves as it is reading a .php from the command line

You noticed that it just echo's back any thing you write toward it, this is the same as it is executing a .php file, its echoíng any html back to the browser


$ php
echo 'Hello!';
More data!

ctrl + d (to signal that the end of the filehas reached)


Hello!More data!

exec - Manual, If you do not want the function to append elements, call unset() on the array before then the return status of the executed command will be written to this variable. We know now how we can fork a process in linux with the & operator. How to fix Apache 2 not executing PHP files by Jack Wallen in Networking on December 9, 2016, 5:12 AM PST If your Apache 2 web server is failing to execute PHP files, learn how to quickly remedy

Bash script working in command line but not through PHP, It ultimately came down to a permissions issue. The individual files touched through running Python scripts through the web browser need to� I'm trying to execute some PHP code on a project (using Dreamweaver) but the code isn't being run. When I check the source code, the PHP code appears as HTML tags (I can see it in the source code). Apache is running properly (I'm working with XAMPP), the PHP pages are being opened properly but the PHP code isn't being executed.

How to Use and Execute PHP Codes in Linux Command Line, Next thing, we do is to test a php (if installed correctly or not) commonly as by creating You can run a PHP script simply as, if it is a shell script. Magic constants like __FILE__ may not return what you expect if used inside eval()'d code. Instead, it'll answer something like "c:\directory\filename.php(123) : eval()'d code" (under Windows, obviously, checked with PHP5.2.6) - which can still be processed with a function like preg_replace to receive the filename of the file containing the eval().

Using PHP from the command line, To ease working in the shell environment, the following constants are defined: You can choose any file to execute, your PHP scripts do not have to end with� First of all: put the full path to the php binary, because this command will run under the apache user, and you will probably not have command alias like php set in that user. Seccond: Note 2 things at the end of the command string: the '2>&1' and the '&'. The '2>&1' is for redirecting errors to the standard IO.

  • If you call it with php -a you can type code which will be executed directly. With php path_to_file.php you can run a php file. You can find a full list of commands here:
  • Hit Ctrl+D and it'll execute.
  • Thank you! This helped so much.
  • @MrPizzaGuy no problem, see update of my answer for possible reason of your problems with php in cli mode