Please whitelist cPanel in your adblocker so that you’re able to see our version release promotions, thanks!

The Community Forums

Interact with an entire community of cPanel & WHM users!

Server Software Clean-up

Discussion in 'Workarounds and Optimization' started by David Colter, Feb 11, 2019.

Tags:
  1. David Colter

    David Colter Active Member

    Joined:
    Jun 30, 2016
    Messages:
    29
    Likes Received:
    1
    Trophy Points:
    8
    Location:
    USA
    cPanel Access Level:
    Root Administrator
    This question is asked to gain understanding and find the answer for 'clean-up' (aka organization). File this under Server Maintenance.

    It seems sometimes that servers will become cluttered over time. Recently, I discovered that there are four versions of curl on the server. Thankfully, recent versions of curl and PHP are available (and actively updated) under EA-4.

    Firstly, the server is running beautifully with EA-4. These recent versions are available via HTTP and cron - when cron is run with something like: /usr/local/bin/ea-php71.

    When I recently checked whereis php and whereis curl, I saw this jumble ...

    Code:
    root@vps [~]# whereis php
    php: /usr/bin/php /etc/php.ini /usr/local/bin/php /usr/local/lib/php.ini,v /usr/local/lib/php.ini /usr/local/lib/php
    
    root@vps [~]# whereis curl
    curl: /usr/bin/curl /usr/local/bin/curl /opt/curlssl/bin/curl /usr/share/man/man1/curl.1.gz
    
    and when I followed some of these, the output was:

    Code:
    root@vps [~]# /usr/bin/php -v
    PHP 7.1.26 (cgi-fcgi) (built: Feb  5 2019 02:28:26)
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    
    root@vps [~]# /usr/local/bin/php -v
    PHP 7.1.26 (cli) (built: Feb  5 2019 02:28:06) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    
    root@vps [~]# /usr/local/lib/php -v
    -bash: /usr/local/lib/php: is a directory
    
    OK. PHP looks like it has been aliased to the updating EA4 version. That's good news.

    But, when I checked on curl (which I use a lot), three older versions appeared.

    Code:
    root@vps [~]# /usr/bin/curl -V
    curl 7.48.0 (x86_64-redhat-linux-gnu) libcurl/7.48.0 OpenSSL/1.0.1e zlib/1.2.3 c-ares/1.10.0 libidn/1.18 libssh2/1.4.2
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets Metalink
    
    root@vps [~]# /usr/local/bin/curl -V
    curl 7.50.3 (x86_64-pc-linux-gnu) libcurl/7.50.3 OpenSSL/1.0.2j zlib/1.2.8 libidn/1.18 nghttp2/1.15.0
    Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets
    
    root@vps [~]# /opt/curlssl/bin/curl -V
    curl 7.24.0 (x86_64-unknown-linux-gnu) libcurl/7.24.0 OpenSSL/1.0.0 zlib/1.2.3 libidn/1.18
    Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp
    Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz
    
    When I checked /usr/bin, this was the (abbreviated) output

    Code:
    root@vps [/usr/bin]# ls -l
    ...
      -rwxr-xr-x  1 root root    171888 Mar 29  2016 curl*
    ...
    lrwxrwxrwx  1 root root            41 Feb  7 04:12 ea-php70 -> /opt/cpanel/ea-php70/root/usr/bin/php-cgi*
    lrwxrwxrwx  1 root root            38 Feb  7 04:12 ea-php70-pear -> /opt/cpanel/ea-php70/root/usr/bin/pear*
    lrwxrwxrwx  1 root root            38 Feb  7 04:12 ea-php70-pecl -> /opt/cpanel/ea-php70/root/usr/bin/pecl*
    lrwxrwxrwx  1 root root            41 Feb  7 04:12 ea-php71 -> /opt/cpanel/ea-php71/root/usr/bin/php-cgi*
    lrwxrwxrwx  1 root root            38 Feb  7 04:12 ea-php71-pear -> /opt/cpanel/ea-php71/root/usr/bin/pear*
    lrwxrwxrwx  1 root root            38 Feb  7 04:12 ea-php71-pecl -> /opt/cpanel/ea-php71/root/usr/bin/pecl*
    lrwxrwxrwx  1 root root            41 Feb  7 04:12 ea-php72 -> /opt/cpanel/ea-php72/root/usr/bin/php-cgi*
    lrwxrwxrwx  1 root root            38 Feb  7 04:12 ea-php72-pear -> /opt/cpanel/ea-php72/root/usr/bin/pear*
    lrwxrwxrwx  1 root root            38 Feb  7 04:12 ea-php72-pecl -> /opt/cpanel/ea-php72/root/usr/bin/pecl*
    ...
     -rwxr-xr-x  1 root root           937 Jan 29 21:06 php*
    lrwxrwxrwx  1 root root            12 Apr 21  2016 php5-cgi -> /usr/bin/php*
    lrwxrwxrwx  1 root root            18 Apr 21  2016 php5-cli -> /usr/local/bin/php*
    lrwxrwxrwx  1 root root            18 Apr 21  2016 php-cli -> /usr/local/bin/php*
    lrwxrwxrwx  1 root root            25 Apr 21  2016 php-config -> /usr/local/bin/php-config
    
    (... omitting the same from /usr/local/bin for brevity)

    This tells me that PHP (and, I think the curl it contains) has been aliased to /opt/cpanel/ea-php71/root/usr/bin/php-cgi*. Great! This is the PHP I want HTTP and cron to have available.

    Questions:

    1. Does the server need, the unaliased php*, php5-cgi, php5-cli, php-config and curl* contained in /usr/bin?

    2. If the answer to 1 is No, is there another way to remove these (especially curl) than just deleting them?

    3. The 4th curl version reports 7.63.0. Where is this curl version, and is it possible to alias the other whereis curl locations to that folder?

    I am asking this question, because I want a clear understanding of which curl is being used in different circumstances. At this moment, if the server is accessed via command line, an old version of curl is there - waiting to answer.

    I did clean up some php5.5 and php5.6 directories after upgrading to EA3 and then EA4, but it seems that remnants of the original system will always hang around, unless a clean up is performed.

    David
     
    #1 David Colter, Feb 11, 2019
    Last edited: Feb 11, 2019
  2. David Colter

    David Colter Active Member

    Joined:
    Jun 30, 2016
    Messages:
    29
    Likes Received:
    1
    Trophy Points:
    8
    Location:
    USA
    cPanel Access Level:
    Root Administrator
    Is the first part of question 3 answered with:
    Code:
    root@vps [/opt/cpanel/libcurl/bin]# /opt/cpanel/libcurl/bin/curl -V
    curl 7.63.0 (x86_64-redhat-linux-gnu) libcurl/7.63.0 OpenSSL/1.0.2q zlib/1.2.3 brotli/1.0.2 libssh2/1.4.2 nghttp2/1.32.0
    Release-Date: 2018-12-12
    
     
  3. cPanelMichael

    cPanelMichael Technical Support Community Manager Staff Member

    Joined:
    Apr 11, 2011
    Messages:
    47,009
    Likes Received:
    2,123
    Trophy Points:
    363
    cPanel Access Level:
    Root Administrator
    Twitter:
    Hello @David Colter,

    Deleting any of the PHP binaries or links to them is not advised due to their use with the ea-php-cli package.The following documents explain the purpose of the PHP binaries and their relation to the ea-php-cli package:

    PHP Home - EasyApache 4 - cPanel Documentation
    EasyApache 4 and the ea-php-cli Package - EasyApache 4 - cPanel Documentation

    As far as cURL, the /usr/bin/curl location does not link to the ea-libcurl installation. It's a separate binary that comes from your OS:

    Code:
    # /usr/bin/curl -V
    curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.36 zlib/1.2.7 libidn/1.28 libssh2/1.4.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
    Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
    
    # /opt/cpanel/libcurl/bin/curl -V
    curl 7.64.0 (x86_64-redhat-linux-gnu) libcurl/7.64.0 OpenSSL/1.0.2q zlib/1.2.7 brotli/1.0.2 libssh2/1.4.3 nghttp2/1.32.0
    Release-Date: 2019-02-06
    Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz brotli TLS-SRP HTTP2 UnixSockets HTTPS-proxy 
    The ea-libcurl RPM is utilized by default with PHP, whereas the OS-provided cURL is available for uses of your choosing outside of PHP.

    Thank you.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. David Colter

    David Colter Active Member

    Joined:
    Jun 30, 2016
    Messages:
    29
    Likes Received:
    1
    Trophy Points:
    8
    Location:
    USA
    cPanel Access Level:
    Root Administrator
    Thank you for your reply @cPanelMichael. I realize the initial post was lengthy and have learned from another thread that some cPanel functions may require an older version of php. However, your reply did not address the main purpose for posting the question.

    I see your response regarding curl - protect the binary /opt/cpanel/libcurl/bin/curl and
    which leads me to understand 3 of the "old to very old" versions of curl can be safely removed. Do you agree?

    The server has several older versions of PHP that are no longer needed, and since the server has been upgraded to EA4, it is desired that all accounts use the EA4 PHP versions 7.0, 7.1 or 7.2. The /usr/bin directory contains (among other binaries):
    Code:
    root@vps [/usr/bin]# ls -l
    ...
     -rwxr-xr-x  1 root root           937 Jan 29 21:06 php*
    lrwxrwxrwx  1 root root            12 Apr 21  2016 php5-cgi -> /usr/bin/php*
    lrwxrwxrwx  1 root root            18 Apr 21  2016 php5-cli -> /usr/local/bin/php*
    lrwxrwxrwx  1 root root            18 Apr 21  2016 php-cli -> /usr/local/bin/php*
    lrwxrwxrwx  1 root root            25 Apr 21  2016 php-config -> /usr/local/bin/php-config
    ...
    
    Are all of these necessary?

    Short of wiping and reinstalling the server's OS, is there guidance for housekeeping (cleaning) on a cPanel provisioned server?

    David
     
    #4 David Colter, Feb 16, 2019
    Last edited: Feb 16, 2019
  5. cPanelMichael

    cPanelMichael Technical Support Community Manager Staff Member

    Joined:
    Apr 11, 2011
    Messages:
    47,009
    Likes Received:
    2,123
    Trophy Points:
    363
    cPanel Access Level:
    Root Administrator
    Twitter:
    Hello @David Colter,

    I think it's a better approach if we access the affected system via a support ticket before confirming it's safe to delete those binaries. If you open the ticket and post the ticket number here, I'll ensure this thread is linked to it.

    Thank you.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
Loading...

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice