[Development Guides Home](/guides) # Guide to cPanel Variables ## Introduction The [LiveAPI system](/guides/guide-to-the-liveapi-system) and [dynamicui files](/guides/guide-to-cpanel-plugins/guide-to-cpanel-plugins-add-plugins) can access cPanel's global variables. These variables return data about the server's configuration and the authenticated user. * These variables are **not** compatible with WHM plugin development. **Only** use them in code for cPanel plugin development. * The examples below use the following [LiveAPI system](/guides/guide-to-the-liveapi-system) methods: * The [`cpanelif()method`](/guides/guide-to-the-liveapi-system/guide-to-the-liveapi-system-liveapi-methods/guide-to-the-liveapi-system-the-cpanelif-method) evaluates a logic operator or cPanel variable as true or false. * The [`cpanelprint()method`](/guides/guide-to-the-liveapi-system/guide-to-the-liveapi-system-liveapi-methods/guide-to-the-liveapi-system-the-cpanelprint-method) returns a cPanel variable's value. * To check the environment variables for a process, run the following command, where `processname` represents the name of the process: ```bash ps auxwwe | grep processname ``` ## Logic operators ### `!` **Description:** This logic operator reverses the action of another logic operator. **Example:** The following code returns true if a does not equal b: ``` ``` ### `==` **Description:** This logic operator checks whether the first argument is equal to the second argument. **Example:** The following code returns true if a equals b: ``` ``` ### `=et=` **Description:** This logic operator checks whether the first argument is equal to the second argument. **Example:** The following code returns true if 1 equals 1: ``` ``` ### `=gt=` **Description:** This logic operator checks whether the first argument is greater than the second argument. **Example:** The following code returns true if 4 is greater than 3: ``` ``` ### `=gtet=` **Description:** This logic operator checks whether the first argument is greater than or equal to the second argument. **Example:** The following code returns true if 4 is greater than or equal to 3: ``` ``` ### `=lt=` **Description:** This logic operator checks whether the first argument is less than the second argument. **Example:** The following code returns true if 3 is less than 4: ``` ``` ### `=ltet=` **Description:** This logic operator checks whether the first argument is less than or equal to the second argument. **Example:** The following code returns true if 3 is less than or equal to 4: ``` ``` ## cPanel variables ### `$abshomedir` **Description:** This variable returns the absolute path to the authenticated user's home directory. If the user's home directory is a symlink, this variable returns the absolute path to the symlink's target. **Example:** The following code prints the absolute path to the authenticated user's home directory: ```perl $cpliveapi->cpanelprint('$abshomedir'}); ``` ### `$appname` **Description:** This variable returns the current cPanel & WHM application. For example, this variable returns `cpanel` if you call it from the cPanel interface, or webmail if you call it within a cPanel account's webmail interface. **Example:** The following code prints the current cPanel & WHM application: ```perl $cpliveapi->cpanelprint('$appname'}); ``` ### `$basedir` **Description:** This variable returns the absolute path to the current directory. **Example:** The following code prints the current directory's path: ```perl $cpliveapi->cpanelprint('$basedir'}); ``` ### `$basefile` **Description:** This variable returns the absolute path to the current file. **Example:** The following code prints the current file's location: ```perl $cpliveapi->cpanelprint('$basefile'}); ``` ### `$BRANDINGIMG{'KEY'}` **Description:** This variable returns the string `cpanel_magic_revision_random`, where random is a random integer, and the relative path to the specified image file (`key`). This path is relative to the `/usr/local/cpanel/base/` directory. **Example:** The following code prints the relative path to the `email-pass.gif` file: ```perl $cpliveapi->cpanelprint($BRANDINGIMG{'email-pass.gif'}); ``` ### `$brandingpkg` **Description:** This variable returns the user's current branding package. **Example:** The following code prints the current branding package's name: ```perl $cpliveapi->cpanelprint('$brandingpkg'); ``` ### `$CONF{'KEY'}` **Description:** This variable returns the value for a specific setting (`key`) in the `/var/cpanel/cpanel.config` file. **Example:** The following code prints the server's mysql-version setting: ```perl $cpliveapi->cpanelprint($CONF{'mysql-version'}); ``` ### `$CPDATA{'KEY'}` **Description:** This variable returns the value for a specific setting (`key`) in the authenticated user's data file. The system retrieves this information from the hash of settings in the `/var/cpanel/users/username` file, where `username` is the cPanel or WHM account username. Warning: We strongly recommend that you use the UAPI [`Variables::get_user_information`](/specifications/cpanel.openapi/account-information/variables-get_user_information) function to return a key's value. **Example:** The following code prints the user's `CONTACTEMAIL` setting: ```perl $cpliveapi->cpanelprint($CPDATA{'CONTACTEMAIL'}); ``` ### $CPERROR{'module'} **Description:** This variable returns most recent error that the specified module (`module`) returned. Module names **must** be in lowercase. **Example:** The following code prints the most recent error for the `email` module: ```perl $cpliveapi->cpanelprint($CPERROR{'email'}); ``` ### `$CPVAR{'KEY'}` **Description:** This variable returns the value of a cPanel variable that you set elsewhere in the same page. This variable will check any cPanel variables that you set with a `cpanel` function or a `` tag. **Example:** The following code prints the test variable's most recent value: ```perl $cpliveapi->cpanelprint($CPVAR{'test'}); ``` ### `$FORM{'KEY'}` **Description:** This variable returns the `GET` or `POST` data for a specific variable (`key`) that a user passes to a page as part of a form. To return the URI-encoded version of the value, use the `$URI_ENCODED_FORM{'KEY'}` variable. **Example:** The following code prints the test variable's value: ```perl $cpliveapi->cpanelprint($FORM{'test'}); ``` ### `$formdump` **Description:** This variable returns the entire contents of the `$FORM{}` hash, which contains all of the `GET` or `POST` data that a user passes to a page. Use this variable to debug an interface form. **Example:** The following code prints the contents of the `$FORM{}` hash: ```perl $cpliveapi->cpanelprint('$formdump'}); ``` ### `$hasanonftp` **Description:** This variable returns a Boolean value that indicates whether anonymous FTP is enabled on the server. * A value of `1` indicates that anonymous FTP is enabled. * A value of `0` indicates that anonymous FTP is disabled. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasanonftp'}); ``` ### `$hasdedicatedip` **Description:** This variable returns a Boolean value that indicates whether the authenticated account has a dedicated IP address. * A value of `1` indicates that the account has a dedicated IP address. * A value of `0` indicates that the account does not have a dedicated IP address. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasdedicatedip'}); ``` ### `$hasgem` **Description:** This variable returns a Boolean value that indicates whether RubyGems are enabled for the authenticated account. * A value of `1` indicates that RubyGems are enabled. * A value of `0` indicates that RubyGems are disabled. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasgem'}); ``` ### `$hasmoddeflate` **Description:** This variable returns a Boolean value that indicates whether the [`mod_deflate` Apache module](http://httpd.apache.org/docs/current/mod/mod_deflate.html) is available on the server. * A value of `1` indicates that the module is available. * A value of `0` indicates that the module is not available. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasmoddeflate'}); ``` ### `$hasmodproxy` **Description:** This variable returns a Boolean value that indicates whether the [`mod_proxy` Apache module](http://httpd.apache.org/docs/current/mod/mod_proxy.html) is available on the server. * A value of `1` indicates that the module is available. * A value of `0` indicates that the module is not available. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasmodproxy'}); ``` ### `$haspear` **Description:** This variable returns a Boolean value that indicates whether PHP PEAR is installed. * A value of `1` indicates that PHP PEAR is installed. * A value of `0` indicates that PHP PEAR is not installed. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$haspear'}); ``` ### `$haspostgres` **Description:** This variable returns a Boolean value that indicates whether PostgreSQL® is installed. * A value of `1` indicates that PostgreSQL is installed. * A value of `0` indicates that PostgreSQL is not installed. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$haspostgres'}); ``` ### `$haspureftp` **Description:** This variable returns a Boolean value that indicates whether the authenticated account uses the Pure-FTPd FTP server. * A value of `1` indicates that the account uses Pure-FTPd. * A value of `0` indicates that the account does not use Pure-FTPd. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$haspureftp'}); ``` ### `$hasrails` **Description:** This variable returns a Boolean value that indicates whether Ruby on Rails® is enabled for the authenticated account. * A value of `1` indicates that Ruby on Rails is enabled. * A value of `0` indicates that Ruby on Rails is disabled. Ruby on Rails does **not** function on Amazon Linux servers. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasrails'}); ``` ### `$hasvalidshell` **Description:** This variable returns a Boolean value that indicates whether the authenticated account has shell access. * A value of `1` indicates that the account has shell access. * A value of `0` indicates that the account does not have shell access. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasvalidshell'}); ``` ### `$homedir` **Description:** This variable returns the absolute path to the authenticated user's home directory. **Example:** The following code prints the authenticated user's home directory path: ```perl $cpliveapi->cpanelprint('$homedir'}); ``` ### `$hostname` **Description:** This variable returns the server's hostname. **Example:** The following code prints the server's hostname: ```perl $cpliveapi->cpanelprint('$hostname'}); ``` ### `$httphost` **Description:** This variable returns the current HTTP host that connects to the cPanel daemon. **Example:** The following code prints the current HTTP host: ```perl $cpliveapi->cpanelprint('$httphost'}); ``` ### `$ip` **Description:** This variable returns the authenticated user's primary IP address. **Example:** The following code prints the authenticated user's primary IP address: ```perl $cpliveapi->cpanelprint('$ip'}); ``` ### `$isallowedssl` **Description:** This variable returns a Boolean value that indicates whether the authenticated user can use cPanel's SSL features. * A value of `1` indicates that the following conditions are true: * The cPanel account has a dedicated IP address. * The server administrator has enabled the Allow cPanel users to install SSL hosts if they have a dedicated IP setting in WHM's [*Tweak Settings*](https://docs.cpanel.net/whm/server-configuration/tweak-settings/88/) interface (*WHM >> Home >> Server Configuration >> Tweak Settings*). * A value of `0` indicates that at least one of these conditions is **not** true and the authenticated user **cannot** use cPanel's SSL features. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$isallowedssl'}); ``` ### `$isreseller` **Description:** This variable returns a Boolean value that indicates whether the authenticated user has reseller privileges. * A value of `1` indicates that the user has reseller privileges. * A value of `0` indicates that the user does not have reseller privileges. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$isreseller'}); ``` ### `$isresellerlogin` **Description:** This variable returns a Boolean value that indicates whether the current session used the root password or a reseller account password to authenticate. * A value of `1` indicates that the current session authenticated with the root password or a reseller account password. * A value of `0` indicates that the current session did not authenticate with the root password or a reseller account password. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$isresellerlogin'}); ``` ### `$isresold` **Description:** This variable returns a Boolean value that indicates whether the a reseller account owns the authenticated account. * A value of `1` indicates that a reseller account owns the authenticated account. * A value of `0` indicates that the root user owns the authenticated account. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$isresold'}); ``` ### `$mailactionhost` **Description:** This variable returns the mail host's configuration from WHM's [*Tweak Settings*](https://docs.cpanel.net/knowledge-base/cpanel-product/product-versions-and-the-release-process/) interface (`WHM >> Home >> Server Configuration >> Tweak Settings`). **Example:** The following code prints the server's mail host configuration: ```perl $cpliveapi->cpanelprint('$mailactionhost'}); ``` ### `$mainhttpdport` **Description:** This variable returns the port on which Apache is currently listening. Typically, this is port `80`. **Example:** The following code prints the port on which Apache is listening: ```perl $cpliveapi->cpanelprint('$mainhttpdport'}); ``` ### `$mysqlversion` **Description:** This variable returns the server's MySQL® version number. **Example:** The following code prints the server's MySQL version: ```perl $cpliveapi->cpanelprint('$mysqlversion'}); ``` ### `$NVDATA{'KEY'}` **Description:** This variable returns the contents of the specified file (`key`) in a user's `home/.cpanel/nvdata/` directory. **Example:** The following code prints the contents of the `home/.cpanel/nvdata/test` file: ```perl $cpliveapi->cpanelprint($NVDATA{'test'}); ``` ### `$random` **Description:** This variable generates a random number that is between 1 and 1,000,000. **Example:** The following code prints a random number: ```perl $cpliveapi->cpanelprint('$random'); ``` ### `$sslhttpdport` **Description:** This variable returns the port on which Apache currently listens for SSL connections. Typically, this is port `443`. **Example:** The following code prints the SSL port on which Apache is listening: ```perl $cpliveapi->cpanelprint('$sslhttpdport'}); ``` ### `$URI_ENCODED_FORM{'KEY'}` **Description:** This variable returns the `GET` or `POST` data for a specific variable (`key`) that a user passes to a page as part of a form, in a URI-encoded format. To return the non-URI-encoded version of the value, use the `$FORM{'KEY'}` variable. **Example:** The following code prints the value that the user passes in for the test variable, in a URI-encoded format: ```perl $cpliveapi->cpanelprint($URI_ENCODED_FORM{'test'}); ``` ### `$user` **Description:** This variable returns the authenticated account's username. **Example:** The following code prints the authenticated user's username: ```perl $cpliveapi->cpanelprint('$user'}); ``` ### `$version` **Description:** This variable returns the server's current cPanel & WHM version. **Example:** The following code prints the server's current cPanel & WHM version: ```perl $cpliveapi->cpanelprint('$version'); ``` ## Deprecated and removed variables ### `$hasurchin` **Description:** This variable returns a Boolean value that indicates whether Urchin is installed on the server. * A value of `1` indicates that Urchin is installed. * A value of `0` indicates that Urchin is not installed. Urchin is no longer supported or available for purchase. **Example:** The following code prints a Boolean value, as described above: ```perl $cpliveapi->cpanelprint('$hasurchin'}); ``` ### `$lang` **Description:** This variable returns the authenticated user's language setting. This cPanel variable is part of the deprecated lang system. Do not use this system. Instead, use our [Locale System](/guides/guide-to-locales). **Example:** The following code prints the authenticated user's language setting: ```perl $cpliveapi->cpanelprint('$lang'); ``` ### `$LANG{'KEY'}` **Description:** This variable returns a string in the user's selected language that corresponds to the key value in the `/usr/local/cpanel/locale` file. **Example:** The following code prints the key's string in the user's locale: ```perl $cpliveapi->cpanelprint($LANG{'hd'}); ```