понедельник, 26 марта 2012 г.

Проблема с загрузкой/отображением 24-битных bmp-файлов загружаемых через Apache

Столкнулся с проблемой когда не возможно загрузить 24-битные bmp-файлы через Apache, именно 24-битные, 8-битные отображаются нормально.
Пробовал обновлять Apache но безрезультатно.

> CentOS release 5.6 (Final)
> Apache/2.2.22

Решение:
Использовать модуль mod_deflate.
Он архивирует на лету все файлы указанных типов.
При этом мы выигрываем в количестве трафика, так как bmp хорошо архивируется.

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE image/bmp
  <IfModule mod_setenvif.c>
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  </IfModule>
</IfModule>


четверг, 1 марта 2012 г.

bash - несколько приемов

# x="/foo/fizzbuzz.bar.quux"
# y=${x%.*}
# echo $y
   /foo/fizzbuzz.bar

# y=${x%%.*}
# echo $y
   /foo/fizzbuzz

# x="/foo/b/g/fizzbuzz.bar"
# echo ${x##*/}
   fizzbuzz.bar
 

Установка php53-mcrypt в Centos 5.6

В Centos 5.6 больше не поддерживается модуль mcrypt для php53, так что придется ставить его вручную

 # yum install php53-devel libmcrypt-devel

Качаем с сайта http://php.net/releases/ архив с исходниками необходимой нам версии php и распаковываем его.

Далее по плану:
# cd /path/to/src/php5.3.*/ext/mcyrpt/
# phpize
# aclocal
# ./configure
# make
# make install

После добавляем файлик /etc/php.d/mcrypt.ini  с содержимым extension=mcrypt.so
Перезапускаем apache

среда, 29 февраля 2012 г.

apache2-mpm-itk

apache2-mpm-itk - MPM (Многопроцессорный Модуль http://www.peruser.org/) для Апача 2 веб-сервера. mpm-itk позволяет Вам выполнять каждый из своих vhost под отдельным пользователем.

-  Пример:

<VirtualHost *:80>
  ServerName    www.domain.net
  DocumentRoot  /var/www/domain

  <Directory "/var/www/domain">
     Options Indexes FollowSymLinks
     AllowOverride all
     Order allow,deny
     Allow from all
     AssignUserId user group
  </Directory>

</VirtualHost>

понедельник, 30 января 2012 г.

Обработка параметров командной строки в скриптах bash

while getopts lrd:p:h: name
   do
      case $name in
           l)    lflag=1;;
           r)    rflag=1;;
           d)    dbname=$OPTARG;;
           h)    host=$OPTARG;;
           p)    port=$OPTARG;;
           ?)    printf "Usage: %s: [-lr] [-d dbname] [-h hostname] [-p dbport]\n" $0
                        exit 2;;
       esac
done