Анализ логов Nginx

Анализ логов NginxИщем страницы со статусом 500 Inernal Server Error:

grep '\s500\s' mysite.access.log.1

видим например такое:

178.154.179.248 — — [03/Apr/2013:06:09:38 +0400] "GET /forum/topic/1/28?view=attachment&post=28&id=2 HTTP/1.1" 500 1784 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"

178.154.179.248 — — [03/Apr/2013:06:10:06 +0400] "GET /forum/topic/1/28?view=attachment&post=28&id=2 HTTP/1.1" 500 1784 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"

приходил YandexBot и получил код 500.

Самое простое решение – запретить индексирование этих урлов в robots.txt:

Disallow: /forum/person/
Disallow: /*?view=avatar
Disallow: /*?view=attachment

Ставим Git клиент на Ubuntu Server 12.4

Git клиент ставится одной командой

sudo apt-get -y install git

Затем инициализируем репозиторий и добавляем проект

cd ~
git config --global user.email "you@example.com"
git config --global user.name "user"
git init
git add www/private/

модифицируем файл

nano www/private/wholesale-list.php

коммитим изменения

git commit www/private/ -m "first change"

Continue reading

Проходим тестирование на C++ разработчика в Яндексе

У них тест состоит из четырех простых вопросов

Первый вопрос

Перепишите код, устранив имеющиеся в нём проблемы, но не изменяя функцию main

class Foo
{
public:
    Foo(int j) { i=new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};

class Bar: Foo
{
public:
    Bar(int j) { i=new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};


void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;
}

Continue reading

Установка базы IP адресов со странами и городами

Нашел в интерне базу IP адресов с городами, ссылки: http://habrahabr.ru/post/120872/, http://netload.biz/2011/12/31/geoip5/ . База неточная, но лучше чем ничего. Поставить её несложно, однако, при установке самой базы и обновления были некоторые нюансы, может быть кому-то будет интересно почитать…

Continue reading

Ввод времени доставки заказа в VirtueMart 1.9.x – показываем русский день недели на PHP

Страничка подтверждения заказа сидит в файле components/com_virtuemart/themes/vm_mynxx/templates/checkout/get_final_confirmation.tpl.php. Там была строчка:

<?php echo $VM_LANG->_('PHPSHOP_CHECKOUT_CUSTOMER_NOTE') ?>:<br />

Чтобы пользователь знал какое сегодня число и вводил удобное ему время доставки, можно заменить её на следующий код:

<div style="font-size: 80%; color: green">
сегодня:
<?php
$tomorrow = mktime(0,0,0,date("m"),date("d"),date("Y"));
echo get_russian_date($tomorrow, true);
?>
</div><br />
Укажите, пожалуйста, удобное для вас время и место встречи с курьером, например:<br />
<div style="font-size: 80%;">
завтра,
<?php
$tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo get_russian_date($tomorrow, true);
?>
с 15:00 до 19:00 по указанному адресу<br />

Код функции get_russian_date есть в статье Русские даты на PHP.

Continue reading

Почтовый спам на web-сервере через PHP

Сегодня обнаружил на сервере странные файлы:

root@gate:/home# find . -name 'statisticsIjod.php'
./beauty/www/images/stories/wlw/statisticsIjod.php
./beauty/www/images/stories/soap/statisticsIjod.php
./beauty/www/images/stories/fruit/statisticsIjod.php
./beauty/www/images/stories/statisticsIjod.php
./beauty/www/images/stories/food/statisticsIjod.php

Continue reading

Скоро будет VirtueMart 2.1

Они напряженно работали целый год и в середине января 2013 собираются выпустить новый VirtueMart 2.1. Также они признают, что VirtueMart 2.0 был сыроват.

Интересно, что в текущей версии VirtueMart 2.0.16 теперь можно указывать нулевую цену, и при этом использовать Custom Fields:

— prices can be set easily to 0, removing the whole price tables is possible now and so removing the whole price entry
— show customfields and cart customfields, even price is set to 0

Как показать большое фото товара в VirtueMart 1.9.x

На страницу товара “flypage-ask.tpl” добавляем следующий код:

echo $product_image . "<br>" . $product_full_image . "<br>" . $product_thumb_image . "<br>";

$imagePath = "$mosConfig_absolute_path/components/com_virtuemart/shop_image/product/$product_full_image";

$imageURL = "$mosConfig_live_site/components/com_virtuemart/shop_image/product/$product_full_image";

$imgSize = getimagesize($imagePath, $info);

$imgW = $imgSize[0];

$imgH = $imgSize[1];

echo "$imageURL : $imgW<br>$imgH<br>"; 

if ($imgW > 400)
{
    ?>
        <img src="<?php echo $imageURL; ?>" alt="<?php echo $product_name; ?>" width="400">
    <?php    
}

Continue reading

Как увеличить длину адреса в VirtueMart 1.9

Сначала заходим в базу и меняем длину полей в таблицах jos_vm_user_info и jos_vm_order_user_info:

ALTER TABLE `jos_vm_order_user_info` CHANGE `address_2` `address_2` VARCHAR( 255 ) CHARACTER 
SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL 

затем меняем длину полей в админке:

SNAGHTMLe533bc3

Continue reading

Карта сайта для WordPress — плагин Google XML Sitemaps

Поставил себе на WordPress плагин Google XML Sitemaps и с разочарованием обнаружил что он при генерации дат обновления страниц не учитывает комментарии. Вот, например, есть запись https://slogpost.ru/2011/12/besplatnyj-internet-banking/, если смотреть в админке, то последняя редакция была  2012-03-29 12:34 мск:

Карта сайта для WordPress

Continue reading

Фиксим баг при загрузке Ubutu Server 12.04 “Grub — Fd0 Read Error”

Ну вроде, чтобы отладить этот grub надо в файле /usr/sbin/grub-install прописать debug=disk, однако после этого ничего интересного в системном логе не появляется:

cat /var/log/syslog | grep grub

можно увидеть только следующее:

cat /var/log/syslog | grep fd0

Jul 30 11:10:45 gate kernel: [    1.582955] Floppy drive(s): fd0 is 1.44M

Jul 30 12:07:10 gate kernel: [    1.586998] Floppy drive(s): fd0 is 1.44M

Jul 30 12:39:46 gate kernel: [    1.574313] Floppy drive(s): fd0 is 1.44M

Jul 30 12:51:11 gate kernel: [    1.578919] Floppy drive(s): fd0 is 1.44M

в общем, не знаю что с этим делать, проще вообще отключить дисковод, ибо fd0 это и есть floppy drive.

IP адреса роботов Яндекса

Вроде бы у роботов Яндекса следующие IP адреса (подсети):

77.88.0.0
84.201.0.0
87.250.0.0
93.158.0.0
95.108.0.0
178.154.0.0
199.36.0.0
213.180.0.0

если в логах апача что-то это роде:

[Wed Jul 25 00:06:23 2012] [warn] [client 95.108.158.134] (13)Permission denied: Couldn't read /home/devnote/.htaccess, closing connection.

значит приходил Яндекс.

Continue reading

Как удлинить краткое описание товара в VirtueMart 1.9х

Сначала смотрим, что краткое описание в VirtueMart 1.9 имеет тип

`product_s_desc` varchar(255) DEFAULT NULL

проверить это можно с помощью команды

show create table jos_vm_product;

затем удлиняем его до 512 символов

alter table jos_vm_product modify product_s_desc varchar(512) DEFAULT NULL;

Как подмонтировать USB флэшку к Ubuntu Server

Подключаем флэшку к USB и выполняем команду:

sudo fdisk -l

она показывает что-то в этом роде:

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00041a2a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    40105983    20051968   83  Linux
/dev/sda2        40108030    41940991      916481    5  Extended
/dev/sda5        40108032    41940991      916480   82  Linux swap / Solaris

Disk /dev/sdb: 4093 MB, 4093640704 bytes
8 heads, 32 sectors/track, 31232 cylinders, total 7995392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x221e5780

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          32     7995391     3997680    b  W95 FAT32

Continue reading