0

By default phpsh uses system's default PHP, my system it's /usr/local/bin/php, which is php 5.2. How can I run phpsh with my custom php path — /srv/bin/php?

Hong Truong
  • 821
  • 7
  • 11

1 Answers1

1

It's not supported by default, but you can quickly add.

It by applying this patch to your phpsh.py in the src folder:

--- phpsh.py     2011-05-13 18:16:32.000000000 -0400
+++ phpsh.py    2013-12-05 14:50:11.906673382 -0500
@@ -253,6 +253,7 @@
     def __init__(self):
         self.config = ConfigParser.RawConfigParser({
             "UndefinedFunctionCheck": "yes",
+            "PathToBinary"    : None,
             "Xdebug"          : None,
             "DebugClient"     : "emacs",
             "ClientTimeout"   : 60,
@@ -388,6 +389,8 @@
         except Exception, msg:
            self.print_error("Failed to load config file, using default "\
                             "settings: " + str(msg))
+       if self.config.get_option("General", "PathToBinary"):
+           os.environ['PATH'] = self.config.get_option("General", "PathToBinary") + ':' + os.environ['PATH']
         if self.with_xdebug:
             xdebug = self.config.get_option("Debugging", "Xdebug")
             if xdebug and xdebug != "yes":

If you want to modify an already installed version, find your pythons site-pages folder and apply the patch on both init.py and phpsh.py in that folder.

This will add a new configuration variable so in phpsh/config (in /etc/phpsh/config if installed as root, or ~/.phpsh/config if user). In there you can specify the path to your php binary

PathToBinary: /srv/bin

This is just the path where the binary should be found, not the path binary itself, i.e. /srv/bin/php will not work.

Tsanyo Tsanev
  • 1,269
  • 10
  • 11