Более свежая версия данного материала.
Web Optimizer (Веб Оптимизатор) — приложение, автоматизирующее все действия по клиентской оптимизации для произвольного сайта. На данный момент оно существует в виде отдельного приложения (которое нужно самостоятельно установить на сайт). В качестве базы для Web Optimizer использовался PHP Speedy (который также существует в виде дополнения для Wordpress, Joomla и Drupal).
Давайте рассмотрим, каким образом можно установить Web Optimizer.
Web Optimizer поставляется в виде ZIP-архива, который выложен на code.google.com. Загружаем последнюю стабильную (Featured) версию в корень сайта. Если к сайту есть SSH-доступ, то можно использовать просто wget
:
wget http://web-optimizator.googlecode.com/files/web-optimizer.v0.2.5.zip
Затем полученный архив нужно будет распаковать в корень, чтобы получилась папка web-optimizer
.
Если к сайту есть только FTP-доступ, то загружаем сначала на локальный диск, потом распаковываем, а потом уже (например, через FAR) копируем в корень сайта.
После того, как все необходимые файлы оказались на сайте, то нужно выставить права на запись, как минимум, для файла web-optimizer/config.php
и папки web-optimizer/cache
для пользователя, под которым работает сервер. Иначе просто настройки и закэшированные версии сжатых файлов не смогут сохраниться
Заходим в браузере по адресу
http://ваш_сайт/web-optimizer/
И видим приветственный экран от Web Optimizer. Если не видим, то стоит перепроверить, куда был скопирован Web Optimizer, а зайти именно в ту папку.
На этом шаге нам нужно задать пользователя и пароль, под которыми будут доступны настройки приложения. Логин/пароль сохраняются в конфигурационном файле в виде md5-хэша, так что никаких проблем с безопасностью нет (ну разве что злоумышленник сможет каким-то образом переписать сам config.php
и заменить в нем хэши на нужные ему).
Здесь нам нужно задать физическую директорию, в которой сайт расположен на сервере. Это нужно для расчета всех путей к файлам. Если директория отличается от вычисленной автоматически, то ее стоит задать вручную.
Здесь начинается самое интересное: нам нужно задать настройки приложения (все они сохраняются в файле config.php
, затем его можно изменить вручную). Кратко о настройках:
cache
, менять не рекомендуется (особенно, если вы зададите их вне дерева сайта — тогда закэшированные файлы просто не загрузятся). Сюда складываются минимизированные и объединенные Javascript- и CSS-файлы и картинки, полученные от CSS Sprites.media
-параметрами)Планируется добавить поддержку YUI Compressor и Packer.gzip
-сжатие файлов. Если используется .htaccess
, то все настройки по сжатию (и клиентскому кэшированию) располагаются в нем. Иначе все сжатие выполняется с помощью PHP.Expires
в далеком будущем гарантирует, что будучи единожды загруженными статические файлы будут запрошены с сервера только при своем изменении (сброс кэша осуществляется на уровне проверки даты изменения файла, но работает только для CSS- и Javascript-файлов).data:URI
заменяет все фоновые изображения в файле на их data:URI
, добавляя правила для IE6-/7. Стоит осторожно использовать при большом объеме CSS Sprites — итоговый файл может получиться весьма значительным.htaccess
позволяет записать условия gzip
-сжатия и кэширования файлов в .htaccess
-файле, чтобы перенести работу по кэшированию и архивированию с PHP на Apache. По необходимости правила можно перенести и в httpd.conf
, При подключении .htaccess
Apache анализируется на предмет подключенных модулей и автоматически выбираются доступные, если какой-то модуль был выбран в конфигурации, но не доступен, то относящиеся к нему правила записаны не будут.head
, то опцию нужно отключить, иначе файлы в кэше будут постоянно обновляться.index.php
появится опция auto_rewrite
(начиная с версии 0.2.5). Если она включена, то все необходимые инструкции автоматически добавятся в файл.Выбираем все нужные настройки (по умолчанию выбрана наиболее оптимальная конфигурация) и переходим дальше.
Если на предыдущем шаге была включена опция auto_rewrite
и index.php
доступен для записи, то он обновится сам. Иначе нужно будет открыть основной файл используемой CMS и добавить туда две строки. Одну в самое начало файла (естественно, как PHP-код):
(require('корневая_директория_на_сервере/web-optimizer/web.optimizer.php')
и вторую — в самый конец:
$web_optimizer->finish();
Первая строка подключает сам Web Optimizer, а вторая выводит подготовленное содержание страницы. Если index.php
обновить не удалось, то обе строки будут выведены на экран, их можно скопировать и добавить самостоятельно.
Рекомендуется сразу зайти на сайт, чтобы сгенерировать первоначальные файлы в кэше. Также возможны проблемы (и ошибки) при работе приложения: оно еще очень сырое, и многие места просто не отлажены. Поэтому лучше устанавливать сначала Web Optimizer На тестовый хост и проверять работоспособность на нем. В ближайшем будущем будет подготовлены полноценная тестовая страница.
Если безопасность сайта является очень критичной, то можно после установки снять права на запись для файла web-optimizer/config.php
и удалить файл install.php
. После этого извне Web Optimizer настроить будет невозможно.
На данный момент приложение достаточно молодое и не лишено некоторого количества ошибок. Однако весь исходный код выложен в открытом доступе. Если у вас есть силы или желание поучаствовать в развитии проекта (или портировать его на другие платформы / языки) — напишите, пожалуйста, в комментариях. В любом случае, если вы просто установите приложение на ваш сайт и напишите о возникших (если такие будут) проблемах — это уже будет очень большое подспорье.