phpcommand-line

Running PHP script from the command line


How can I run a PHP script from the command line using the PHP interpreter which is used to parse web scripts?

I have a phpinfo.php file which is accessed from the web shows that German is installed. However, if I run the phpinfo.php from the command line using - php phpinfo.php and grep for German, I don't find it. So both PHP files are different. I need to run a script which the php on which German is installed.

How can I do this?


Solution

  • You should check your server configuration files. Look for lines that start with LoadModule php... There probably are configuration files/directories named mods or something like that. Start from there.

    You could also check output from php -r 'phpinfo();' | grep php and compare lines to phpinfo(); from web server.

    To run php interactively:

    (So you can paste/write code in the console.)

    php -a
    

    To make it parse a file and output to the console:

    php -f file.php
    

    Parse a file and output to another file:

    php -f file.php > results.html
    

    Do you need something else?

    To run only a small part, one line or like, you can use:

    php -r '$x = "Hello World"; echo "$x\n";'
    

    If you are running Linux then do man php at the console.

    If you need/want to run PHP through fpm (FastCGI Process Manager), use cli fcgi:

    SCRIPT_NAME="file.php" SCRIPT_FILENAME="file.php" REQUEST_METHOD="GET" cgi-fcgi -bind -connect "/var/run/php-fpm/php-fpm.sock"
    

    Where /var/run/php-fpm/php-fpm.sock is your php-fpm socket file.