Assume we need to permanently run a PHP CLI script, it need to run as a daemon/service. It will support service start
stop
commands. Okay lets start.
Create a daemon/service called:
sudo touch /etc/init.d/myPHPservice
Open created daemon/service:
sudo nano /etc/init.d/myPHPservice
And paste following code
#! /bin/sh
# Installation
# - Paste these to /etc/init.d/myPHPservice
# - chmod +x this
#
# Starting and stopping
# - Start: service myPHPservice start OR /etc/init.d/myPHPservice start
# - Stop: service myPHPservice stop OR /etc/init.d/myPHPservice stop
NAME=myPHPservice
DESC="Daemon for PHP CLI script"
PIDFILE="/var/run/${NAME}.pid"
LOGFILE="/var/log/${NAME}.log"
DAEMON="/usr/bin/php"
DAEMON_OPTS="/path/to/your/php/script.php"
START_OPTS="--start --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ${DAEMON_OPTS}"
STOP_OPTS="--stop --pidfile ${PIDFILE}"
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting ${DESC}: "
start-stop-daemon $START_OPTS >> $LOGFILE
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon $STOP_OPTS
echo "$NAME."
rm -f $PIDFILE
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon $STOP_OPTS
sleep 1
start-stop-daemon $START_OPTS >> $LOGFILE
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
Next, make it executable by running
chmod +x /etc/init.d/myPHPservice
Change NAME
, DESCRIPTION
, DAEMON
, and DAEMON_OPTS
to reflect your setup.
Once done you can start the service by running /etc/init.d/myPHPservice
start and stop it by running /etc/init.d/myservice stop
. Restarting is also possible by running /etc/init.d/myservice restart
.
Verify the running of the daemon by checking the contents of the created PID file: cat /var/run/myservice.pid
— It should contain a process ID.
You can run PHP Script from Linux terminal without the need of any browser. Run the PHP file located at /var/www/html/infophp.php
in Linux Command Line as
php -f /var/www/html/infophp.php | less
Or
php -f /var/www/html/infophp.php
Here option -f
parse and execute the file that follows the command.
You can run a PHP script simply as, if it is a shell script. First Create a PHP sample script in your current working directory.
echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php
Notice we used #!/usr/bin/php
in the first line of this PHP script as we use to do in shell script (/bin/bash)
. The first line #!/usr/bin/php
tells the Linux Command-Line to parse this script file to PHP Interpreter.
Second make it executable as
chmod 755 phpscript.php
and run it as,
./phpscript.php