пятница, 26 октября 2012 г.

PHP 5.3.3 + MySQLi ошибка во время компиляции my_global.h:1008: error: duplicate 'unsigned'

У меня возникла такая ошибка во время компиляции PHP 5.3.3 для DirectAdmin
Для решения этой проблемы нужно пропатчить исходники PHP вот этим патчем

Патч:

Index: ext/mysqli/php_mysqli_structs.h
===================================================================
--- ext/mysqli/php_mysqli_structs.h (revision 301474)
+++ ext/mysqli/php_mysqli_structs.h (working copy)
@@ -54,6 +54,7 @@
 #define WE_HAD_MBSTATE_T
 #endif
 
+#define HAVE_ULONG 1
 #include 
 
 #if !defined(HAVE_MBRLEN) && defined(WE_HAD_MBRLEN)


Сохраняем этот текст в файл php_mysqli_structs.patch
и в папке с исходниками выполняем patch <  php_mysqli_structs.patch

ImageMagick для PHP 5.3.3 + DirectAdmin

Подключение модуля ImageMagick для PHP 5.3.3 под DirectAdmin

Все дополнения для PHP что поставляется вместе с DirectAdmin вкомпиливаются в сам интерпретатор и не идут отделенными модулями.

Что бы включить такое расширение нам необходимо добавить строчку, например --with-gd, в конец конфигурационного файла /usr/local/directadmin/custombuild/configure/ap2/configure.php5
(ap2 означает Apache20 или apache22)

если вы используете suPHP то тогда вам необходимо отредактировать этот файл
/usr/local/directadmin/custombuild/configure/suphp/configure.php5

и после этого пересобрать PHP
cd /usr/local/DirectAdmin/custombuild
./build php n

Но нам этот способ не подходит так как расширения ImageMagick нет в поставке с PHP которое идет вместе с DirectAdmin.
Нам необходимо подключить его как внешний модуль.

Для этого качаем исходники и компилим его
wget http://pecl.php.net/get/imagick-2.3.0.tgz
tar -zxf imagick-2.3.0.tgz
cd imagick-2.3.0
/usr/local/php5/bin/phpize
./configure --with-imagick=/usr/local --with-php-config=/usr/local/php5/bin/php-config
make
make install

после этого расширение скомпилируется под версию PHP что мы используем для DirectAdmin
После установки расширение с копируется примерно вот в эту папку /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/

Уточните название папки и подставте его как значение для параметра extension_dir в php.ini
Так как я используею suPHP то для меня используется вот этот файл
/usr/local/etc/php5/cgi/php.ini
добавляем в него - extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"

и так же добавляем загрузку нашего дополнения
extension=imagick.so

После этого перезапускаем Apache и дополнение должно активироваться.




понедельник, 15 октября 2012 г.

Amazon CloudFront + Nginx + gzip

Что бы Amazon CloudFront отдавал ваши файлы сжатые в gzip, он должен и у вас забрать их сжатыми в gzip.
Но для этого вам нужно правильно настроить ваш web-сервер.
Вот настройки для Nginx


    gzip on;
    gzip_min_length 1000;
    gzip_types text/plain application/xml text/css text/xml text/javascript application/x-javascript;
    gzip_http_version 1.0;
    gzip_vary on;
    gzip_proxied any;

http://www.tcnj.edu/~bush/uftp.html
Мультикаст FTP 
http://zlib.net/pigz/
Параллельное сжатие на многопроцессорных серверах.