Monthly Archive October 17, 2018

How to install Composer on shared servers

How to install Composer on shared servers

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on, and it will manage (install/update) them for you. Composer is not a package manager in the same sense as Yum or Apt are. Yes, it deals with ‘packages’ or libraries, but it manages them on a per-project basis, installing them in a directory (e.g., vendor) inside your project. By default, it will never install anything globally. Thus, it is a dependency manager.

To install Composer:

1. SSH access should be enabled for your hosting account with us. Follow the steps provided in this article to switch SSH access on.

2. To access your account via SSH, download and install one of the available SSH clients. You can find the list of free SSH clients here. In case you are using a Unix-based OS (Linux or OSX), you can easily run the Terminal application and connect to the server using the command:

ssh username@servername -pPORT

ssh – command for logging into the remote server
username – your cPanel username
servername– name of the server where your hosting account is located (you can find it using this tutorial)
PORT – connection port – 21098 for a Shared Hosting servers, 22 – for a VPS/Dedicated server 

3. Open your SSH client, put your domain name or the IP address of the server into the Host Name field, enter 21098 or 22 into the Port field, choose SSH as your connection type and press the Open button:

How to install Composer on shared servers
4. If you receive PuTTY Security Alert, press Yes:
How to install Composer on shared servers

When prompted, enter your cPanel username and password (when you enter the password, it is automatically hidden for security purposes):

How to install Composer on shared servers

5. Composer requires PHP 5.5+ version, so we need to check whether the needed version is set up. Type the php -v command in PuTTY (or in Terminal) and you will get the following output:

How to install Composer on shared servers

6. If you need to change PHP version, log in to your cPanel, navigate to Software and Services section >> Select PHP Version menu:

How to install Composer on shared servers

7. Select 5.5-7.2 version from the drop-down menu and then click on the Set as current button:

How to install Composer on shared servers

NOTE: Composer requires allow_url_fopen. It is enabled by default for all php versions on our shared servers. Still, you may check if it is On by going to Switch to PHP Settings in Select PHP version menu:

How to install Composer on shared servers

You can also find additional information about PHP selector here.

8. Next, navigate to the folder you want to install Composer in. In our example, we will install Composer in public_html:

cd public_html

How to install Composer on shared servers

9. Now, you will need to find or create the php.ini file and some values to it. Log in to cPanel and navigate File Manager menu:

How to install Composer on shared servers

10. Go to the folder your Composer will be installed in and create a new file named php.ini using the +File button:

How to install Composer on shared servers

11. Open it by right-clicking the created php.ini file >>  Edit:

How to install Composer on shared servers

12. Then add the following values to the file and hit the Save Changes button:

max_execution_time = 300
max_input_time = 300
memory_limit = 512M
suhosin.executor.include.whitelist = phar
detect_unicode = Off

How to install Composer on shared servers

13. When all the preparations are done, you are ready to install Composer. Open PuTTY window where you have logged into your cPanel account and fill in the following command:

php -r “readfile(‘https://getcomposer.org/installer’);” | php -c php.ini

This will execute the Composer installation:

How to install Composer on shared servers

To run composer commands use:
php composer.phar

How to install Composer on shared servers

In case you get a notification Some settings on your machine make Composer unable to work properly, make sure that the PHP version is 5.5 or higher and all the changes in the php.ini file are saved.

 

How to Connect to cPanel on Mobile Devices

How to Connect to cPanel on Mobile Devices

The cPanel app allows you to connect to your cPanel and WHM accounts on-the-go using your mobile device.

Its main features are:

  • Access to the three core cPanel services (WHM, cPanel, and WebMail)
  • Fingerprint, passcode, or pattern login to verify your identity
  • Mobile-optimized interface to let you perform hosting tasks
  • Management of multiple connections

The cPanel app is available from the Google Play Store and iOS App Store.
For the purposes of this article, we’ll describe the cPanel App for Android. The steps are the same for both systems, though the interfaces may look slightly different.

To connect with the app, you will need:

  • The cPanel/WHM username and password included in Your Hosting Welcome Guide. If you don’t have those details or don’t remember your cPanel/WHM password, a member of our Support Teamwould be happy to resend the email or help you reset your password
  • Server hostname – the name of the server on which your hosting account is located. This can be obtained either in Your Hosting Welcome Guide in the Hosting package details section or via cPanel >> Server information.

To install the app:

1. Go to the Google Play Store on your Android device, search for cPanel, and click Install:
2. Once installed, open the app. Click on the Plus button to add a new account:

3. Enter the connection details as follows:

Server information:

  • Name: any name you chose
  • Addressserver hostname (or the domain name, if it is pointing to the hosting account)
  • Service: select cPanel or WHM

Authentication:

  • Username: your cPanel/WHM username
  • Password: your cPanel/WHM password
  • EasyLogin: This allows you to use either password, PIN-code, pattern, or a fingerprint instead of your username and password for faster login.
4. Once you fill in all the details, tap Connect.

5. After the connection is established, you will be taken to the main cPanel/WHM dashboard:

 

To log into the cPanel/WHM account you added earlier, open the cPanel app and select the account name. Log in with the login method (PIN, pattern, etc.) set for the account.

From the app’s main window, you can also modify the account settings by pressing the three horizontal dots:
That’s it!

How to check PHP version and configuration

How to check PHP version and configuration

There are two ways to check PHP version set for the account. By default, we have PHP 5.6 set on our shared servers.
To check what PHP version is selected for your account go to cPanel Software section > Select PHP version menu:

How to check PHP version and configuration
You will see the current PHP version above PHP extensions:

How to check PHP version and configurationAnother way to check PHP version is PHPinfo() function, commonly used to check the current state of PHP configuration. It can also be used for debugging purposes as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.

for cPanel Basic theme:

1. Log into your cPanel account, go to Files section > File Manager menu:

How to check PHP version and configuration

2. Navigate to public_html directory, click on New File and create a phpinfo.php file:

How to check PHP version and configuration

How to check PHP version and configuration

3. Find the newly created file in the list and click on Code Editor:

How to check PHP version and configuration

4. Add the lines of the code provided below to the file and click on Save Changes:

<?php
phpinfo();
?>

How to check PHP version and configuration

5. To see the detailed information about PHP configuration of your account, open http://yourdomain.com/phpinfo.php link in your browser, replacing yourdomain.com with your main domain name.

NOTE: For security reasons, do not forget to delete the file once you check all the necessary information.

for cPanel Retro theme:

1. Log into your cPanel account, go to the section Files File Manager menu:

How to check PHP version and configuration

2. Navigate to the public_html directory, click on New File and create a phpinfo.php file:

How to check PHP version and configuration

3.Find the newly created file in the list and click on Code Editor:

How to check PHP version and configuration

4. Add the lines of the code provided below to the file and click on Save Changes:


<?php
phpinfo();
?> 

How to check PHP version and configuration

5. To see the detailed information about PHP configuration of your account, open http://yourdomain.com/phpinfo.php link in your browser, replacing yourdomain.com with your main domain name.

NOTE: 
For security reasons, do not forget to delete the file once you check all the necessary information.

That’s it!

How to edit php.ini on Shared servers

How to edit php.ini on Shared servers

This guide describes how to edit the php.ini file on shared servers (Stellar and Stellar Plus plans, as well as old Value, Professional, and Ultimate plans).

If your account is hosted on the Business server (Stellar Business or old Business SSD plans), use this guide.
With the help of PHP Selector implemented on our Shared Hosting servers, you can easily modify basic PHP settings via your cPanel >> the Software section >> Select PHP Version menu. You can find detailed guidelines here.

 

However, advanced PHP settings are missing from the Select PHP Version tool and must be manually configured in the php.ini file. You can either create the file or upload the existing one to your account.

How to create a php.ini file

How to upload and edit an existing php.ini file

How to create a php.ini file

1. Log into your cPanel account, go to the Files section >> the File Manager menu.

For cPanel Basic Theme:

 

How to edit php.ini on Shared servers

For cPanel Retro Theme:

How to edit php.ini on Shared servers

2. Navigate to the root directory of the domain, click on New File, and create a file named php.ini:

How to edit php.ini on Shared servers

3. Find the newly created file in the list, right-click, and choose Edit:

How to edit php.ini on Shared servers

4. Add the required PHP settings and click on Save Changes in the top right corner:

How to edit php.ini on Shared servers

When all updates are completed, make sure to add lsapi_phpini directive.
To check the current PHP version and configuration, refer to this article.If you wish to change values for the PHP settings (e.g., max_execution_timememory_limitpost_max_sizeupload_max_filesize, etc.), you must reset the values in the Select PHP version menu. This way, it will be possible to overwrite PHP settings using php.ini.1. Log into your cPanel account, go to Software section >> Select PHP version menu.For cPanel Basic Theme:

How to edit php.ini on Shared servers

For cPanel Retro Theme:

How to edit php.ini on Shared servers

2. Go to the Switch to PHP Options menu:

3. Reset the option in question:

4. You may then apply changes to the required value in the php.ini file:

How to upload and edit an existing php.ini file

1. Log into your cPanel account, go to the Files section >> the File Manager menu.

For cPanel Basic Theme:

For cPanel Retro Theme:

2. Navigate to the root directory of the domain name in question, upload the php.ini file that corresponds to your current PHP version. Feel free to download php.ini for different PHP versions below in the Attachments section at the end of the guide.

3. Once done, use the Extract option:

4. After that, right-click on php.ini.txt to Rename it php.ini, then another right-click to use the Edit option:

5. Here, you can use the search option and find the needed limit or value. In this example, it is upload_max_filesize.

 

6. Once all the required changes are made, click Save.

In order for the php.ini to work, add lsapi_phpini directive.

That’s it!

LSPHP directive for php.ini on shared servers

LSPHP directive for php.ini on shared servers

LSPHP  is a php handler that combines mod_lsapi+PHP.

For the settings from the chosen php.ini file to work, specific directive should be added to your .htaccess file:

lsapi_phpini /home/USER/public_html/php.ini 

NOTE: Make sure you replace USER with your cPanel username.

This option specifies which path to pass on to the PHP-interpreter and which folder to execute php.ini from.

Follow the instructions below to proceed with the setup:

for cPanel paper_lantern theme
for cPanel x3 theme

for cPanel paper_lantern theme:

1. To add these lines to .htaccess file, go to cPanel > Files section > File Manager menu:

2. Navigate to public_html directory:

3. Click on Settings in the right top corner and enable Show Hidden Files (dotfiles) in the pop-up window, that will allow you to see .htaccess file:

4. If there is no .htaccess file in the document root, you need to create it using File option:

5. Right-click on .htaccess file > Edit or use Edit option located in the toolbar:

6. Add the lines provided below into .htaccess file and Save Changes.

lsapi_phpini /home/USER/public_html/php.ini 

If you have done it right, the designed php.ini will take immediate effect.

7. If you need to load php.ini for/from subdirectory, make sure you edit ConfigPath accordingly.

for cPanel x3 theme:

1. To add these lines to the .htaccess file, go to cPanel >  the Files section > the File Manager menu:

2. Choose the Web root and Show Hidden Files options and hit Go:

3. Right-click on .htaccess file > Edit:

4. Add the lines provided below the existing rules and Save Changes.
 
lsapi_phpini /home/USER/public_html/php.ini 

If you have done it right, the designed php.ini will take immediate effect:

5. In case there is no .htaccess file in the document root, you need to create one via the New File option and edit it following the guidelines above:

That’s it!

PHP modules and extensions on shared hosting servers

PHP modules and extensions on shared hosting servers

How to change PHP version on shared servers

PHP is an open-source scripting language that is mainly used to create dynamic web pages. Its code can be embedded into HTML code which simplifies web page creation. A site designer can ‘jump’ between PHP and HTML without inserting tons of codes to output HTML. The syntax of the language was ‘borrowed’ from C, Java and Perl, though some new features were added. PHP is supported by most of web servers and operating systems.

PHP extensions are used for different purposes with only a few exceptions: Every function in PHP is included into one extension or another. A major number of these extensions are a part of standard extensions – over 400 of them. There is also a PECL repository which offers over 100 additional modules.

Here are the main reasons to use PHP modules/extensions:

  • to extend PHP functionality for a very particular usage (mathematics, statistics, geometry, etc.)
  • to have a higher performance and efficiency compared to a pure PHP implementation
  • to leverage the swiftness obtained from programming in another previously grasped language

You can check the PHP extensions and modules available on our Shared servers in the table below.

If you wish to check the PHP version and PHP extensions enabled for your account, follow this guide for more details. In case some necessary PHP extension or module from the table above is not enabled, feel free to contact our support team via Helpdesk to assist you with this question.

The PHP version (along with PHP extensions) can be changed in a different way depending on the server your account is hosted on:

  • If you have either a Shared (Stellar, Stellar Plus or old ValueProfessionalUltimate plan) or Resellerhosting plan, you may use the PHP selector menu in cPanel.
  • If you have a Stellar Business (or old Business SSD) hosting plan, you may use the PHP tweaks menu in cPanel.

Here is a brief explanation of each PHP module and extension:

apm: alternative PHP Monitor is used to collect error events and statistics and send them to one of its drivers.

ares: binding for the ares (MIT) or c-ares (CURL) library.

bcmath: for arbitrary precision mathematics, PHP offers Binary Calculator which supports numbers of any size and precision, represented as strings.

bcompiler: bcompiler enables you to encode your scripts in phpbytecode, enabling you to protect the source code. bcompiler can be used in the following situations: to create an .exe file of a PHP-GTK application (in conjunction with other software); to create closed source libraries; to provide clients with the software expiry time (prior to payment); to deliver close source applications; to use on embedded systems, where disk space is a priority. bcompiler can improve performance by about 30% when used with uncompressed bytecodes only.

big_int: big_int library provides a set of functions for calculations with arbitrary length integers and bitsets.

bloomy: this extension implements a Bloom filter, which is a space-efficient probabilistic data structure used to test whether an element is a member of a set.

bitset: bitsets manipulation library

bz2: the bzip2 functions are used to transparently read and write bzip2 (.bz2) compressed files.

bz2_filter: bzip2 compress/decompress stream filter implementation. Performs inline compression/decompression using the bzip2 algorithm on any PHP I/O stream. The data produced by this filter, while compatible with the payload portion of a bz2 file, does not include headers or tailers for full bz2 file compatibility. To achieve this format, use the compress.bzip2:// fopen wrapper built directly into PHP.

calendar: the calendar extension presents a series of functions to simplify converting between different calendar formats.

core: this is a filter which makes it possible to run arbitrary PHP code to modify the attributes of an user.

crack: this module allows you to use the CrackLib library to test the ‘strength’ of a password. The ‘strength’ of a password is tested based on its length, use of upper and lower case as well as checked against the specified CrackLib dictionary. CrackLib will also give helpful diagnostic messages that will help ‘strengthen’ the password.

ctype: the functions provided by this extension check whether a character or string falls into a certain character class according to the current locale.

curl: PHP supports libcurl, a library created by Daniel Stenberg, that allows you to connect and communicate with different types of servers with different types of protocols. libcurl currently supports http, https, ftp, gopher, telnet, dict, file, and ldap protocols. libcurl also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP-form based upload, proxies, cookies, and user+password authentication.

date: the PHP date() function is used to format a date and/or time.

dba: these functions build the foundation for accessing Berkeley DB style databases.

dbase: these functions allow you to access records stored in dBase–format (dbf) databases.

dbx: the dbx module is a database abstraction layer (db ‘X’, where ‘X’ is a supported database). The dbx functions allow you to access all supported databases using a single calling convention.

dom: the DOM extension allows you to operate on XML documents through the DOM API with PHP 5.

doublemetaphone: the Double Metaphone algorithm by Lawrence Philips allows a word to be broken down into its phonemes.

eio: this extension provides asyncronous POSIX I/O by means of libeio C library.

enchant: PHP binding for the Enchant library. Enchant steps to provide uniformity and conformity on top of all spelling libraries and implement certain features that may be lacking in any individual provider library.

ereg: searches for a string specified by pattern, returning true if the pattern is found, and false if otherwise. The search is case-sensitive in regard to alphabetical characters.

exif: with the exif extension, you are able to work with image meta data. For example, you may use exif functions to read meta data of pictures taken from digital cameras by working with information stored in the headers of the JPEG and TIFF images.

fileinfo: the functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bulletproof approach, the used heuristics do a very good job.

filter: this extension filters data by either validating it or sanitizing it. This is especially useful when the data source contains unknown (or foreign) data, like user supplied input. For example, this data may come from an HTML form.

ftp: the functions in this extension implement client access to files servers speaking the File Transfer Protocol (FTP) as defined in RFC959. This extension is meant for detailed access to an FTP server providing a wide range of control to the executing script.

functional: a set of functional primitives for PHP.

gd: PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including GIF, PNG, JPEG, WBMP, and XPM. Even more convenient, PHP can output image streams directly to a browser. For these purposes PHP is compiled with the GD library.

gender: gender PHP extension is a port of the gender.c program originally written by Joerg Michael. The main purpose is to find out the gender of firstnames. The name dictionary contains >40000 firstnames from 54 countries.

geoip: allows you to find the location of an IP address. City, State, Country, Longitude, Latitude, and other information as all, such as ISP and connection type can be obtained with the help of GeoIP.

gettext: gettext functions implement an NLS (Native Language Support) API which can be used to internationalize your PHP applications.

gnupg: this module allows you to interact with GnuPG – a complete and free implementation of the OpenPGP standard as defined by RFC4880 (also known as PGP). GnuPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kinds of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications. Version 2 of GnuPG also provides support for S/MIME and Secure Shell (ssh). gnupg extension allows you to use the following functions: add a key for decryption/encryption, a key for signing; removes all keys which were set for decryption/encryption before, all keys which were set for signing before; decrypts/encrypts a given text; returns an array with information about all keys that matches the given pattern; toggle armored output; verifies a signed text.

haru: PECL/haru extension provides bindings to the libHaru library.

hash: message Digest (hash) engine. Allows direct or incremental processing of arbitrary length messages using a variety of hashing algorithms.

homeloader: is used for the user specific PEAR repositories.

hidef: allows definition of user defined constants in simple ini files, which are then processed like internal constants, without any of the usual performance penalties.

htscanner: htscanner extension gives the possibility to use .htaccess-like file to configure PHP per directory, just like apache’s htaccess.

huffman: huffman compression belongs to a family of algorithms with a variable codeword length. That means that individual symbols (characters in a text file for instance) are replaced by bit sequences that have a distinct length. So symbols that occur a lot in a file are given a short sequence while other that are used seldom get a longer bit sequence.

iconv: module contains an interface to iconv character set conversion facility. With this module, you can turn a string represented by a local character set into the one represented by another character set, which may be the Unicode character set.

idn: used for domain name conversion.

igbinary: is a drop in replacement for the standard php serializer. Instead of time and space consuming textual representation, igbinary stores php data structures in a compact binary form.

imagick: is a native php extension to create and modify images using the ImageMagick API. ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG–2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF.

imap: this function enables the possibility to operate with the IMAP protocol, as well as the NNTP, POP3 and local mailbox access methods.

inclued: traces through and dumps the hierarchy of file inclusions and class inheritance at runtime.

inotify: the inotify extension exposes the inotify functions inotify_init(), inotify_add_watch() and inotify_rm_watch(). inotify_init() returns a stream resource, usable with standard stream functions, like stream_select(), stream_set_blocking() and fclose(). inotify_read() replaces the C way of reading inotify events.

intl: internationalization extension (further is referred as Intl) is a wrapper for ICU library, enabling PHP programmers to perform UCA-conformant collation and date/time/number/currency formatting in their scripts.

ioncube_loader: is a PHP loader used to encrypt PHP files and speed up web pages that are being displayed.

ixed.5.x: is the name of the loaders which are required for encoded scripts protected by SourceGuardian. SourceGuardian 11 is the most advanced PHP Encoder on the market, complete with a ground-up rewrite, a powerful GUI and protection covering the latest version of PHP. You can encode your scripts using Windows, Mac OS X and Linux, all with a powerful GUI or using a command line interface. SourceGuardian PHP Encoder protects your PHP scripts by compiling the PHP source code into a bytecode format, followed by encryption layers.

jsmin: PHP extension for minifying JavaScript.

json: this extension implements JavaScript Object Notation (JSON) data-interchange format. The decoding is handled by a parser based on the JSON_checker by Douglas Crockford.

ldap: is the Lightweight Directory Access Protocol used to access ‘Directory Servers’. The Directory is a special kind of a database that holds information in a tree structure. The concept is similar to your hard disk directory structure, except that in this context, the root directory is ‘The world’ and the first level subdirectories are ‘countries’. Lower levels of the directory structure contain entries for companies, organizations or places, while yet lower still we find directory entries for people, and perhaps equipment or documents.

libevent: libevent is a library that provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached.

libxml: these functions/constants are available as of PHP 5.1.0, and the following core extensions rely on this libxml extension: DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC and XMLWriter.

lzf: is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation.

magickwand: this module enables PHP access to the ImageMagick MagickWand API. The MagickWand API is the recommended interface between the C programming language and the ImageMagick image processing libraries. Unlike the MagickCore C API, MagickWand uses only a few opaque types.

mailparse: mailparse is an extension for parsing and working with email messages. Mailparse is stream based, which means that it does not keep in–memory copies of the files it processes – so it is very resource efficient when dealing with large messages.

mbstring: mbstring provides multibyte specific string functions that help you deal with multibyte encodings in PHP. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs.

mcrypt: this is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes.

mhash: this function is intended to work with mhash. Mhash can be used to create checksums, message digests, message authentication codes, and more. This is an interface to the mhash library. Mhash supports a wide variety of hash algorithms such as MD5, SHA1, GOST, and many others. For a complete list of supported hashes, refer to the constants page. The general rule is that you can access the hash algorithm from PHP with MHASH_hashname. For example, to access TIGER you use the PHP constant MHASH_TIGER.

mongo: this extension is deprecated; instead, the MongoDB extension should be used.

mongodb: the MongoDB PHP driver should work on nearly any system: Windows, Mac OS X, Unix, and Linux; little- and big-endian machines; 32- and 64-bit machines; PHP 5.3 through 5.6 (versions prior to 1.6 also support PHP 5.2). Unlike the mongo extension, this extension supports both PHP and HHVM and is developed atop the libmongoc and libbson libraries. It provides a minimal API for core driver functionality: commands, queries, writes, connection management, and BSON serialization. Userland PHP libraries that depend on this extension may provide higher level APIs, such as query builders, individual command helper methods, and GridFS. Application developers should consider using this extension in conjunction with the MongoDB PHP library, which implements the same higher level APIs found in MongoDB drivers for other languages. This separation of concerns allows the driver to focus on essential features for which an extension implementation is paramount for performance.

msgpack: this extension provides API for communicating with MessagePack serialization.

mssql: this function allows you to access MS SQL Server database. It has the following features: adds a parameter to a stored procedure or a remote stored procedure, close MS SQL Server connection, open MS SQL server connection, moves internal row pointer, executes a stored procedure on a MS SQL server database, fetch a result row as an associative array, a numeric array, or both, returns an associative array of the current row in the result, returns the next batch of records, get field information, fetch row as object, converts a 16 byte binary GUID to a string, initializes a stored procedure or a remote stored procedure, open persistent MS SQL connection etc.

mysql: these functions allow you to access MySQL database servers. This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0. Instead, either the mysqli or PDO_MySQL extension should be used.

mysqli: the mysqli extension allows you to access the functionality provided by MySQL 4.1 and above.

mysqlnd: MySQL Native Driver is a replacement for the MySQL Client Library (libmysqlclient). The MySQL database extensions MySQL extension, mysqli and PDO MYSQL all communicate with the MySQL server. With MySQL Native Driver there is now an alternative, as the MySQL database extensions can be compiled to use MySQL Native Driver instead of the MySQL Client Library.

ncurses: (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping.

nd_mysql: MySQL native driver for PHP (mysqlnd) is a drop-in replacement for the MySQL Client Library (libmysql) for the PHP script language. The mysqlnd library is highly optimized for and tightly integrated into PHP. The MySQL Client Library cannot offer the same optimizations because it is a general-purpose client library. The mysqlnd library is using PHP internal C infrastructure for seamless integration into PHP. In addition, it is using PHP memory management, PHP Streams (I/O abstraction) and PHP string handling routines. The use of PHP memory management by mysqlnd allows, for example, memory savings by using read-only variables (copy on write) and makes mysqlnd apply to PHP memory limits

nd_mysqli: this extension is referred to as MySQL improved. It was developed to take advantage of the new features available in MySQL since version 4.1.3.

nd_pdo_mysql: MySQL Native Driver is a replacement for the MySQL Client Library (libmysqlclient). MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0. The MySQL database extensions MySQL extension, mysqli and PDO MYSQL all communicate with the MySQL server. In the past, this was done by the extension using the services provided by the MySQL Client Library. The extensions were compiled against the MySQL Client Library in order to use its client-server protocol. With MySQL Native Driver there is now an alternative, as the MySQL database extensions can be compiled to use MySQL Native Driver instead of the MySQL Client Library. MySQL Native Driver is written in C as a PHP extension. Using the MySQL Native Driver offers a number of advantages over using the MySQL Client Library. The older MySQL Client Library was written by MySQL AB (now Oracle Corporation) and so was released under the MySQL license. This ultimately led to MySQL support being disabled by default in PHP. However, the MySQL Native Driver has been developed as part of the PHP project, and is therefore released under the PHP license. This removes licensing issues that have been problematic in the past. Also, in the past, you needed to build the MySQL database extensions against a copy of the MySQL Client Library. This typically meant you needed to have MySQL installed on a machine where you were building the PHP source code. Also, when your PHP application was running, the MySQL database extensions would call down to the MySQL Client library file at run time, so the file needed to be installed on your system. With MySQL Native Driver that is no longer the case as it is included as part of the standard distribution. So you do not need MySQL installed in order to build PHP or run PHP database applications. Because MySQL Native Driver is written as a PHP extension, it is tightly coupled to the workings of PHP. This leads to gains in efficiency, especially when it comes to memory usage, as the driver uses the PHP memory management system. It also supports the PHP memory limit. Using MySQL Native Driver leads to comparable or better performance than using MySQL Client Library, it always ensures the most efficient use of memory. One example of the memory efficiency is the fact that when using the MySQL Client Library, each row is stored in memory twice, whereas with the MySQL Native Driver each row is only stored once in memory.

oauth: this extension provides OAuth 1.0a consumer and provider bindings. OAuth is an authorization protocol built on top of HTTP which allows applications to securely access data without having to store usernames and passwords.

oci8: these functions allow you to access Oracle Database 12c, 11g, 10g, 9i and 8i. They support SQL and PL/SQL statements. Basic features include transaction control, binding of PHP variables to Oracle placeholders, and support for large object (LOB) types and collections. Oracle’s scalability features such as Database Resident Connection Pooling (DRCP) and result caching are also supported.

odbc: in addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API.

openssl: this module uses the functions of OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data. OpenSSL offers many features that this module currently doesn’t support.

pcntl: process control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using “user ticks”. You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl. There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

pcre: the PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5, with just a few differences.

pdf: the PDF functions in PHP can create PDF files using the PDFlib library from PDFlib GmbH

pdo: the PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database–specific features as regular extension functions.

pdo_dblib: is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Microsoft SQL Server and Sybase databases through the FreeTDS library.

pdo_firebird: a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Firebird database.

pdo_mysql: is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MySQL 3.x, 4.x and 5.x databases. PDO_MYSQL will take advantage of native prepared statement support present in MySQL 4.1 and higher.

pdo_odbc: connecting to ODBC or DB2 databases

pdo_pgsql: this extension provides an PostgreSQL driver for PDO.

pdo_sqlite: PDO_SQLITE is a driver that implements the PHP Data Objects (PDO) interface to enable access to SQLite 3 databases.

pgsql: PostgreSQL database is an Open Source product. Postgres, developed originally in the UC Berkeley Computer Science Department, pioneered many of the object-relational concepts now becoming available in some commercial databases.

phalcon: phalcon is a high-performance web application framework for PHP based on the model-view-controller (MVC) pattern. Unlike most PHP frameworks, Phalcon is implemented as an extension written in C in order to optimize performance. This is intended to boost execution speed and reduce resource usage with the goal of handling more requests per second than comparable frameworks written primarily in PHP.

phar: the phar extension provides a way to put entire PHP applications into a single file called a ‘phar’ (PHP Archive) for easy distribution and installation. In addition to providing this service, the phar extension also provides a file-format abstraction method for creating and manipulating tar and zip files through the PharData class, much as PDO provides a unified interface for accessing different databases. Phar archives are best characterized as a convenient way to group several files into a single file.

posix: this module contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means.

propro: a reusable split-off of pecl_http’s property proxy API.

pspell: a reusable split-off of pecl_http’s property proxy API. These functions allow you to check the spelling of a word and offer suggestions.

quickhash: the quickhash extension contains a set of specific strongly-typed classes to deal with specific set and hash implementations.

raphf: a reusable split-off of pecl_http’s persistent handle and resource factory API.

radius: this package is based on the libradius (Remote Authentication Dial In User Service) of FreeBSD. It allows clients to perform authentication and accounting by means of network requests to remote servers. This PECL extension adds full support for Radius Authentication (RFC 2865) and Radius Accounting (RFC 2866). This package is available for Unix (tested on FreeBSD and Linux) and for Windows.

rar: PHP extension for reading RAR archives using bundled unRAR library. This extension gives you possibility to read Rar archives but doesn’t support writing Rar archives, because this is not supported by the UnRar library and is directly prohibited by its license.

readline: the readline function implements an interface to the GNU Readline library. These are functions that provide editable command lines. An example being the way Bash allows you to use the arrow keys to insert characters or scroll through command history. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts used from a command line.

recode: this module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings.

reflection: PHP 5 comes with a complete reflection API that adds the ability to reverse’engineer classes, interfaces, functions, methods and extensions. Additionally, the reflection API offers ways to retrieve doc comments for functions, classes and methods.

rsync: this algorithm is using a rolling check-sum and a md4 check’sum for blocks of the file to generate a signature file. The signature file is used to generate a diff from the file on the remote site. This diff can be used on the local site to patch the file.

session: session support in PHP consists of a way to preserve certain data across subsequent accesses. This enables you to build more customized applications and increase the appeal of your website.

shmop: shmop is an easy to use set of functions that allows PHP to read, write, create and delete Unix shared memory segments.

simplexml: the SimpleXML extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators.

snmp: Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (for example, routers), computer equipment and even devices like UPSs. The SNMP extension provides a very simple and easily usable toolset for managing remote devices via the Simple Network Management Protocol. As it is a wrapper around the underlying Net-SNMP (or UCD-SNMP on older systems) library, all basic concepts are the same and the PHP functions change their behaviour depending on the Net-SNMP configuration files and environment variables. Beginning with PHP 5.4, an OO API is available. SNMP have the following features: retrieve information from an SNMP-capable device, either using single requests or multiple requests, manipulate configuration information on an SNMP-capable device, retrieve a fixed collection of information from an SNMP-capable device, convert between numerical and textual forms of MIB OIDs, and display MIB content and structure.

soap: the SOAP extension can be used to write SOAP Servers and Clients.

sockets: the socket extension implements a low–level interface to the socket communication functions based on the popular BSD sockets, providing the possibility to act as a socket server as well as a client.

sourceguardian: this PHP encoder protects your PHP code by compiling the PHP source code into a binary bytecode format, which is then supplemented with an encryption layer.

spl: the Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems. SPL provides a set of standard datastructure, a set of iterators to traverse over objects, a set of interfaces, a set of standard Exceptions, a number of classes to work with files and it provides a set of functions like spl_autoload_register().

spl_types: this extension aims at helping people making PHP a stronger typed language and can be a good alternative to scalar type hinting. It provides different typehandling classes as such as integer, float, bool, enum and string.

sqlite: this is an extension for the SQLite Embeddable SQL Database Engine. SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process. SQLite is not a client library used to connect to a big database server. SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk.

sqlite3: support for SQLite version 3 databases.

ssh2: bindings to the libssh2 library which provide access to resources (shell, remote exec, tunneling, file transfer) on a remote machine using a secure cryptographic transport.

standard: the standard set of classes.

stats: this is the statistics extension. It contains few dozens of functions useful for statistical computations.

stem: a PHP extension that provides word stemming.

stomp: this extension allows php applications to communicate with any Stomp compliant Message Brokers through easy object oriented and procedural interfaces.

suhosin: is an advanced protection system for PHP installations. It was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core. Suhosin comes in two independent parts, that can be used separately or in combination. The first part is a small patch against the PHP core, that implements a few low–level protections against buffer overflows or format string vulnerabilities and the second part is a powerful PHP extension that implements numerous other protections.

sybase_ct: module which gets number of affected rows in last query, closes a Sybase connection, opens a Sybase server connection, moves internal row pointer, sets the deadlock retry count, fetch row as array, fetch a result row as an associative array, gets a result row as an enumerated array, returns the last message from the server

sysvmsg: shared memory support.

sysvsem: shared memory functions.

sysvshm: extension for shared memory.

tidy: tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML documents, but also traverse the document tree.

timezonedb: timezone Database to be used with PHP’s date and time functions

tokenizer: the tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzing or modification tools without having to deal with the language specification at the lexical level.

trader: the trader extension is a free open source stock library based on TA–Lib. It’s dedicated to trading software developers requiring to perform technical analysis of financial market data.

translit: this module allows to transliterate non-latin character sets to latin.

uploadprogress: an extension to track progress of a file upload.

uri_template: implementation of URI Template specification for PHP.

uuid: this extension allows to generate a unique ID.

wddx: the Web Distributed Data Exchange (WDDX) is a XML-based technology that allows Web applications created with any platform to easily exchange data with one another over the Web.

weakref: the WeakRef class provides a gateway to objects without preventing the garbage collector from freeing those objects. It also provides a way to turn a weak reference into a strong one.

xdebug: the Xdebug extension helps you debugging your script by providing a lot of valuable debug information.

xml: XML (eXtensible Markup Language) is a data format for structured document interchange on the Web.

xmlreader: the XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

xmlrpc: XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism. XML-RPC also refers generically to the use of XML for remote procedure call, independently of the specific protocol. This article is about the protocol named ‘XML-RPC’.

xmlwriter: this extension represents a writer that provides a non-cached, forward-only means of generating streams or files containing XML data.

xrange: xrange is a compiled extension that provides numeric iteration primitives to PHP on top of SPL. It includes a lean numeric range generator/iterator, modeled after Python’s xrange() function. It’s intended to provide an alternative for all numeric iteration and looping.

xsl: the XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library

yaf: the Yet Another Framework (Yaf) extension is a PHP framework that is used to develop web applications.

yaml: this extension implements the YAML Ain’t Markup Language (YAML) data serialization standard. Parsing and emitting are handled by the LibYAML library. YAML is a human friendly data serialization standard for all programming languages.

yaz: this extension offers a PHP interface to the YAZ toolkit that implements the Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel.

zend guard loader: Zend Guard is the most widely accepted PHP encoding and obfuscation product on the market which protects your application from unlicensed use and reverse engineering.

zend_optimizer: allows PHP to run files encoded by Zend Guard which greatly enhances the performance of PHP applications. The Zend Optimizer goes over the code generated by the standard Zend run-time compiler and optimizes it for faster execution.

zip: this extension enables you to transparently read or write ZIP compressed archives and the files inside them.

zlib: this module enables you to transparently read and write gzip (.gz) compressed files, through versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets).

How to change PHP version on shared servers

How to change PHP version on shared servers

In some cases, correct functioning of your website depends on a PHP version installed on the server.
This guide describes how to change php version on shared servers (Stellar, Stellar Plus plans and old Value, Professional, Ultimate plans). For Business SSD servers, use this guide.

Thanks to the PHP Selector function, it is possible to select the necessary PHP version as well as enable/disable certain PHP modules and functions.

To check what PHP version is currently in use, refer to this article.

for cPanel Basic theme:

1. Log into your cPanel account.
2. Scroll down to the Software section > Select PHP Version

3. Here you will see the list of available modules and extensions.

If you do not need to change the PHP version and just want to turn on/off specific extensions, you can do this by checking/unchecking the corresponding boxes.

Use the PHP Version drop-down box to select the required version, click on Set as current in order to apply the changes.

NOTE: The ‘native’ PHP version does not allow changing any options. You can set the desired values using a php.ini file:

4. To change individual settings within the PHP version in question, click on Switch to PHP Settings.

By clicking on one of the options in grey, you will be presented with a drop-down list to change specific settings. Hit Apply to implement the settings:

NOTE 1: It is recommended to update your website scripts and use PHP 5.6. If the latest software you run for your websites is not yet compiled for PHP 5.6, please contact the script vendor for a compatibility patch. 

NOTE 2: If you used a php.ini file for editing your account PHP configuration before, you will need to replicate the custom values using PHP Selector tool. 

NOTE 3: In order to increase the max upload size, make sure to modify both post_max_size and upload_max_filesize values.

for cPanel Retro theme:

To change the PHP version, follow the steps below:

1. Log into your cPanel account.
2. Scroll down to the Software/Services section > Select PHP Version

3. Here you will see the list of available modules and extensions.

If you do not need to change the PHP version and just want to turn on/off specific extensions, you can do this by checking/unchecking the corresponding boxes.

Use the PHP Version drop-down box to select the required version, click on Set as current in order to apply the changes.

NOTE: The ‘native’ PHP version does not allow changing any options. You can set the desired values using a php.ini file: 

4. To change individual settings within the PHP version in question, click on Switch to PHP Settings.

By clicking on one of the options in grey, you will be presented with a drop-down list to change specific settings. Hit Apply to implement the settings: 

NOTE 1: It is recommended to update your website scripts and use PHP 5.6. If the latest software you run for your websites is not yet compiled for PHP 5.6,  please contact the script vendor for a compatibility patch.

NOTE 2: If you used a php.ini file for editing your account PHP configuration before, you will need to replicate the custom values using PHP Selector tool. 

NOTE 3: In order to increase the max upload size, make sure to modify both post_max_size and upload_max_filesize values.for addon domain:

Sometimes your website may need to use a different PHP version from the one assigned to your domain on your cPanel account.

To set a different PHP version for an addon domain, you need to add a special code to your .htaccess file. To do this, follow the steps below.

1. Find the .htaccess file for the addon domain in question. The steps for how to find it can be located here.

2. Add the following line to your .htaccess file:

SetHandler application/x-lsphpXX

where XX is the PHP version you wish to set. It can be 52, 53, 54, 55, 56, 70, 71 or 72.

For example:

3. Click “Save changes”.
NOTE: When a different PHP version is set for the addon domain, there are no PHP extensions enabled by default. To make a website work correctly, you will need to upload a php.ini file to the folder of the addon domain. You can check this article (see point 6) to help you with uploading files to the hosting account.

You can download the php.ini file for different PHP versions from the Attachments section at the end of this guide. Do not forget to rename the file to php.ini once it is uploaded to the hosting account.

Alternatively, you can run the command below via SSH:

cp /opt/alt/default_php_ini/phpXX.ini /home/cPanel_username/path_to_the_folder/php.ini

where XX is PHP version you wish to set (it can be 52, 53, 54, 55, 56, 70, 71 or 72),
cPanel_username should be replaced with your actual cPanel username, and
path_to_the_folder is a path to the folder of the addon domain.

For example:

You can find details on how to access a hosting account via SSH here.

The process is similar if you wish to set a different PHP version for a subdomain.

That’s it!