Linode Forum
Linode Community Forums
 FAQFAQ    SearchSearch    MembersMembers      Register Register 
 LoginLogin [ Anonymous ] 
Post new topic  Reply to topic
Author Message
PostPosted: Wed Aug 06, 2014 9:09 am 
Offline
Senior Newbie

Joined: Wed Aug 06, 2014 9:02 am
Posts: 7
Hi all,

I have a VPS with Linode and I have installed all the software necessary (mysql, apache2, php5) on Ubuntu 14.04 x64 to host joomla and wordpress websites. Wordpress websites work fine, even with W3 Total Cache's minify settings on.

Example:
A minified JS resource from my wordpress site
http://salvatoremarchetti.com/alukal/wp ... bhc_PFw.js

The problem is on the Joomla site with jbetolo installed. The configuration.php has the setting: public $gzip = '1';
However the gzipped resources in the source code do not work. When accessed they throw a "Restricted access" error.
Example:
Not working example of new site
http://www.salvatoremarchetti.com/inasi ... ag=5184000

This site is a clone of the original site (a shared server which I will have to leave soon) where the same resource works perfectly.
Working example on original site:
http://www.associazioneculturaleinasia. ... ag=5184000

On the VPS server where I have problems I have used the following commands to install zlib and zip:




In /etc/apt/sources.list I added to the bottom: deb http://us.archive.ubuntu.com/ubuntu saucy main universe

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install zlibc zlib1g zlib1g-dev zlib-bin libgcrypt11-dev

sudo nano /etc/php5/apache2/php.ini
(here I made the following changes)
zlib.output_compression = On
zlib.output_compression_level = -1
implicit_flush = Off
cgi.fix_pathinfo = 1
extension=zip.so

sudo apt-get install apache2-mpm-worker libapache2-mod-fastcgi php5-fpm

sudo a2enmod actions alias fastcgi

Then in /etc/apache2/mods-enabled/fastcgi.conf
I inserted:
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization

sudo service apache2 restart && sudo service php5-fpm restart


sudo mkdir /var/www/cgi-bin
sudo touch /var/www/cgi-bin/php5.fcgi
sudo chown -R www-data:www-data /var/www/cgi-bin
sudo nano /etc/apache2/mods-enabled/fastcgi.conf

This file currently looks like this:

<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
#FastCgiWrapper /usr/lib/apache2/suexec
FastCgiIpcDir /var/lib/apache2/fastcgi

Alias /php5.fcgi /var/www/cgi-bin/php5.fcgi
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5.fcgi

FastCGIExternalServer /var/www/cgi-bin/php5.fcgi -socket /var/run/php5-fpm.sock

<Directory "/var/www/cgi-bin">
Order allow,deny
<Files "php5.fcgi">
Order deny,allow
</Files>
</Directory>
</IfModule>

and changed my conf file: /etc/apache2/sites-available/salvatoremarchetti.com.conf

# domain: salvatoremarchetti.com
# public: /home/my_user_name/public/salvatoremarchetti.com/

<VirtualHost *:80>
# Admin email, Server Name (domain name), and any aliases
ServerAdmin webmaster@salvatoremarchetti.com
ServerName salvatoremarchetti.com
ServerAlias salvatoremarchetti.com
ServerAlias http://www.salvatoremarchetti.com

# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php index.htm
DocumentRoot /home/my_user_name/public/salvatoremarchetti.com/public
<Directory /home/my_user_name/public/salvatoremarchetti.com/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
Require all granted
</Directory>

# Log file locations
LogLevel warn
ErrorLog /home/my_user_name/public/salvatoremarchetti.com/log/error.log
CustomLog /home/my_user_name/public/salvatoremarchetti.com/log/access.log combined

ExpiresActive on

ExpiresByType image/jpg "access plus 60 days"
ExpiresByType image/png "access plus 60 days"
ExpiresByType image/gif "access plus 60 days"
ExpiresByType image/jpeg "access plus 60 days"

ExpiresByType text/css "access plus 1 days"

ExpiresByType image/x-icon "access plus 1 month"

ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"

</VirtualHost>


After that I did this:

sudo a2enmod deflate

At the bottom of: /etc/apache2/apache2.conf I added: Include httpd.conf

I created an empty httpd.conf file in /etc/apache2/httpd.conf
and pasted in it:
LoadModule deflate_module modules/mod_deflate.so

sudo ln -s /etc/apache2/mods-available/deflate.load /etc/apache2/mods-enabled/

sudo service apache2 restart





It is obvious that somewhere along the line I have made a huge mess of it all. I have a feeling that if I uninstalled this bit and reinstalled it in some other way it would work but I don't know what the problem is and don't know how to solve it.

Any help will be appreciated.

thanks in advance


Top
   
PostPosted: Wed Aug 06, 2014 9:35 am 
Offline
Linode Staff

Joined: Mon Jun 16, 2014 2:27 pm
Posts: 50
Location: Galloway, NJ
I could be wrong in this, and I don't have a lot of experience with Joomla's functionality specifically, but I believe you need to add output filters (AddOutputFilterByType) in your .htaccess for Joomla and mod_deflate to work together.

http://httpd.apache.org/docs/2.4/mod/mod_deflate.html

I'm sure the following will work appropriately (and it's the default suggested by Apache in Apache 2.4), but you can add more if necessary:

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript

I also believe you need the mod_filter module to run those filters in the .htaccess.

Let us know how you fare,

Dave.


Top
   
PostPosted: Wed Aug 06, 2014 9:56 am 
Offline
Senior Newbie

Joined: Wed Aug 06, 2014 9:02 am
Posts: 7
This is my .htacces

What do you think? Anything missing?





# Patched on: %2014-%05-%15 %12:%May:%48
# Auto-patched by jbetolo

<FilesMatch "\.(gif|jpg|jpeg|png|swf|pdf|css|js|html|ico?|xml|txt)$">
FileETag none
</FilesMatch>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A600
ExpiresByType image/x-icon A5184000
ExpiresByType application/x-javascript A5184000
ExpiresByType application/javascript A5184000
ExpiresByType text/css A5184000
ExpiresByType text/javascript A5184000
ExpiresByType image/gif A5184000
ExpiresByType image/png A5184000
ExpiresByType image/jpeg A5184000
ExpiresByType text/plain A86400
ExpiresByType application/x-shockwave-flash A5184000
ExpiresByType video/x-flv A5184000
ExpiresByType application/pdf A5184000
ExpiresByType text/html A600
</IfModule>


# Options +FollowSymLinks

## Mod_rewrite in use.

RewriteEngine On


AddType video/ogg .ogv
AddType audio/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
AddType audio/webm .weba
AddType text/plain .srt



## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#

# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]


# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]


# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]


# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})


# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]


## End - Rewrite rules to block out some common exploits.



## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

RewriteBase /inasia/

## Begin - Joomla! core SEF Section.

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php


# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]


# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f


# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d


# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]


## End - Joomla! core SEF Section.


#DirectoryIndex index.html index.php


## EXPIRES CACHING ##
<FilesMatch "\.(gif|jpg|jpeg|png|swf|pdf|css|js|html|ico?|xml|txt)$">
FileETag none
</FilesMatch>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 2 days"

ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"

ExpiresByType text/css "access plus 1 month"
ExpiresByType text/plain "access plus 1 month"
ExpiresByType text/html "access plus 1 month"

ExpiresByType application/pdf "access plus 1 month"

ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"

ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType video/x-flv "access plus 1 month"
</IfModule>
## EXPIRES CACHING ##


# Add correct content-type for fonts
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType font/x-woff .woff
AddType image/svg+xml .svg

# Compress compressible fonts
AddOutputFilterByType DEFLATE font/ttf font/otf image/svg+xml

# Add a far future Expires header for fonts
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/otf "access plus 1 year"
ExpiresByType font/x-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"


<ifModule mod_deflate.c>
#AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain
#AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript application/json

# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/json

AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf

AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
</IfModule>


Top
   
PostPosted: Wed Aug 06, 2014 11:33 am 
Offline
Linode Staff

Joined: Mon Jun 16, 2014 2:27 pm
Posts: 50
Location: Galloway, NJ
Do you have mod_filter enabled/installed?

EDIT: Can you show the output of 'apache2ctl -M'? This will show which modules you have installed and enabled.

Thanks,

Dave.


Top
   
PostPosted: Wed Aug 06, 2014 11:34 am 
Offline
Senior Newbie

Joined: Wed Aug 06, 2014 9:02 am
Posts: 7
Thanks for the message
How do I check this?


Top
   
PostPosted: Wed Aug 06, 2014 11:41 am 
Offline
Linode Staff

Joined: Mon Jun 16, 2014 2:27 pm
Posts: 50
Location: Galloway, NJ
As per my edit, run `apache2ctl -M` on your Linode's command line as root.

Thanks,

Dave.


Top
   
PostPosted: Wed Aug 06, 2014 12:02 pm 
Offline
Senior Newbie

Joined: Wed Aug 06, 2014 9:02 am
Posts: 7
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
actions_module (shared)
alias_module (shared)
auth_basic_module (shared)
auth_digest_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dav_module (shared)
dav_fs_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
expires_module (shared)
fastcgi_module (shared)
fcgid_module (shared)
filter_module (shared)
headers_module (shared)
include_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
php5_module (shared)
python_module (shared)
rewrite_module (shared)
setenvif_module (shared)
socache_shmcb_module (shared)
ssl_module (shared)
status_module (shared)
suexec_module (shared)
suphp_module (shared)



thanks


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
RSS

Powered by phpBB® Forum Software © phpBB Group