papilio

Архив на December, 2008

Flex Builder бесплатно для студентов

Недавно я захотел попробовать поразбираться в технологии Adobe Air, после того, как Adobe выпустила стабильную версию под Linux.

Оказывается, есть три возможных путей разработки приложения под Air:

  • Как Ajax-разработчик
  • Как Flex-разработчик
  • Как Flash-разработчик

С первым всё понятно: можно скачать бесплатную Aptana и начать создавать приложения. Но мне захотелось попробовать Flex Builder: ведь в нём можно и не только с Air работать.

Но Flex Builder Pro 3 стоит почти 250$. Я понимаю, что для некоторых это не проблема, но, тем не менее, я всегда стараюсь найти что-то легальное. Так оказывается, что Flex Builder Adobe распространяет для студентов бесплатно!

Для этого надо зайти на специальный сайт и ввести свои данные (также приложить отсканированный студенческий или ISIC).

Бесплатный Adobe Flex Builder для студентов

Бесплатный Adobe Flex Builder для студентов

На следующий день после того, как я всё заполнил, мне прислали регистрационный ключ. Теперь можно эксперементировать с AIR. Итак, ссылка на специальную страницу:

Метки: , , , , , , , , , ,

Типограф для WordPress

Я думаю, что многие знакомы с типографикой: она важна для правильно оформления текста.

  • Правильная кавычки — это «ёлочки».
  • Тире — это не дефис.
  • Минус (2−1) — это тоже не дефис.
  • Многоточие… совсем не три точки.
  • И другие правила

Но ведь многих символов просто нет на клавиатуре! Да, можно воспользоваться, например, типографской раскладкой Ильи Бирмана — но не у всех же она стоит.

Именно по этому и создаются т.н. типографы — специальные программы и скрипты, которые всё делают за вас. Например, поставили три точки, а программа — нужный символ.

Такая программа есть и для WordPress: WP Typograph Lite от Искариота.
Основная функциональность:

  • Правильные кавычки.
  • Длинное тире между словами — с запретом отрывать от предыдущего слова.
  • — Черта, — в диалогах.
  • Минус между цифрами 0–9.
  • Многоточие — тремя точками...
  • Убирает точку в конце заголовка страницы.
  • В тегах <code>, <pre> и <script> (и некоторых других) текст не изменяет.
  • В <code> автоматически заменяет < на &lt;, исправляет кавычки на машинописные для корректного копирования-вставки.
  • Заменяет функцию wpautop, исправляет ошибки визуального редактора со вставкой тегов.
  • Форматирует некоторые спецсимволы, такие как ½, ©, и др.
  • Делает ссылки в комментариях кликабельными (с http и www), автоматически сокращая анкор, если ссылка длинная.

У меня стоит. Рекомендую. Итак, основные ссылки:

Метки: , , , , , , ,

Google Short Links

Этой осенью Google включил Labs в Apps не только для своей почты, но и вообще во всём сервисе. Теперь там появляются новые интересные сервисы от различных разработчиков. В качестве примера я расскажу о Google Shortlinks.

Чтобы включить что-нибудь из Labs в Google Apps надо сначала, конечно, включить английский (US) интерфейс, а затем перейти по ссылке добавление новых сервисов (на этой же странице можно подключить Google App Engine или, например, недавно там появились контакты):

Добавление нового сервиса в Google Apps

Добавление нового сервиса в Google Apps

Затем нажать на ссылку See more services from Google Labs:

See more services from Google Labs

See more services from Google Labs

А уже там можно выбрать нужный сервис. Их пока всего три: Moderator, Short Links и Code Review:

Google Labs

Google Labs

Итак, мы включаем Short Links, указываем нужный нам адрес, прописываем всё в DNS и… а для чего нужен этот сервис? Это похоже на сервисы, подобные TinyURL: указываем длинную ссылку, а нам дают короткую. В принципе, это и есть полное описание. Кстати, Short Links написан на python и расположен на Google App Engine.

Google Short Links

Google Short Links

Однако, есть ряд преимуществ и существенных отличий:

  • Собственный домен для коротких ссылок.
  • Учёт количества переходов по ссылке (можно использовать для анализа чего-либо).
  • Личные ссылки (для удобства, что-то вроде быстрого набора).

Недавно добавились полезные букмарклеты, а также хэшированные ссылки (не надо самому придумывать короткую ссылку).

Я пользуюсь. Удобная замена TinyURL :)

Метки: , , , , , , , , , ,

Установка Ubuntu 8.10 на Eee PC

Сегодня я решил попробовать установить Ubuntu 8.10 Intrepid Ibex на свой Eee PC. До этого я уже устанавливал как 7.10, так и 8.04, поэтому мне было очень интересно посмотреть, что же изменилось с тех пор.

Итак, в отличие от предыдущих установок в этот раз стало всё намного проще чуть ли не по каждому шагу.

Запись Ubuntu на флэшку

  1. Находим свободную флэшку (1-2 Гб) и вставляем в компьютер.
  2. Затем надо скачать UNetbootin и запустить его. С помощью этой программы теперь можно легко попробовать любой дистрибутив линукса. Достаточно лишь иметь флэшку размером более гигабайта.
Unetbootin

Unetbootin

  1. Теперь выбираем Ubuntu 8.10_Live и ждём окончания загрузки. (Или можно отдельно скачать образ и также воспользоваться Unetbootin.)
Выбор Ubuntu Live в Unetbootin

Выбор Ubuntu Live в Unetbootin

  1. Установка начнётся автоматически.
Установка на флэшку с Unetbootin

Установка на флэшку с Unetbootin

Установка Ubuntu 8.10 на Eee PC

  1. Теперь вставляем эту флэшку в наш Eee PC и включаем его. В процессе загрузки (когда появляется логотип Asus Eee PC) нажимаем клавишу Esc, чтобы перейти в меню временного выбора источника загрузки. Выбираем нашу флэшку.
  2. Появится окно загрузки Unetbootin: выбираем Default и ждём, когда загрузится Ubuntu.
  3. Теперь, если у вас ещё Eee PC серии 700, то надо отключить визуальные эффекты: System → Preference → Appearance → Visual Effects → None. Это необходимо для того, чтобы иметь возможность перемещать окна по Alt+правая кнопка мыши.
  4. Остаётся только запустить установку с рабочего стола и дождаться её окончания.
  5. После перезагрузки у нас загрузится свежеустановленная система.

Настройка системы Ubuntu 8.10 на Eee PC

  1. Пока у нас нет Wi-Fi, поэтому придётся подключится к проводному интернету.
  2. Вначале необходимо поставить перекомпилированное ядро (специально для Eee PC). Для этого сначала запускаем терминал и там вводим:
    wget http://www.array.org/ubuntu/array-intrepid.list

    Затем

    sudo mv -v array-intrepid.list /etc/apt/sources.list.d/
    — всё это добавило deb http://www.array.org/ubuntu intrepid eeepc в источники приложений (репозитарии).
  3. Теперь надо установить публичный ключ:
    wget http://www.array.org/ubuntu/array-apt-key.asc
    sudo apt-key add array-apt-key.asc
  4. Обновляем локальный кэш приложений:
    sudo apt-get update
  5. Теперь устанавливаем новое ядро:
    sudo apt-get install linux-eeepc linux-headers-eeepc
  6. Перезагружаем Eee PC.
  7. Осталось теперь только запустить специальный скрипт, который включит нужные Fn-клавиши и добавит в меню специальную программу по управлению электропитанием.
  8. Открываем терминал и выполняем:
    wget http://www.informatik.uni-bremen.de/~elmurato/EeePC/Intrepid_ACPI_scripts-EeePC.tar.gz
    tar xfvz Intrepid_ACPI_scripts-EeePC.tar.gz
    cd Intrepid_ACPI_scripts-EeePC/
    chmod +x acpi-scripts.sh
    ./acpi-scripts.sh install

Теперь всё должно работать, а в меню должна появится специальная утилита.

Но, тем не менее, есть некоторые проблемы. Если вы решите обновить систему, то, скорее всего, заметите, что всё слетело. Для этого в пункте №8 при работе со скриптом надо выполнить не install, а update, то есть:

wget http://www.informatik.uni-bremen.de/~elmurato/EeePC/Intrepid_ACPI_scripts-EeePC.tar.gz
tar xfvz Intrepid_ACPI_scripts-EeePC.tar.gz
cd Intrepid_ACPI_scripts-EeePC/
chmod +x acpi-scripts.sh
./acpi-scripts.sh update

Выводы: система работает хорошо и быстрее, на мой взгляд, чем 8.04. Но всё-таки я пока остаюсь на Xandros или Xubuntu (ещё не пробовал).

Ссылки по теме:

Метки: , , , , , , , ,

Sitemap для WordPress MU

Известно, что использование sitemap (информация в Википедии) — это в любом случае хорошо, так как прежде всего мы облегчаем поисковым системам жизнь, указывая, какие страницы есть на сайте (блоге). А если учитывать, что и Google, и Яндекс поддерживают sitemap (в том числе — добавление через инструменты вебмастера), то всё-таки стоит их создать для сайта.

Для WordPress есть отличный плагин — Google XML Sitemaps, который делает полностью всё сам. Добавляет нужные пути в файл sitemap.xml, пересоздаёт его в фоновом режиме после каждой новой публикации и пингует поисковые системы. Но в WordPress MU его нужно немного подправить, чтобы он правильно работал.

Итак, ниже идёт переведённый и чуть изменённый вариант пошагового руководства по настройке sitemap для WordPress MU:

  1. Cкачайте новую версию Google XML Sitemap и разархивируйте его в папку с плагинами.
  2. Откройте файл sitemap-core.php в директории wp-content/plugins/google-sitemap-generator и найдите там второе вхождение строки
    return $res;
  3. Выше этой строчки вставьте
    global $blog_id;
    if ($blog_id != 1)
    {$res .= 'wp-content/blogs.dir/' . $blog_id . '/files/';}
  4. В файле wp-includes/functions.php найдите
    'htm|html' =&gt; 'text/html',
  5. Строчкой выше вставьте
    'xml' =&gt; 'text/xml',
  6. Откройте wp-content/blogs.php и найдите
    'htm|html' =&gt; 'text/html',
  7. Строчкой выше вставьте
    'xml' =&gt; 'text/xml',
  8. Если у вас Apache, то откройте .htaccess и найдите
    RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]
  9. Строчкой ниже вставьте
    RewriteRule ^(.*/)?sitemap.xml wp-content/blogs.php?file=sitemap.xml [L]
    RewriteRule ^(.*/)?sitemap.xml.gz wp-content/blogs.php?file=sitemap.xml.gz [L]
  10. Если же у вас Lighttpd, то откройте файл конфигурации и в настройках найдите (это для случая, если используется mod_rewrite)
    "^/(.*)?/?files/(.*)" =&gt; "wp-content/blogs.php?file=$2",
  11. Ниже строчкой вставьте
    "^/(.*)?sitemap.xml$" =&gt; "wp-content/blogs.php?file=sitemap.xml",
    "^/(.*)?sitemap.xml.gz$" =&gt; "wp-content/blogs.php?file=sitemap.xml.gz",
  12. Зайдите в настройки всего сайта (АдминистрированиеПараметры) и в настройках типов файлов укажите дополнительно xml и xml.gz:
    jpg jpeg png gif mp3 mov avi wmv midi mid pdf swf html htm xml xml.gz
  13. Активируйте плагин
  14. В настройках плагина для каждого конкретного сайта укажите собственное размещение файла sitemap.xml. Это должно выглядеть примерно так:
    /home/xxxxxxx/public_html/wp-content/blogs.dir/1/files/sitemap.xml
    — для главного сайта. А для других укажите нужный номер (замените 1) по ID блога. В оригинальной статье предлагается использовать для других блогов x, но у меня почему-то не получилось, поэтому пришлось делать для каждой ленты вручную.
  15. Всё. Теперь можно добавлять sitemap во все поисковики (кстати, можно и в robots.txt)

Для Яндекса (Яндекс.Вебмастер):

Добавление sitemap в Яндекс.Вебмастер

Добавление sitemap в Яндекс.Вебмастер

Для Google (Webmaster Tools):

Добавление sitemap в Google Webmaster Tools

Добавление sitemap в Google Webmaster Tools

Теперь всё работает отлично!

Метки: , , , , , , , , , , , ,

Презентации в интернете

Я недавно писал про то, что Google Docs помогает в учёбе: можно совместно делать презентации прямо в интернете, не устанавливая для этого дополнительного программного обеспечения. Сейчас же я хочу написать не только о таких сервисах, но и о тех, которые можно использовать, если вы просто хотите показать свою презентацию.

Например, вы сделали презентацию в Microsoft PowerPoint и хотите показать её знакомым или выложить в блоге. Как это сделать? Разместить сам .ppt-файл для скачивания? Да, так можно сделать, но стоит всё-таки учесть, что не у всех стоит MS Office или что-то подобное, зато у всех есть (почти у всех) поддержка Flash в браузере. Именно на этом и основаны сервисы, на которые можно закачать уже существующую презентацию, чтобы показать другим, всего лишь дав специальную ссылку или вставив презентацию прямо на блог, как это делается с YouTube-видеороликами.

Итак, ниже речь пойдёт о следующих сервисах:

А также стоит упомянуть сервисы по созданию презентаций:

SlideShare— один из самых популярных подобных сервисов в интернете.

Первая страница SlideShare

Первая страница SlideShare

Популярен, скорее всего, тем, что можно сразу без регистрации закачать свою презентацию и получить ссылку на страницу (например, на секретная ссылка, если презентация была помечена как Private) или код, который можно вставить, например, в блог. Поддерживается одновременная закачка нескольких файлов. Сам процесс закачки очень нагляден:

Загрузка презентации на SlideShare

Загрузка презентации на SlideShare

Из плюсов также можно отметить загрузку презентаций размером аж до 100 Мб. Кроме того есть множество социальных функций: рейтинг, сообщества, комментарии и т.п. Минусы SlideShare: достаточно медленная работа и невозможность загрузки файлов .pptx (MS Office 2007).

authorSTREAM поддерживает .pptx, быстро работает и тоже позволяет закачивать презентации без регистрации.

authorSTREAM

authorSTREAM


Менее популярен, поэтому, наверное, старается внедрить как можно больше различных полезных фишек: API, загрузка презентации на YouTube и т.п. Конечно же, презентацию также можно вставить на свой блог или сайт.

Scribd — другой довольно популярный сервис по обмену презентациями. К сожадению, без регистрации закачать ничего нельзя, зато эта регистрация проходит в один клик сразу же после выбора файла. Система поддерживает очень много форматов (.pptx, ,doc, .pdf, .xls и т.п.) и работает быстро.

Загрузка презентации в Scribd

Загрузка презентации в Scribd


Как и в SlideShare очень много в Scribd построено на социальности: друзья, похожие презентации и т.п.

Стоит отметить, что все вышеописанные сервисы отлично справились с моими тестовыми презентациями (в них находились эффекты, встроенные шрифты (нестандартные), картинки и фотографии). Но SlideShare эффекты вообще удалил, authorSTREAM же оставил всё точь-в-точь, как это выглядело бы в PowerPoint. Теперь же стоит рассказать о сервисах, позволяющих создавать презентации прямо в интернете.

Google Docs — просто, быстро и интегрирован с другими сервисами Google. Большой плюс: одновременная работа и возможность экспорта в .ppt и PDF, а также встроить прямо на страницу в интернете. Но каких-то особенных фишек нет — вообще можно сказать, что всё скудно. Однако, недавно появилось много шаблонов.

Zoho Show — компонент известного Zoho. Предоставляет множество «фишек», в том числе и по работе с текстом. Также есть возможность одновременной работы.

Zoho Show

Zoho Show

SlideRocket — один из самых продвинутых сервисов по созданию презентаций (среди тех, конечно, что я видел). Можно посмотреть презентацию его презентации его возможностей:

Это и различный эффекты, и множество хороших готовых шаблонов. К сожалению, одновременная работа доступна только в платной версии, тем не менее, и бесплатная содержит очень много возможностей.

Выбор за вами, но я всё-таки пока выбрал Google Docs и SlideShare с authorSTREAM.

Ссылки по теме:

Метки: , , , , , , , , ,

Тестирование производительности сервера

Часто требуется протестировать производительность сервера после внесения очередных изменений в конфигурацию. Ведь всего лишь изменением некоторых параметров nginx, apache или lighttpd можно добиться существенного прироста скорости. Но как измерить эту производительность?

Можно воспользоваться чем-то вроде Host Tracker, а можно на самом сервере запустить программу-бенчмарк. Например, ApacheBench.

Пользоваться ей очень легко:

#ab -c5 -n3000 /

где ab — программа, -c5 — количество потоков, а -n3000 — сколько делать запросов. У программы есть много дополнительных параметров (смотрите документацию по ab): можно использовать cookies, POST-запросы, изменённые заголовки и т.п. Всё это позволяет производить полноценное тестирование сервера.

Выдача команды очень информативна:

Document Path:          /
Document Length:        21757 bytes
Concurrency Level:      5
Time taken for tests:   288.255212 seconds
Complete requests:      3000
Failed requests:        0
Write errors:           0
Total transferred:      66777000 bytes
HTML transferred:       65271000 bytes
Requests per second:    10.41 [#/sec] (mean)
Time per request:       480.425 [ms] (mean)
Time per request:       96.085 [ms] (mean, across all concurrent requests)
Transfer rate:          226.23 [Kbytes/sec] received
Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    0   0.5      0      19
Processing:   181  479 186.0    444    1822
Waiting:      166  461 184.7    427    1708
Total:        181  479 186.0    444    1822
Percentage of the requests served within a certain time (ms)
50%    444
66%    525
75%    577
80%    619
90%    732
95%    819
98%    946
99%   1012
100%   1822 (longest request)

Странно, что я раньше не пользовался этой программой: очень удобно.

Метки: , , , , , , , , ,

Защита WordPress от спама

Известно, что блоги на WordPress наиболее подвержены спаму в комментариях. Уже придумано множество стредств, помогающих с ним бороться. Это, конечно, всё плагины, и их можно разделить на две большие группы:

  • Использующие в качестве защиты какой-нибудь Тест Тьюринга: обычно банальная Capcha.
  • Ничего дополнительно не требующие от пользователя для ввода: вся работа и анализ лежит на самом алгоритме.

Я принципиально стараюсь не использовать системы, относящиеся к первому типу, так как самому уже порядком надоело вводить какие-либо капчи всего лишь для того, чтобы оставить комментарий. К счастью, существует довольно много хороших плагинов второго типа.

В WordPress по-умолчанию уже встроен плагин Akismet, который должен бороться со спамом в комментариях. Стоит отдать ему должное: он довольно успешно это делает, но не против русских спамеров. Недавно я нашёл (узнал) ещё о двух плагинах, которые на данный момент 100% защищают от спама и не умеют ошибочных срабатываний (что иногда любит делать Akismet):

WP-SpamFree учитывает то, что в основном спам размещается в блогах автоматически с помощью скриптов, то есть сами спамеры блог не посещают. Используя специальные методы, этот плагин определяет, отправлен ли комментарий с браузера человеком или нет. И делает это успешно.

Parasite Eliminator — продукт отечественный. Имеет хорошую базу «неправильных» адресов сайтов, которые и хотят спамеры оставить на вашем блоге. Работает отлично, можно редактировать чёрные и белые списки.

Эти три решения — Akismet, WP-SpamFree и Parasite Eliminator — пока обеспечивают 100% защиту. Но стоит отметить, что их достаточно легко можно обойти, если спамер умный — тогда я просто в ручную удалю его комментарий.

Метки: , , , , , , , , ,

SSH через браузер

У нас в университете открыты только 80 и 443 порты, да и вообще «выход в сеть» осуществляется через прокси. Естественно, что почти не идёт речи о подключении к консоли нашего сервера через обычный SSH или закачать файл по протоколу sFTP. Да, я пробовал различные способы: например, туннелирование (хорошо описано в статье Using SSH Tunneling). Однако, у нас и это не помогает.

Возникла идея сделать консоль прямо в браузере. И оказывается, что подобное уже есть: данные программы называются Web-based SSH.

Со вторым надо было слишком много возиться, и он не поставился у меня с первого раза, поэтому я стал пробовать Ajaxterm.

Ajaxterm написан на python, поэтому только его по сути и требует для работы. Уже есть в репозитариях многих распространённых систем. Чтобы запустить его, достаточно выполнить следующую команду:

#ajaxterm -d

Что переведёт его в режим демона, прослушивающего порт 8022 (можно изменить при запуске). Но — в целях безопасности — он принимает только локальные запросы, что нам, конечно, не подходит.

Стоит отдельно отметить вопрос безопасности данных решений: это не SSH, следовательно по-умолчанию ничего не шифруется. Конечно, с такими программами надо работать, используя только HTTPS.

В качестве сервера HTTPS я выбрал lighttpd и пропустил ajaxterm как прокси:

 $HTTP["host"] == "term.yourhost.ru" {
        proxy.server = ( "" =>
                (
                 ( "host" => "127.0.0.1",
                   "port" => 8022
                 )
                )
        )
 }

— это я разместил в секции настройки HTTPS. После этого я смог заходить на специальную достаточно хорошо защищённую страницу с любого места.

Ajaxterm

Ajaxterm

Что же предлагает Ajaxterm и удобно ли с ним работать? Да, удобно, а предлагает практически полноценную консоль (работает автодополнение по Tab, есть подсветка), так как всё реализовано с использованием AJAX. В некоторых браузерах может не работать вставка и копирование (например, в Firefox), но если же нужно ввести какие-то специфичные пароли, то я использую KeePass с автонабором.

Рекомендую, если иного выхода нет. Есть ещё бесплатные сервисы, предлагающие консоль через браузер, но я им как-то не доверяю.

Метки: , , , , , , , , , , ,

Увеличение производительности WordPress: WP Super Cache и Lighttpd

Заканчивая цикл статей по mod_magnet и lighttpd стоит упомянуть настройку WP Super Cache. Данный плагин необходим для кэширования страниц WordPress, так как сам WordPress с этим справляется плохо. Как работает этот плагин? Существует несколько режимов, но я использовал два:

  • Сохраняется отдельно страница блога (уже закэшированная) на диске в виде обычного HTML-файла. Этот файл и отдаётся при запросе. Следовательно отдаётся просто статика, а никаких новых вычислений делать не надо.
  • Данный файл сжимается gzip и располагается рядом. Если браузер посетителя позволяет получить сжатую страницу, то она ему и отдаётся.

Вся проблема как всегда упёрлась в lighttpd, так как решение под Apache, конечно, уже есть. Тем не менее я нашёл и оптимизировал под WordPress MU.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
function serve_html(cached_page)
 if (lighty.stat(cached_page)) then
   lighty.env["physical.path"] = cached_page
   print("Serving cached page: " .. cached_page)
   return true
 else
   return false
 end
end
 
function serve_gzip(cached_page)
 if (lighty.stat(cached_page .. ".gz")) then
   lighty.header["Content-Encoding"] = "gzip"
   lighty.header["Content-Type"] = ""
   lighty.env["physical.path"] = cached_page .. ".gz"
   print("Serving gzipped page: " .. cached_page .. ".gz")
   return true
 else
   return false
 end
end
 
attr = lighty.stat(lighty.env["physical.path"])
 
if (not attr) then
  i, j = string.find(lighty.env['uri.path'], "/download/")
  k, m = string.find(lighty.env['uri.path'], "/files/")
  t, f = string.find(lighty.env['uri.path'], "/wp-")
  e, s = string.find(lighty.env['uri.path'], ".php")
  if (i  == 1 and j == 10 and string.len(lighty.env['uri.path']) > 10) then
    id = string.sub(lighty.env['uri.path'], j + 1)
    lighty.env["uri.path"] = "/wp-content/plugins/download-monitor/download.php"
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
    lighty.env['uri.query'] = "id=" .. id
  elseif (k) then
    file = string.sub(lighty.env['uri.path'], m + 1)
    lighty.env["uri.path"] = "/wp-content/blogs.php"
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
    lighty.env['uri.query'] = "file=/" .. file
  elseif (t) then
    path = string.sub(lighty.env['uri.path'], t)
    lighty.env["uri.path"] = path
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
  elseif (e) then
    g, v = string.find(lighty.env['uri.path'], "/", 2)
    path = string.sub(lighty.env['uri.path'], g)
    lighty.env["uri.path"] = path
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
  else
    lighty.env["uri.path"] = "/index.php"
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
  end
  lighty.env["physical.path"] = lighty.env["physical.doc-root"]
 
  query_condition = not (lighty.env["uri.query"] and string.find(lighty.env["uri.query"], ".*s=.*"))
  user_cookie = lighty.request["Cookie"] or "no_cookie_here"
  cookie_condition = not (string.find(user_cookie, ".*comment_author.*") or string.find(user_cookie, ".*wordpress.*") or string.find(user_cookie, ".*wp-postpass_.*"))
  if (query_condition and cookie_condition) then
   accept_encoding = lighty.request["Accept-Encoding"] or "no_acceptance"
   cached_page = lighty.env["physical.doc-root"] .. "/wp-content/cache/supercache/" .. lighty.request["Host"] .. lighty.env["request.uri"] .. "/index.html"
   cached_page = string.gsub(cached_page, "//", "/")
   if (string.find(accept_encoding, "gzip")) then
     if not serve_gzip(cached_page) then serve_html(cached_page) end
   else
     serve_html(cached_page)
   end
  end
end

И всё работает замечательно. Ссылка по теме:

Метки: , , , , , , ,