Knowledge Base

Browse by category or search below to find articles on installation, configuration, troubleshooting, and more.

How to Enable XSendFile for Apache


It is possible to let Apache handle static file serving via mod_xsendfile. This dramatically increases performance for 'local' and 'direct' file storage, shifting the download process away from PHP and onto Apache.


Installation (non-cPanel)

On Debian and Ubuntu systems use:

apt-get install libapache2-mod-xsendfile 


Installation in cPanel

Via SSH:

yum install ea4-experimental


In WHM, using EasyApache 4 choose the following modules:

  • XSendFile
  • Env


Provision via WHM to enable XSendFile.

  • Appended /etc/apache2/conf.d/includes/post_virtualhost_global.conf with XSendFilePath /home/[path]/public_html/
  • Restart Apache


Apache Configuration

Configuration of mod_xsendfile for Apache below. As of YetiShare v4.0 this is included in the .htaccess file. If it's not there add it at the top.

<IfModule mod_xsendfile.c>
  <Files *.php>
    XSendFile On
    SetEnv MOD_X_SENDFILE_ENABLED 1
  </Files>
</IfModule>
  • XSendFile: enables web server handling of X-Sendfile headers (and therefore file serving) for the specified Directory

 

In your global Apache config (apache2.conf) for the site add this: (replace with your path to YetiShare, restart Apache after)

XSendFilePath /home/path/to/yetishare/install/public_html/

You can find the path to your Apache config file by calling this via SSH:

/usr/sbin/apache2 -V

Note this line in the output:

Server compiled with....<br>-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"


Enable on YetiShare

Login to your admin area, go to 'file servers' navigation, click 'edit' on the relevant file server. Scroll to the 'Improved Downloads' option and select 'XSendFile'.


Possible Issues

When adding the XSendFilePath to apache2.conf you may get a failure on Apache restart like:

Invalid command 'XSendFilePath', perhaps misspelled or defined by a module not included in the server configuration

It is likely that you are using an earlier version of mod_xsendfile which doesn't yet support XSendFilePath. Instead, remove that line from apache2.conf. Add the following to your root .htaccess file:

<IfModule mod_xsendfile.c>
  <Files *.php>
    XSendFile On
    XSendFileAllowAbove On
    SetEnv MOD_X_SENDFILE_ENABLED 1
  </Files>
</IfModule>



Added: 25th February 2026