Autor wpisu: l3l0, dodany: 26.04.2011 20:49, tagi: symfony, php
Autor wpisu: Tomasz Kowalczyk, dodany: 19.04.2011 23:24, tagi: symfony, framework, php
Autor wpisu: l3l0, dodany: 18.04.2011 23:26, tagi: php, symfony
Przygotowania: Przed instalacją oraz zabawą z Varnishem zapoznałem się najpierw z oficialną dokumentacją http://www.varnish-cache.org/docs/2.1/index.html oraz ze specyfikacją HTTP 1.1 (http://tools.ietf.org/html/rfc2616), gdyż Varnish cache w dużym stopniu polega na tym protokole, a odświeżyć informacje zawsze można. Obejrzałem też prezentacje o Varnishu z sflive2011 http://symfony.com/video/Paris2011/56. Naprawdę polecam te źródła wszystkim którzy są nowi w temacie.
Instalacja: Jako że jestem szczęśliwym posiadaczem Ubuntu z rodziny surykatek (Meerkat) instalacja była naprawdę skąplikowana czyli “sudo apt-get install varnish”. Zainstalowana została wersja (varnish-2.1.3 SVN)
Konfiguracja Po próbie odpalenia demona przez “sudo /etc/init.d/varnish start” dostałem:
* Not starting HTTP accelerator varnishd [ OK ]
Troche mnie to skołowało ponieważ dopiero co zainstalowałem, a już nie działa.;) Naszczęscie na pomoc przyszedł wujek Google przez co znalazłem tego posta
http://vladgh.com/blog/varnish-nginx-and-php-533-ubuntu-1010.
Okazało się że wystarczy zmienić “START=no” na “START=yes” w “/etc/default/varnish” i po wywołaniu “sudo /etc/init.d/varnish start” dostajemy
* Starting HTTP accelerator varnishd [ OK ]
od razu lepiej!
Konfiguracje ESI wziąłem z http://symfony.com/doc/2.0/cookbook/cache/varnish.html więc mój plik /etc/varnish/varnish.vcl wygląda tak
# This is a basic VCL configuration file for varnish. See the vcl(7) # man page for details on VCL syntax and semantics. # # Default backend definition. Set this to point to your content # server. # backend default { .host = "127.0.0.1"; .port = "80"; } sub vcl_recv { set req.http.Surrogate-Capability = "abc=ESI/1.0"; } sub vcl_fetch { if (beresp.http.Surrogate-Control ~ "ESI/1.0") { esi; } } sub vcl_hit { if (req.request == "PURGE") { set obj.ttl = 0s; error 200 "Purged"; } } sub vcl_miss { if (req.request == "PURGE") { error 404 "Not purged"; } }
Postanowiłem też zmienić domyślne ustawienia demona varnisha. Musiałem wyedytować plik “/etc/default/varnish” i zdefinować własne DEAMON_OPS które wygląda tak
Autor wpisu: Tomasz Kowalczyk, dodany: 08.04.2011 18:46, tagi: symfony, framework, php
Autor wpisu: singles, dodany: 07.04.2011 18:26, tagi: symfony, zend_framework
Zapraszam do drugiej edycji serii Oddam książkę za darmo. Dzisiejsza zabawa trochę różni się od poprzedniej, patrz akapit „Sponsor” ;)
Książka
Od dzisiaj możecie powalczyć o pozycję PHP5. Programowanie z wykorzystaniem Symfony, CakePHP, Zend Framework.
Zadanie
Zadanie polega na napisania w komentarzu krótkiego quick-tipa w języku PHP. Przykłady tego, co rozumiem przez quick tip:
$value = $var ?: 0; // instead of $value = $var ? $var : 0
$data = array( 1 => array( 'value' => 10 ), 2 => array( 'value' => 20 ) 5 => array( 'value' => 30 ) ) $sum = array_sum(array_map('array_pop', $data))); // = 60 //instead of $sum = 0; foreach($data as $el) { $sum += $el['value']; }
Od siebie zachęcam do pisania kodu w komentarzach w ramach znacznika <pre lang="PHP">
.
Koniec konkursu
Konkurs kończy się w poniedziałek 11 marca o godzinie 00:01. Wygrywa ta osoba, której php quick tip okaże się najciekawszy.
Sponsor ;)
Dzisiejszy konkurs „sponsorowany” jest przez @uolot‘a – książka jest jego – chciał ją oddać. On także wymyślił pytanie, tak więc wyrazy uznania kierujcie w jego stronę :)