За месяц Февраль, 2012

OpenCart - заметки на полях

MVC-движок интернет-магазина Opencart

Структура файлов интуитивно понятная admin (админка) catalog (

Дополнение для Opencart Оформление заказа на одной странице  от Руслана.

У него же про письмо- уведомление администратора о заказе (сам бы ещё долго искал - нашёл только странички, где на нескольких форумах вопросы об изменении письма администратору оставались без ответа)
Формирование и отсылка писем происходит в файле catalog/model/checkout/order.php
Тексты частей писем находятся в папке catalog/language/russian/mail

Подборки информации по Opencart

http://tvorzasp.com/blog/term/opencart

Опубликовано Февраль 29, 2012 | автор: levik  |  Нет комментариев »

Центр обновлений Windows в настоящее время не может выполнить поиск обновлений, поскольку эта служба не запущена.

При входе в Центр обновлений Windows видим красный щит с крестиком. Хотя, в параметрах обновления Windows указаны настройки автоматического обновления. При нажатии на кнопку проверить обновления возникает ошибка:

Центр обновлений Windows в настоящее время не может выполнить поиск обновлений, поскольку эта служба не запущена. Возможно потребуется перезагрузить компьютер.

Windows update error

Странная ошибка при попытке запустить обновление Windows. При том, что служба Центр обновления windows на самом деле запущена (отображается как в списке служб, так и при попытке запустить службу из командной строки). Читать целиком »

Опубликовано Февраль 24, 2012 | автор: levik  |  Комментарии (47) »

ftp-сервер vsftpd, установка на debian, особенности ftp за nat

Установка vsftpd на Debian

Шпаргалка по ftp-серверу proftpd

aptitude install vsftpd
В конфиге /etc/vsftpd.conf находим соответствующие строчки и убираем комментарии:
# запрещаем анонимусам
anonymous_enable=NO
# но пускаем локальных
local_enable=YES
# разрешаем запись
write_enable=YES
# маска загружаемых файлов 644
local_umask=022
# коннект 20 порт
connect_from_port_20=YES
# запереть пользователя в его домашнем каталоге
chroot_local_user=YES
# включаем ls -R для
ls_recurse_enable=YES
# добавляем парты для пассивного режима
pasv_min_port=50000
pasv_max_port=59000

Перегрузим /etc/init.d/vsftpd restart

Разрешаем подключение к FTP-серверу (не потребовалось)
-A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 32768:65535 -j ACCEPT
-A INPUT -p udp -m udp --dport 32768:65535 -j ACCEPT

Загружаем правила в iptables (аналогично, не потребовалосЬ)
/sbin/iptables-restore -c < /var/lib/iptables/rules

Использование vsftpd в контейнере openVZ

По сути, получается FTP-сервер за nat-ом. Требуется правильно пробросить порты. Если стандартные ftp-порты на ноде предназначены для проброса на VPS - добавляем.
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx(external_ip) -i eth0 -p tcp -m tcp --dport 20 -j DNAT --to-destination 192.168.0.101:20
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx(external_ip) -i eth0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.0.101:21

При использовании openvz и установке на VPS ftp-сервера  vsftpd, после проброса 20 и 21 порта с некоторых машин vsftpd выдает ошибку 500 Illegal PORT command.

В файле /etc/vsftpd.conf добавляем

pasv_address=xxx.xxx.xxx.xxx(external_IP)
pasv_min_port=60000
pasv_max_port=60235

И на ноде делаем проброс портов:

iptables -t nat -A PREROUTING -p tcp -d ip_address --dport 60000:60235 -i eth0 -j DNAT --to-destination ve_address

Опубликовано Февраль 19, 2012 | автор: levik  |  Нет комментариев »

Array.forEach или object doesn’t support this property or method

При переборе массива с использованием forEach в Internet Explorer вывалилась ошибка object doesn’t support this property or method

IE 7 не поддерживает конструкцию forEach для массивов [1,2,3] - то есть код вида

array_for = [1,2,3] ;
array_for.forEach = ...
//или
[1, 2, 3].forEach(print)

выдаст ошибку.
Чтобы исправить ошибку следует определить функцию
Array.prototype.forEach = function(callback, thisObj) {
for (var i = 0,len = this.length; i < len; i++)
callback.call(thisObj, this[i], i, this);
};

И вообще, в ie 8 (ie 7 и ie 6) не поддерживаются некоторые функции обхода массивов:
http://stackoverflow.com/questions/2790001/fixing-javascript-array-functions-in-internet-explorer-indexof-foreach-etc

Опубликовано Февраль 15, 2012 | автор: levik  |  Нет комментариев »

BSOD UNMOUNTABLE_BOOT_VOLUME - 0×000000ED (0×89DC02D0,0xc0000006,0×00000000,0×00000000)

Ещё один синий экран смерти (BSOD), на этот раз с сообщением

UNMOUNTABLE_BOOT_VOLUME - 0×000000ED (0×89DC02D0,0xc0000006,0×00000000,0×00000000)

(не путать с INACCESSIBLE_BOOT_DEVICE)
Новое оборудование (в том числе жёсткие диски) не устанавливались. “Вчера работало”. И вдруг.. вместо нормальной загрузки компьютер стал выдавать чёрный экран (чем-то напоминает экран, если нажать F8) - загрузить в безопасном режиме, загрузить последнюю удачную конфигурацию. Однако пункта “отключить перезагрузку нет” - его ищем как раз в том меню по F8. Читать целиком »

Опубликовано Февраль 12, 2012 | автор: levik  |  Нет комментариев »

php 5.2 на debian squeeze - установка php предыдущей версии

Установка php 5.3 в debian squeeze теперь не проблема. Достаточно набрать

apt-get update && apt-get install php5

Однако, многие сайты, сделанные ранее (работающие проекты на php 5.2) в php 5.3 выдают ошибки-предупреждения (deprecated), а иногда “ну совсем” не работают.

Deprecated: Function eregi() is deprecated in /home/www/php-site.ru/public_html/include/functions.php on line 152

Итак, как же установить (эм.. почти как апгрейд, только наоборот - downgrade) PHP 5.2 на debian squeeze

Посмотрим, что же в - если система “свежая” - там скорее всего только 2 строки для текущего релиза
vi /etc/apt/sources.list

Статья обновлена, т.к. lenny перемещен в архив

deb http://archive.debian.org/debian lenny main contrib non-free

Добавим туда репозитарий для debian lenny
deb http://ftp.ro.debian.org/debian/ lenny main contrib non-free

Для всех пакетов, начинающихся с php5 зададим приоритетным репозитарий предыдущей версии:
vi /etc/apt/preferences

Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

Если php5.3 был ранее установлен - его следует удалить.. Проверить это можно командой:
dpkg -l |grep php5
Если вывод похож на следующий - удаляем
ii libapache2-mod-php5 5.3.3-7+squeeze8 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5 5.3.3-7+squeeze8 server-side, HTML-embedded scripting language (metapackage)
ii php5-cli 5.3.3-7+squeeze8 command-line interpreter for the php5 scripting language
ii php5-common 5.3.3-7+squeeze8 Common files for packages built from the php5 source
ii php5-gd 5.3.3-7+squeeze8 GD module for php5
ii php5-mcrypt 5.3.3-7+squeeze8 MCrypt module for php5
ii php5-mysql 5.3.3-7+squeeze8 MySQL module for php5
ii php5-suhosin 0.9.32.1-1 advanced protection module for php5

Для удаления уже установленных пакетов, содержащих php
aptitude remove `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
Обновим информацию о пакетах
apt-get update
И установим php5.2 на squeeze из предыдущего репозитария
apt-get -t oldstable install `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`
Да.. при попытке установить PHP 5.2 система выдала ошибку
libapache2-mod-php5 : Depends: libkrb53 (>= 1.6.dfsg.2) but it is not going to be installed
, поэтому устанавливаем отдельно пакет libkrb53
apt-get install libkrb53
После чего установка PHP 5.2 проходит без ошибок: команда
dpkg -l | grep php5
должна вывести примерно следующее:
ii libapache2-mod-php5 5.2.6.dfsg.1-1+lenny13 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5-cli 5.2.6.dfsg.1-1+lenny13 command-line interpreter for the php5 scripting language
ii php5-common 5.2.6.dfsg.1-1+lenny13 Common files for packages built from the php5 source
ii php5-gd 5.2.6.dfsg.1-1+lenny13 GD module for php5
ii php5-mcrypt 5.2.6.dfsg.1-1+lenny13 MCrypt module for php5
ii php5-mysql 5.2.6.dfsg.1-1+lenny13 MySQL module for php5
ii php5-suhosin 0.9.27-1 advanced protection module for php5

Опубликовано Февраль 10, 2012 | автор: levik  |  Комментарии (2) »

Umb upper limit segment address

При загрузке ноутбука стала появляться Ошибка Umb upper limit segment address: nnnn

Displays the address nnnn of the upper limit of Upper Memory Blocks, indicating released segments of the BIOS which may be reclaimed by a virtual memory manager.

Или в переводе:

Отображение адреса nnnn верхнего предела адресного пространства, в котором можно манипулировать сегментами Upper Memory Blocks. Сегменты используются модулем управления виртуальной памятью для организации работы BIOS

Сам компьютер загружается (в аналогичных ситуациях иногда компьютер перестал грузиться и входил в BIOS - была “зажата” кнопка F2 :)), но субъективно, скорость работы оставляла желать лучшего (нет, конечно, какой русский не любит быстрой езды.. но всё-таки раньше ноутбук работал быстрее)

Рекомендации скинуть настройки BIOS при помощи load defaults setup не помогли

http://forum.thinkpads.com/viewtopic.php?f=2&t=2170&view=next - подозрения на

1. DIMM
2. System board

http://forum.ixbt.com/topic.cgi?id=17:38124-3 - рекомендации прошить BIOS

Опубликовано Февраль 7, 2012 | автор: levik  |  Нет комментариев »

OpenVZ - делим физический сервер на виртуальные

Виртуальные сервера VDS более доступны, чем аренда физического сервера (если, конечно, не учитывать сервер, работающий на домашнем компьютере) или даже оплата colocation. Кроме того, виртуализация может быть полезна для “экспериментов” - на одной физической машине можно разместить несколько машин.. каждую из которых можно использовать для различных нужд.

Про виртуализацию OpenVZ написано очень много. Ссылки, которые могут быть полезными для новичка в виртуализации на OpenVZ)
Читать целиком »

Опубликовано Февраль 2, 2012 | автор: levik  |  Нет комментариев »