Senin, 15 Juni 2020

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"

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>

Share

& Comment

0 komentar:

Posting Komentar

 

Copyright © 2015 Catatan Pribadi™ is a registered trademark.

Designed by Templateism | Templatelib. Hosted on Blogger Platform.