14. Allowed & Disabled Functions & Commands
Our hosting environments are designed to provide the best WordPress experience possible, so many of the workarounds members may have employed with other hosts are completely unnecessary and are automatically filtered or disabled.
For example, some wp-config.php modifications actually conflict with our system and will adversely affect both member sites and our hosting environments. These include cron jobs and modifications to the WordPress file system or memory limitations.
This document aims to be your go-to reference for any disallowed functions, commands & constants in the WPMU DEV hosting environment.
14.1 wp-config.php Constants Protection
Copy chapter anchor to clipboardCron Jobs
To ensure your scheduled tasks run on time, every time, WPMU DEV hosting environments utilize server-side crons (crontab), by default, and call the WordPress scheduling system via WP-CLI every 5 minutes – eliminating the need for alternative cron usage or external services.
See our System Cron & Custom Cron Jobs document for alternatives if needed.
File System
Our hosting environments leverage the default WordPress file system to achieve a sustainable balance between performance, security and stability. We understand that members may have been compelled to modify the file system to compensate for the shortcomings of other hosts, but those modifications are not necessary with WPMU DEV hosting and can cause significant issues server-side.
Therefore, we do not allow certain modifications, and any changes to the following constants in the wp-config.php file will be ignored or removed automatically:
WP_MEMORY_LIMIT (See Memory Limits below.)
WP_MAX_MEMORY_LIMIT
WP_CONTENT_DIR
WP_CONTENT_URL
WP_ENVIRONMENT_TYPE
WP_CACHE_KEY_SALT
SET_TIME_LIMIT
MAX_EXECUTION_TIME
UPLOAD_MAX_FILESIZE
POST_MAX_SIZE
FS_CHMOD_DIR
FS_CHMOD_FILE
FS_METHOD
FTP_CONTENT_DIR
FTP_PLUGIN_DIR
FTP_BASE
FTP_PUBKEY
FTP_PRIKEY
FTP_USER
FTP_PASS
FTP_HOST
FTP_SSL
Memory Limits
WordPress Memory limits are preset on WPMU DEV hosting, and cannot be altered. Memory limits for each WPMU DEV hosting plan are as follows:
Regular Plan | High Frequency Plan |
---|---|
Quantum – 128MB | |
Bronze – 256MB | Bronze Plus – 256MB
Bronze Max – 256MB |
Silver – 256MB | Silver Plus – 256MB
Silver Max – 256MB |
Gold – 512MB | Gold Plus – 512MB |
Platinum – 2048MB | Platinum Plus – 2048MB |
Uranium – 2048MB | Uranium Plus – 2048MB |
Titanium – 2048MB | |
Palladium – 2048MB |
Post Revisions
Did you know that WordPress has a revision feature that lets you revert posts and pages back to older versions in the event you make a mistake? Though helpful, this feature can expand your website’s database size, eventually leading to bloating.
For this reason, WordPress revisions are set to a maximum of 5 on sites we host.
You can, however, increase the number of allowable revisions on your website if needed. To do so, you will need to access and edit your website’s wp-config.php file via SFTP, or through the File Manager.
Once there, locate the line which includes this code define( 'WP_POST_REVISIONS', 5 );
Then replace “5” with any number you prefer, or change that to “true” for unlimited revisions:
define( 'WP_POST_REVISIONS', true )
;
Don’t forget to save the changes you just made before exiting.
Plugin & Theme File Editors
A default WordPress installation includes plugin and theme file editors in the wp-admin. These tools enable any user with the administrator role to directly edit the code of any installed theme or plugin on your site.
These editing tools are disabled on all sites hosted with us to help minimize security risks. However, if you prefer to have them enabled in your wp-admin, you can edit your site’s wp-config.php file and remove this constant, or change the value to false:
define( 'DISALLOW_FILE_EDIT', true );
Note that if you have Defender installed on your site, you don’t even need to edit the wp-config.php file. Simply go to Defender > Recommendations, and ensure the Disable the file editor recommendation is not actioned.
14.2 Allowed SSH Commands
Copy chapter anchor to clipboardHere is a list of all of the SSH commands we allow:
- awk
- basename
- bunzip2
- bzip2
- cat
- cd
- clear
- col
- colrm
- column
- composer
- cp
- curl
- cut
- date
- du
- echo
- egrep
- expand
- fgrep
- fmt
- fold
- gettext
- git
- git-receive-pack
- git-shell
- git-upload-archive
- git-upload-pack
- grep
- gunzip
- gzip
- head
- help
- iconv
- join
- less
- ll
- ln
- look
- ls
- mkdir
- more
- mv
- mysql
- mysqldump
- nano
- nl
- npm
- pager
- paste
- perl
- php
- pr
- rm
- rsync
- scp
- sed
- sort
- ssh-keygen
- tail
- tar
- touch
- tsort
- uname
- unexpand
- uniq
- unzip
- vi
- vim
- wc
- wget
- wp
- zcat
- zgrep
- zip
14.3 Disabled functions - php.ini
Copy chapter anchor to clipboardBelow you will find a list of disabled functions on our hosting.
- exec
- shell_exec
- passthru
- system
- proc_open
- popen
- show_source
- posix_kill
- posix_mkfifo
- posix_setpgid
- posix_setsid
- posix_setuid
- posix_getpwuid
- posix_uname
- pclose
- dl
- disk_free_space
- diskfreespace
- disk_total_space
- proc_close
- proc_get_status
- proc_nice
- proc_terminate
- symlink
- link
- escapeshellarg
- escapeshellcmd
- highlight_file
- lchgrp
- lchown
- prog_get_status
- getmypid
- getmyuid
- getmygid
- getrusage
- getmyinode
- get_current_user
- libxml_disable_entity_loader
- pcntl_alarm
- pcntl_fork
- pcntl_waitpid
- pcntl_wait
- pcntl_wifexited
- pcntl_wifstopped
- pcntl_wifsignaled
- pcntl_wifcontinued
- pcntl_wexitstatus
- pcntl_wtermsig
- pcntl_wstopsig
- pcntl_signal
- pcntl_signal_dispatch
- pcntl_get_last_error
- pcntl_strerror
- pcntl_sigprocmask
- pcntl_sigwaitinfo
- pcntl_sigtimedwait
- pcntl_exec
- pcntl_getpriority
- pcntl_setpriority
- putenv
- opcache_get_configuration
- opcache_get_status
14.4 Disabled functions - PHP CLI
Copy chapter anchor to clipboardBelow you will find a list of disabled functions on our hosting.
- shell_exec
- passthru
- system
- show_source
- posix_kill
- posix_mkfifo
- posix_setpgid
- posix_setsid
- posix_setuid
- posix_getpwuid
- posix_uname
- pclose
- dl
- disk_free_space
- diskfreespace
- disk_total_space
- proc_get_status
- proc_nice
- proc_terminate
- symlink
- link
- escapeshellcmd
- highlight_file
- lchgrp
- lchown
- prog_get_status
- getmypid
- getmyuid
- getmygid
- getrusage
- getmyinode
- libxml_disable_entity_loader
- pcntl_alarm
- pcntl_fork
- pcntl_waitpid
- pcntl_wait
- pcntl_wifexited
- pcntl_wifstopped
- pcntl_wifsignaled
- pcntl_wifcontinued
- pcntl_wexitstatus
- pcntl_wtermsig
- pcntl_wstopsig
- pcntl_signal
- pcntl_signal_dispatch
- pcntl_get_last_error
- pcntl_strerror
- pcntl_sigprocmask
- pcntl_sigwaitinfo
- pcntl_sigtimedwait
- pcntl_exec
- pcntl_getpriority
- pcntl_setpriority
- opcache_get_configuration
- opcache_get_status
14.5 Modifying PHP with .user.ini
Copy chapter anchor to clipboardIdeally, you would not need to even consider modifying any variables in a .user.ini file, as our managed hosting for WordPress & server architecture are optimized for best performance for WordPress installs.
However, WPMU DEV members can modify some php settings like max_input_vars with a .user.ini file if absolutely necessary. A .user.ini file is a simple text file you create and place within the WordPress root directory. It only impacts the PHP settings for the directory in which it exists and that folder’s sub-directories.
While some PHP settings can be modified within any system-wide limitations of our managed hosting for WordPress, it’s important to note that they cannot circumvent or exceed those limitations. Also, certain variables cannot be altered on our managed hosting for WordPress:
- The memory_limit settings are fixed for each hosting plan as detailed in the wp-config.php Constants Protection chapter above.
- The max_execution_time is fixed at 300s for all hosting plans.
- The upload_max_filesize and post_max_size are fixed at 128MB for all hosting plans.
If you are uncertain if the PHP setting you wish to modify is allowed, please contact support.
14.5.1 Creating a .user.ini file
Link to chapter 5The easiest way to add a .user.ini file to the public_html directory is to create and upload a simple text file with an FTP client. Filezilla is used here, but the process is essentially the same for other popular FTP clients.
Open your FTP client and connect to your site. If you need help with that, follow the guidance provided in the Connection Info section of our SFTP/SSH guide.
Open the public_html directory, and right-click, or control-click on a Mac, anywhere within the file list area and click the Create new file option.
Name the file .user.ini, being sure to include the period before the word user.
Right-click the new .user.ini file and click View/Edit to open the file in your FTP client’s editor. Insert your PHP settings directives, then save and upload the file. It may take a few minutes for the settings to propagate.
Insert your PHP settings directives, then save and upload the file. It may take a few minutes for the settings to propagate.
14.5.2 Verify PHP with phpinfo.php
Link to chapter 5If you wish to view both the default system PHP settings and your local settings, you may do so by creating a file within the public_html directory in the same manner described above, only name the file phpinfo.php. Paste this single line of code into the file, then save and upload:
<?php phpinfo(); ?>
Next, enter your URL, followed by the extension /phpinfo.php, into a browser. This will retrieve a report that shows which PHP build is running, some information about your server, and both the system and local PHP settings. You can also compare your local settings to the default php.ini settings by checking the Local Value and Master Value columns under the various section headings.
It’s a good idea to remove the phpinfo.php file from your site after you’ve viewed the report. As long as the file exists, that report can be produced by anyone from any browser.
14.6 Get Support
Copy chapter anchor to clipboardIf you still have questions or need assistance after reading this document, please don’t hesitate to contact our support superheroes using the available options under the Support tab in your Hub or via the Support tab in your WPMU DEV Dashboard.