Php FastCGI and Xcache in Magento using .htaccess

vps

#1

Hi,

I’m running Magento at my VPS and I would like to enable the FastCGI using the .htaccess and configure correct the Xcache.

I enable the Xcache at DreamHost and configure the PHPrc like below.
My configuration of phprc is correct?

At the .htaccess I have the following lines but I don´t know how to enable the fastcgi correctly.

I would like to ask before I crash the website.

Thanks!

[color=#FF0000].htaccess[/color]

[quote]############################################

uncomment these lines for CGI mode

make sure to specify the correct cgi php binary file name

it might be /cgi-bin/php-cgi

Action php5-cgi /cgi-bin/php5-cgi

AddHandler php5-cgi .php

############################################

GoDaddy specific options

Options -MultiViews

you might also need to add this line to php.ini

cgi.fix_pathinfo = 1

if it still doesn’t work, rename php.ini to php5.ini

############################################

this line is specific for 1and1 hosting

#AddType x-mapp-php5 .php
#AddHandler x-mapp-php5 .php

############################################

default index file

DirectoryIndex index.php

############################################

adjust memory limit

php_value memory_limit 64M

php_value memory_limit 256M
php_value max_execution_time 800000

############################################

disable magic quotes for php request vars

php_flag magic_quotes_gpc off

############################################

disable automatic session start

before autoload was initialized

php_flag session.auto_start off

############################################

enable resulting html compression

php_flag zlib.output_compression on

###########################################

disable user agent verification to not break multiple image upload

php_flag suhosin.session.cryptua off

###########################################

turn off compatibility with PHP4 when dealing with objects

php_flag zend.ze1_compatibility_mode Off
########################################### # disable POST processing to not break multiple image upload
SecFilterEngine Off
SecFilterScanPOST Off

############################################

enable apache served files compression

http://developer.yahoo.com/performance/rules.html#gzip

# Insert filter on all content
SetOutputFilter DEFLATE
# Insert filter on selected content types only
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary


## compress text, html, javascript, css, xml:

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:

<files *.html>
SetOutputFilter DEFLATE
</files>

############################################

make HTTPS env vars available for CGI mode

SSLOptions StdEnvVars

############################################

enable rewrites

Options +FollowSymLinks
RewriteEngine on

############################################

you can put here your magento root folder

path relative to web root

RewriteBase /magento/

RewriteBase /
RewriteRule ^index\.php$ - [L]

############################################

uncomment next line to enable light API calls processing

RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]

############################################

rewrite API2 calls to api.php (by now it is REST only)

RewriteRule ^api/rest api.php?type=rest [QSA,L]

############################################

workaround for HTTP authorization

in CGI environment

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

############################################

TRACE and TRACK HTTP methods disabled to prevent XSS attacks

RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
RewriteRule .* - [L,R=405]

############################################

redirect for mobile user agents

#RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$
#RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
#RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302]

############################################

always send 404 on missing files in these folders

RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################

never rewrite for existing files, directories and links

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

############################################

rewrite everything else to index.php

RewriteRule .* index.php [L]

############################################

Prevent character encoding issues from server overrides

If you still have problems, use the second line instead

AddDefaultCharset Off
#AddDefaultCharset UTF-8

############################################

By default allow all access

Order allow,deny
Allow from all

###########################################

Deny access to release notes to prevent disclosure of the installed Magento version

<Files RELEASE_NOTES.txt>
    order allow,deny
    deny from all
</Files>

############################################

If running in cluster environment, uncomment this

http://developer.yahoo.com/performance/rules.html#etags

FileETag none

###########################################

Deny access to cron.php

<Files cron.php>

############################################

uncomment next lines to enable cron access with base HTTP authorization

http://httpd.apache.org/docs/2.2/howto/auth.html

Warning: .htpasswd file should be placed somewhere not accessible from the web.

This is so that folks cannot download the password file.

For example, if your documents are served out of /usr/local/apache/htdocs

you might want to put the password file(s) in /usr/local/apache/.

    #AuthName "Cron auth"
    #AuthUserFile ../.htpasswd
    #AuthType basic
    #Require valid-user

############################################

    Order allow,deny
    Deny from all

</Files>
############################################ ## Add default Expires header ## http://developer.yahoo.com/performance/rules.html#expires

Enable expirations

ExpiresActive On

Default directive

ExpiresDefault “access plus 1 month”

My favicon

ExpiresByType image/x-icon “access plus 1 month”

Images

ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg “access plus 1 month”

CSS

ExpiresByType text/css “access plus 10 days”

Javascript

ExpiresByType text/javascript "access plus 2 week"
ExpiresByType application/javascript "access plus 2 week"
ExpiresByType application/x-javascript "access plus 2 week"
ExpiresByType application/x-font-woff “access plus 2 week”

ExpiresDefault "access plus 1 year"

[/quote]

[color=#FF0000]PHPRC[/color]

[quote]upload_max_filesize = 500M
post_max_size = 505M
max_execution_time = 18000
max_input_time = 18000
memory_limit = 1000M

[xcache]
; ini only settings, all the values here is default unless explained

; select low level shm/allocator scheme implementation
xcache.shm_scheme = “mmap”
; to disable: xcache.size=0
; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size = 64M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count = 2
; just a hash hints, you can always store count(items) > slots
xcache.slots = 8k
; ttl of the cache item, 0=forever
xcache.ttl = 0
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval = 0

; same as above but for variable cache
xcache.var_size = 0M
xcache.var_count = 1
xcache.var_slots = 8K
; default ttl
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300

xcache.test = Off
; N/A for /dev/zero
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory.
; Use something like “/tmp/xcache” if you want to turn on ReadonlyProtection
; 2 group of php won’t share the same /tmp/xcache

; leave it blank(disabled) or “/tmp/phpcore/”
; make sure it’s writable by php (without checking open_basedir)
xcache.coredump_directory = “”

; per request settings
xcache.cacher = On
xcache.stat = On
xcache.optimizer = On

[xcache.coverager]
; per request settings
; enable coverage data collecting for xcache.coveragedump_directory and xcache_$
xcache.coverager = Off

; ini only settings
; make sure it’s readable (care open_basedir) by coverage viewer script
; requires xcache.coverager=On
xcache.coveragedump_directory = “”
; {{{ The following lines were automatically added by DreamHost
extension=xcache.so
; }}} That’s all from DreamHost
[/quote]