Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drush 8 ERROR: can't find php yet comparable Drush 7 is clean #2413

Open
karunadev opened this issue Oct 26, 2016 · 0 comments
Open

Drush 8 ERROR: can't find php yet comparable Drush 7 is clean #2413

karunadev opened this issue Oct 26, 2016 · 0 comments

Comments

@karunadev
Copy link

karunadev commented Oct 26, 2016

Initially here I asked for help for a Drush 8 install giving me ERROR: can't find php : http://drupal.stackexchange.com/questions/218569/drush-8-error-cant-find-php-yet-comparable-drush-7-is-clean

Since then I have edited it, with a comparison of Drush 7. It appears to be that documented Drush 7 functionality is not present in Drush 8.

On a new machine with CPanel Easy Apache 4 with Drush 8:

Installed Drush for all users via Composer as per http://www.drush.org/en/master/install-alternative/

[/usr/local/bin]# drush
ERROR: can't find php.

In /usr/local/bin/error_log and /opt/drush-8.x/vendor/drush/drush/error_log:

[23-Oct-2016 03:03:23 UTC] PHP Warning:  exec() has been disabled for security reasons in /opt/drush-8.x/vendor/drush/drush/includes/startup.inc on line 32
[23-Oct-2016 03:03:23 UTC] PHP Warning:  Invalid argument supplied for foreach() in /opt/drush-8.x/vendor/drush/drush/includes/startup.inc on line 33

Tried setting up drush.ini in various locations including both /etc/drush and /opt/drush-8.x/vendor/drush/drush/:

/etc/drush/drush.ini contains and /opt/drush-8.x/vendor/drush/drush/drush.ini both contain:

disable_functions =

What I am finding on 'drush/includes/startup.inc' line 32 is an exec() that helps to determine the environment; which appears not to take into account drush.ini etc.

I can get Drush 8 to run, only when I alter in the CPanel UI the php.ini to remove exec from the disable_functions list. In which case I receive:

[~]# drush status
 PHP executable         :  /usr/bin/php-cli
 PHP configuration      :  /opt/cpanel/ea-php70/root/etc/php.ini /opt/drush-8.x/vendor/drush/drush/drush.ini /etc/drush/drush.ini
 PHP OS                 :  Linux
 Drush script           :  /opt/drush-8.x/vendor/drush/drush/drush.php
 Drush version          :  8.1.6
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :

What is odd is that drush status reports php.ini to be /opt/cpanel/ea-php70/root/etc/php.ini, however this file has

disable_functions =

In Easy Apache 4, the actual php.ini that is updated when the UI is updated is:

[/]# ls -la ./opt/cpanel/ea-php70/root/etc/php.d/local.ini
-rw-r--r-- 1 root root 60580 Oct 22 22:43 ./opt/cpanel/ea-php70/root/etc/php.d/local.ini

Out of curiosity I have tried the same approach with an older server using the same instructions. I had to use the older Drush 7.* version. This worked just fine.

-bash-4.1# drush status
exec() has been disabled for security reasons preflight.inc:296      [warning]
exec() has been disabled for security reasons preflight.inc:296        [warning]
exec() has been disabled for security reasons preflight.inc:296        [warning]
 PHP executable         :  /usr/bin/php-cli
 PHP configuration      :  /usr/local/lib/php.ini
 PHP OS                 :  Linux
 Drush script           :  /opt/drush-7.x/vendor/drush/drush/drush.php
 Drush version          :  7.4.0
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :

Instead of "ERROR: can't find php.", all it reports is the exec() warning.

With Drush 7, implementing the example.drush.ini file and uncommenting the 'disable_functions =' results in a clean status for Drush 7.

-bash-4.1# drush status
 PHP executable         :  /usr/bin/php-cli
 PHP configuration      :  /usr/local/lib/php.ini /opt/drush-7.x/vendor/drush/drush/drush.ini
 PHP OS                 :  Linux
 Drush script           :  /opt/drush-7.x/vendor/drush/drush/drush.php
 Drush version          :  7.4.0
 Drush temp directory   :  /tmp
 Drush configuration    :
 Drush alias files      :

It looks to me like Drush 8 is less functional than Drush 7.

I would like to run Drush 8 while maintaining disable_functions = show_source, system, passthru, exec, popen, proc_open for my webserver php.ini configuration; with Drush 8.

Kind Regards
Dave

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant