Закон технологии Лермана.
Любую техническую проблему можно преодолеть, имея достаточно времени и денег.
Закон Джухэни.
Компромисс всегда обходится дороже, чем любая из альтернатив.
Аксиома Дучарма.
Если рассмотреть проблему достаточно внимательно, то Вы увидите себя как часть этой проблемы.
Закон Муира.
Когда мы пытаемся вытащить что-нибудь одно, оказывается, что оно связано со всем остальным.
Закон Мэрианна.
Находишь всегда то, что не искал.
Закон Буба.
То, что ищешь, найдешь, только обыскав все.
Закон Хелранга.
Подожди - и плохое само собой исчезнет.
Закон термодинамики Мерфи.
Под давлением все ухудшается.
Первый закон Чизхолма.
Все, что может испортиться, портится.
Афоризм Кохрэйна.
Получая направление на анализ подумайте, что Вы предпримете, если результат окажется: а) положительным, б) отрицательным. Если ответы совпадут, надобность в анализе отпадет.
Комментарий Лорда Коэна.
Доступность операции - еще не показатель того, что ее надо делать.
Четыре принципа производственника.
В наборе инструментов не хватает именно того гаечного ключа или сверла, которые нужны. Для выполнения большинства операций требуются три руки. Оставшиеся гайки никогда не подходят к оставшимся болтам. Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так.
Постулат Персига.
Число разумных гипотез, объясняющих любое данное явление, бесконечно.
Третий закон Финейгла.
В любом наборе исходных данных самая надежная величина, не требующая никакой проверки, является ошибочной.
Закон Шмидта.
Если долго портить машину, она сломается.
Первый закон ремонта.
Нельзя починить то, что не сломано.
Правило точности.
Работая над решением задачи, всегда полезно знать ответ.
Правило точности Рэя.
Измеряй микрометром. Отмечай мелом. Отрубай топором.
Закон силы Энтони.
Не тратьте силы, возьмите молоток побольше!
Второй закон Вышковского.
Все можно наладить, если вертеть в руках достаточно долго.
Закон Лоуэри.
Заело деталь - надави на нее. Если сломалась - ничего: все равно надо было заменять...
Закон Купера.
Если Вам неприятно какое-то слово в техническом тексте, не обращайте внимания. Текст полностью сохраняет смысл и без него.
Первое правило умного ремонта.
Ничего не выбрасывай.
Аксиома Кана.
Если ничто другое не помогает, прочтите, наконец, инструкцию!
или 50
|
марта 21, 2010
марта 17, 2010
batch file encoding from CP1251 to UTF8.
#/bin/bash
for i in `find . -name '*.php' -type f`
do
echo $i
iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp
mv -f tmp "$i"
done
for i in `find . -name '*.php' -type f`
do
echo $i
iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp
mv -f tmp "$i"
done
марта 11, 2010
PHP-OCI8 Ubuntu LTS
1. Устанавливаем apache, php (модули опционально) :
2. Устанавливаем пакеты для сборки модуля php из pear:
3. Устанавливаем библиотеку libaio:
4. Создаем каталоги:
5. Скачиваем с офсайта последние версии Instantclient и SDK http://www.oracle.com/technology/tech/oci/instantclient/index.html . Должны быть два архива zip (в нашем случае это были basic-10.2.0.4.0-linux-x86_64.zip и sdk-10.2.0.4.0-linux-x86_64.zip)
6. Копируем скачанные архивы в каталог /opt/oracle/instantclient/, переходим в него и разархивируем содержимое:
7. Создаем символические ссылки на библиотеки, т.к. бОльшая часть софта, в том числе и oci8, ориентируется на создаваемые имена библиотек:
8. Обновляем кэш динамических библиотек:
9. Переходим в каталог и скачиваем модуль oci8:
10. Разархивируем модуль, переходим в каталог с исходниками oci8 и подготавливаем окружение для сборки модуля:
11. Перед самой сборкой устанавливаем переменные окружения оракула:
12. Проверяем переменную окружения:
Должны получить ответ:
14. Собираем модуль:
15. Собираем модуль oci8:
16. Редактируем конфиги php:
17. Само расширение установлено в каталоге:
18. Перезапускаем apache и все. Я проверял наличие модуля выводом функции
phpinfo()
19. Создаем каталог для файлов sqlnet.ora и tnsnames.ora
20. В конфиге апача или виртуалхоста (а также .htaccess) можно установить переменные:
# apt-get install apache2 php5-common php5 php5-dev libapache2-mod-php5
# php5-cli2. Устанавливаем пакеты для сборки модуля php из pear:
# apt-get install build-essential php-pear3. Устанавливаем библиотеку libaio:
# apt-get install libaio14. Создаем каталоги:
# mkdir /opt/oracle/instantclient/
# mkdir /opt/oci8/5. Скачиваем с офсайта последние версии Instantclient и SDK http://www.oracle.com/technology/tech/oci/instantclient/index.html . Должны быть два архива zip (в нашем случае это были basic-10.2.0.4.0-linux-x86_64.zip и sdk-10.2.0.4.0-linux-x86_64.zip)
6. Копируем скачанные архивы в каталог /opt/oracle/instantclient/, переходим в него и разархивируем содержимое:
# cd /opt/oracle/instantclient/
# unzip \*.zip7. Создаем символические ссылки на библиотеки, т.к. бОльшая часть софта, в том числе и oci8, ориентируется на создаваемые имена библиотек:
# cd /opt/oracle/instantclient/instantclient_10_2/
# ln -s libocci.so.10.1 libocci.so
# ln -s libclntsh.so.10.1 libclntsh.so8. Обновляем кэш динамических библиотек:
# echo /opt/oracle/instantclient/instantclient_10_2/ >> /etc/ld.so.conf
# ldconfig9. Переходим в каталог и скачиваем модуль oci8:
# cd /opt/oci8/
# pecl download oci810. Разархивируем модуль, переходим в каталог с исходниками oci8 и подготавливаем окружение для сборки модуля:
# tar -xzf oci8-1.4.0.tgz
# cd /opt/oci8/oci8-1.4.0
# phpize11. Перед самой сборкой устанавливаем переменные окружения оракула:
# export ORACLE_HOME=/opt/oracle/instantclient/instantclient_10_212. Проверяем переменную окружения:
# echo $ORACLE_HOMEДолжны получить ответ:
# /opt/oracle/instantclient/instantclient_10_214. Собираем модуль:
# cd /opt/oci8/oci8-1.4.0
#./configure \
--with-oci8=share,instantclient,/opt/oracle/instantclient/instantclient_10_215. Собираем модуль oci8:
# make
# make install16. Редактируем конфиги php:
# echo extension=oci8.so; /etc/php5/apache2/php.ini
# echo extension=oci8.so; /etc/php5/cli/php.ini17. Само расширение установлено в каталоге:
# /usr/lib/php5/20060613/18. Перезапускаем apache и все. Я проверял наличие модуля выводом функции
phpinfo()
19. Создаем каталог для файлов sqlnet.ora и tnsnames.ora
mkdir -p /opt/oracle/instantclient/instantclient_10_2/network/admin20. В конфиге апача или виртуалхоста (а также .htaccess) можно установить переменные:
SetEnv TNS_ADMIN «/opt/oracle/instantclient/instantclient_10_2/network/admin»
SetEnv LD_LIBRARY_PATH «/opt/oracle/instantclient/instantclient_10_2»
SetEnv ORACLE_HOME «/opt/oracle/instantclient/instantclient_10_2»
SetEnv NLS_LANG=RUSSIAN_CIS.AL32UTF8
Подписаться на:
Сообщения (Atom)