Skip to Content

بلاگ

نحوه ویرایش php.ini در سرورهای اشتراکی

How to edit php.ini on shared servers

This guide describes how to edit php.ini file on shared servers (Value, Professional and Ultimate plans). For Business SSD servers, use this guide.

With the help of PHP Selector implemented on our shared servers, you can easily modify basic PHP settings in your cPanel > section Software/Services Select PHP Version menu. You can find detailed guidelines here.

However, advanced PHP settings are missing from PHP Selector tool, and they need to be manually configured in the php.ini file. Feel free to download php.ini for different PHP versions below in the Attachments section at the end of the guide.

When all updates are completed, make sure that you rename the file to php.ini. In order for the php.ini to work add suPHP or Lsapi_phpini directive depending on the server your account is hosted on.

To find out the current PHP version and configuration, refer to this article.

That’s it!

ادامه مطلب

SuPHP و LSPHP برای php.ini

SuPHP and LSPHP directives for php.ini on shared servers

SuPHP (Single user PHP) is a php handler which executes PHP scripts with the permissions of their owners. LSPHP  is a combination of mod_lsapi+PHP. Depending on the server your account is hosted on either suPHP or LSPHP is installed.

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

For suPHP, you should add the following configuration directive to the .htaccess file:

<IfModule mod_suphp.c>
suPHP_ConfigPath /home/USER/public_html
</IfModule>

For LSPHP, you should add the following configuration directive to the .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.
For suPHP:
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/USER/public_html
</IfModule>

For LSPHP: 
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.

For suPHP:
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/USER/public_html
</IfModule>

For LSPHP: 
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:

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

That’s it!

ادامه مطلب

ماژولهای و افزونه های PHP در یک هاست سرور اشتراکی

PHP modules and extensions on shared hosting 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 (ValueProfessional and Ultimate) or Reseller hosting plan, you may use the PHP selector menu in cPanel.
  • If you have a 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).

ادامه مطلب

نحوه تغییر دادن ورژن PHP در سرورهای اشتراکی

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 (Value, Professional and 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 paper_lantern theme
for cPanel x3 theme

for cPanel paper_lantern 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 x3 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.

ادامه مطلب

نحوه چک کردن ورژن PHP و پیکربندی آن

How to check PHP version and configuration

PHPinfo() function is 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.

To run the function, follow the steps below:

for cPanel paper_lantern theme
for cPanel x3 theme

for cPanel paper_lantern theme:

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

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

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

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

<?php
phpinfo();
?>

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 x3 theme:

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

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



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

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


<?php
phpinfo();
?> 

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!

ادامه مطلب

تفاوت Basic DNS و BackupDNS

What is the difference between your Basic and BackupDNS?

There is no performance difference between our BasicDNS and BackupDNS (a legacy option). Still, some domains do not support BackupDNS (the option to select BackupDNS is absent in the Nameservers section).

It is possible to add up to 150 host records on our BasicDNS and up to 100 on BackupDNS.

TTL for host records can be set to 1,5,20,30,60 minutes on BasicDNS, however, on BackupDNS you can onlyset it to 30 minutes.

Our BasicDNS is a primary one. When you get a domain with us, the following name servers are provided by default:

dns1.registrar-servers.com
dns2.registrar-servers.com 

BackupDNS is a legacy option, however, some domains are still pointed to it:

dns1.name-services.com
dns2.name-services.com
dns3.name-services.com
dns4.name-services.com
dns5.name-services.com 

This option cannot be chosen in your Namecheap account anymore.

ادامه مطلب

DNS Server چیست؟

What is DNS Server (name server)?

Domain name system (DNS) is the system that is used to translate human-memorable domain names like namecheap.com and hostnames like support.namecheap.com into the corresponding numeric Internet Protocol (IP) addresses as well as to identify and locate computer systems and resources on the Internet.

When you use an alphanumeric address like “namecheap.com” your computer needs to understand what numerical IP address it should contact to show up the content. Domain name server is a server responsible for keeping the file that contains information about the domain name(s) and corresponding IP addresses (zone file) as well as for providing the above-mentioned information during DNS queries.

Domain name servers are a fundamental part of the Domain Name System. Nameserver is a server on the Internet specialized in handling queries regarding the location of the domain name’s various services. In easy words, name servers define your domain’s current DNS provider.

All domains usually have at least two DNS servers which can be checked via Whois lookup tool.

For example: we provide name servers for all domains registered with us (they are called Namecheap BasicDNS) and their values are:

dns1.registrar-servers.com
dns2.registrar-servers.com

When you make a request for anything related to the domain name, it gets sent to one of the name servers. In response, the DNS server sends back the IP address.  This works for the Web Site, Mail Servers, and anything else based on the domain name.

Free Email Forwarding and Dynamic DNS are some of the pros of using our default name servers.

That’s it!

ادامه مطلب

نحوه چک کردن درستی DNSSEC

نحوه چک کردن درستی DNSSEC

A good tool that you can use to check DNSSEC is located at http://dnssec-debugger.verisignlabs.com

Enter your domain into the search box and hit Enter on your keyboard:

When you first enable DNSSEC on your website, it will show your zone as ‘signed’ but ‘insecure’ (DS records are found, however, DNSKEY and RRSIG do not exist):

Once your registrar has published the DS records, which may be immediately or one or two days after you’ve added the DS record to your registrar, your records will be marked as ‘secure’ ones:

That’s it!

ادامه مطلب

DNSSEC چیست؟

What is DNSSEC?

Understanding DNS

Understanding DNSSEC first requires basic knowledge of how the DNS system works.

The DNS is used to translate domain names (like example.com) into numeric Internet addresses (like 198.161.0.1).

Although this address system is very efficient for computers to read and process the data, it is extremely difficult for people to remember. Let’s say that every time when you need to check a website, you should remember the IP address of the machine where it is located. People often call the DNS system the “phone book of the Internet”.

To solve this problem, a numeric IP address was attached to every domain name. The website addresses we know are actually domain names.

Domain name information is stored and accessed on special servers, known as domain name servers, that convert domain names into IP addresses and vice versa.

The top level of the DNS resides in the root zone where all IP addresses and domain names are kept in databases and sorted by top-level domain name, such as .com, .net, .org, etc.

When the DNS was first implemented, it was not secured, and soon after being put into use, several vulnerabilities were discovered. As a result, a security system was developed in the form of extensions that could be added to the existing DNS protocols.

Domain name system security extensions (DNSSEC) are a set of protocols that add a layer of security to the domain name system (DNS) lookup and exchange processes, which have become integral in accessing websites through the Internet.

Let’s see how this security can be implemented.

How DNSSEC Works

In general, DNSSEC is aimed at strengthening trust in the Internet by helping to protect users from redirection to fraudulent websites and unintended addresses. In such a way, malicious activities like cache poisoning, pharming, and man-in-the-middle attacks can be prevented.

The original purpose of DNSSEC was to protect Internet clients from counterfeit DNS data by verifying digital signatures embedded in the data.

When a visitor enters the domain name in a browser, the resolver verifies the digital signature.

If the digital signatures in the data match those that are stored in the master DNS servers, then the data is allowed to access the client computer making the request.

The DNSSEC digital signature ensures that you’re communicating with the site or Internet location you intended to visit.

DNSSEC uses a system of public keys and digital signatures to verify data. It simply adds new records to DNS alongside existing records. These new record types, such as RRSIG and DNSKEY, can be retrieved in the same way as common records such as A, CNAME and MX.

These new records are used to digitally “sign” a domain, using a method known as public key cryptography.

A signed nameserver has a public and private key for each zone. When someone makes a request, it sends information signed with its private key; the recipient then unlocks it with the public key. If a third party tries to send untrustworthy information, it won’t unlock properly with the public key, so the recipient will know the information is bogus.

Note that DNSSEC does not provide data confidentiality because it does not include encryption algorithms. It only carries the keys required to authenticate DNS data as genuine or genuinely not available.

Also, DNSSEC does not protect against DDoS Attacks.

Keys used by DNSSEC

There are two types of keys that are used by DNSSEC:

·   The zone signing key (ZSK) – is used to sign and validate the individual record sets within the zone.
·   The key signing key (KSK) – is used to sign the DNSKEY records in the zone.

Both of these keys are stored as ‘DNSKEY’ records in the zone file.

Viewing the DS record

The DS record stands for Delegation Signer, and it contains a unique string of your public key as well as metadata about the key, such as what algorithm it uses.

Each DS record consists of four fields: KeyTag, Algorithm, DigestType and Digest and it looks like the following:

We can break up different components of the DS record to see what information each part holds:

  • Example.com. – domain name that the DS is for.
  • 3600 – TTL, the time that the record may remain in cache.
  • IN stands for internet.
  • 2371 – Key Tag, ID of the key.
  • 13 – algorithm type. Each allowed algorithm in DNSSEC has a specified number. Algorithm 13 is ECDSA with a P-256 curve using SHA-256.
  • 2 – Digest Type, or the hash function that was used to generate the digest from the public key.
  • The long string at the end is the Digest, or the hash of the public key.

All DS records must comply with RFC 3658.

You can always use the DNSSEC Debugger in order to find out if there are any issues with the domain name settings. The detailed instructions on its usage can be found in the “How can I check that DNSSEC is working?” article.

ادامه مطلب

نحوه ایجاد ساب دامین Wildcard در CPanel

نحوه ایجاد ساب دامین Wildcard در CPanel

How to create a wildcard subdomain in cPanel

Wildcard subdomain allows you to point all non-existing subdomains to a specific folder in your account. It means that if you enter different subdomains (which are not created in your cPanel) in your browser, they all will show the same content that you uploaded to the folder set for the wildcard subdomain.

In order to create a wildcard subdomain, follow the next steps:

for cPanel paper_lantern theme
for cPanel x3 theme

for cPanel paper_lantern theme:

1. Log into your cPanel.
2. Navigate to Domains section > Subdomains menu:

3. Create a subdomain * pointing it to the necessary folder (you will need to specify the path in the field Document Root):

4. Go to Advanced Zone Editor menu:

5. Make sure that there is an A record for *.yourdomain.com created and pointed to the server IP address (it could coincide with the IP address of your main domain or ftp.yourdomain.com is pointed to):

6. Now, you will need to wait until the propagation is over (it should take N seconds, where N – is TTL for this A record; you can edit it manually and reduce the number to speed up the process), and then the wildcard subdomain will work correctly.

for cPanel x3 theme:

1. Log into your cPanel.
2. Navigate to Domains section > Subdomains menu:

3. Create a subdomain * pointing it to the necessary folder (you will need to specify the path in the field Document Root):

4. Go to the menu Advanced DNS Zone Editor :

5. Make sure that there is an A record for *.yourdomain.com created and pointed to the server IP address (it could coincide with the IP address of your main domain or ftp.yourdomain.com is pointed to):

6. Now, you will need to wait until the propagation is over (it should take N seconds, where N – is TTL for this A record; you can edit it manually and reduce the number to speed up the process), and then the wildcard subdomain will work correctly.

That’s it!

ادامه مطلب