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-experimentalIn 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>
0 komentar:
Posting Komentar