пятница, 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/
Параллельное сжатие на многопроцессорных серверах.

среда, 18 июля 2012 г.

перенос Wordpress на новый url

При переносе Wordpress на новый url  не достаточно просто изменить все пути.
Настройки в таблице wp_options хронятся как php массив и для каждого значения указывается его длинна.  Для изменения этого значение и используется скрипт Serialization-fixer.zip
http://davidcoveney.com/575/php-serialization-fix-for-wordpress-migrations/

среда, 23 мая 2012 г.

Закрытие сайта подписанными сертификатами

Переходи в нужную нам папку где буду находиться наши файлы и сертификаты

#openssl req -new -newkey rsa:2048 -keyout ca.pem -x509 -days 3650 -out ca.pem

Задаем пароль и запоминаем его

#/usr/lib/ssl/misc/CA.pl -newca
вводим имя созданого ранее сертификата - ca.pem

Сохраняем запомненный пароль в ./demoCA/private/cakey.passwd

#openssl x509 -noout -text -in ca.pem
Находим строчку которая начинается с serial:  и сохраняем сам серийный номер в файл ./demoCA/serial
удаляем ca.pem

Создаем список отзыва сертификатов
#openssl ca -gencrl -out cacrl.pem
(отозвать сертификат можно будет командой #openssl ca -revoke client01.crt)

Подключяем его к виртуал-хосту  директивой SSLCARevocationFile
далее подключяем cacert.pem  директивой SSLCACertificateFile

Разархивируем архив ssl_suite.zip
 ssl_gen.sh - генерит и отправляет сертификат клиенту
 ssl_renew.sh - обновляет сертификат когда истекает время работы сертификата
 ssl_send.sh - отправляет архив с сертификатами клиенту

Обратите внимание на файл exp_ssl_gen
В нем нужно подставить значения которые будут задаваться для сертификата, такие как Country Name, State or Province Name ...