Skip to content

Category Archives: server

TekTonic — вторая авария

Феерические долбоебы.
Второй месяц подряд нам устраивают полную потерю данных.

На этот раз в RAIDе не тот хард поменяли, ну у них чистый хард и отзеркалился на все остальные.

Долбоебы.
И мы тоже долбоебы. Первый случай ничему не научил. То, что необходимо делать бекапы — естественно стало понятно. Решили настроить, как приеду. Приехал. В ту же ночь все и сломалось опять.

Восстановились из бекапа от 24 июля.
Ушел досдавать сессию. Бай-бай.

Server / Памятка начинающим хостерам по затыканию дырок в PHP

Сегодня один перловщик спросил меня, а нельзя ли в PHP через suEXEC что-нибудь да как-нибудь запустить. Штудирование мануалов показало, что в случае mod_php нельзя, да и ненужно. Ну а в случае fastcgi — можно. И это хорошо, это безопасно, но сказка не о том, а о mod_php.
В мануале по PHP кроме функций exec и system, про которые я давно знал и вроде бы их запретил у себя на сервере, я нашел еще функцию popen. Я насторожился, потому что точно помнил — этой функции я в настройках PHP не запрещал!
Тут же из мануала был скопирован и запущен пример. Результат... удивил. Листинги большинства папок сервера, содержимое /etc/passwd, doc_root чужих виртуальных-серверов... Все это предстало перед моим взором :-) Конечно, виноват я. suEXEC'а нету, ведь нету же mod_php, да ну и не все файлы стояли с ограничением на чтение от all. Мой промах, признаю.

Вот код примера:

<? if(!isset($q)) { $q = 'ls -alp'; } ?><html>
<body>
<form method="post">
<input type="text" name="q" value="<?=$q?>">
<input type="submit">
</form>

<pre>

<?php
error_reporting(E_ALL);
$fp = popen($q, 'r');
$read = '';
while (!feof($fp))
{
$read .= fread($fp, 4096);
}
echo $read;
pclose($fp);
?>

</pre>
</body>
</html>

Мне это не понравилось и я полез в конфиг Апача httpd.conf. В список disabled_functions я дописал popen, перезапустился... Нулевой результат. Попробовал вызвать функцию exec — вызывается.

Шоковое состояние...

Что таким образом можно сделать?
Многое. Дело в том, что PHP запускается с правами Апача. А тем временем, Апач имеет доступ ко ВСЕМ файлам ВСЕХ виртуальных хостов. Такова необходимость, иначе он не мог бы их отображать и отдавать клиентам. Соответственно, их можно удалить. Этого мало, чтобы считать эту дырку критической?

Я не знаю, как дела обстоят у крупных хостеров, но почему-то мне кажется, что у 50% эта дырка есть (проверено на примере во время написания заметки)

Как же все-таки запретить пользователям виртуального хостинга через PHP делать гадости, а именно:
A) Читать чужие файлы из чужих папок
B) Вызывать любые системные функции
Continue reading ›

SlimStat — компактный, функциональный скрипт статистики

Надеюсь, это последний пост о скриптах статистики для сайта. Нельзя писать об одном и том же третий пост. В прошлой серии я перешел с плагина для WordPress'а wp-ShortStat на отдельный скрипт статистики CNStats. Впринципе, неплохая штука. Так как с блог-движком он не интегрирован, то и тормозов и глюков не наблюдается. Одно но — денег за нее хотят. Есть в сети крякнутая версия, но это не наши методы :-)

Почему я в очередной раз стал искать новый скрипт статистики? С 14 марта статистика не собиралась. Я долго думал, что же случилось. Так и не надумал. А тут intruder пост про shortstat написал. Я думал, ругать будет, а он хвалил.

А еще он хвалил SlimStat. Вообще, создатель ShortStat'а свое детище забросил, что не мешает проекту развиваться засчет энтузиастов. SlimStat же — это альтернативная ветвь развития ShortStat. На самом деле это тот же wp-ShortStat, только отделенный от WordPress'а. Возможностей у этого скрипта несколько больше: он умеет и mysql базу сильно не раздувать, и показывать отчет за неделю-месяц, пути по сайту вычленять. Из приятного дополнения — возможность переехать с shortstat'а вместе с накопленной статистикой.

Что называется — рекомендую.
Скриншоты посмотреть можно на сайте автора. Тем, кто видел shortstat — смотреть нечего. Один в один :-)
Блоггер About Digital выполнил первод интерфейса SlimStat на русския язык.

P.S. А еще для подсчета трафика я использую анализатор логов сервера AWStats. В cron его прописал.
P.S.S. А CNStats не работал, потому что я 14ого марта на 2.0.2 обновил скрипты WordPress'а, тем самым затерев include cnstats'а. А без этого подсчет статистики и не запускался.

Software / Webserver On a Stick

На lifehacker'е проскочила совершенно чудесная заметочка о том, как поместить Wordpress на USB-flash. Собственно, сам процесс описыван на неком сайте Tamba2, вот эта заметка.

Зачем помещать блог-движок WordPress на флешку — не очень понятно. Наверное, чтобы можно было написать в блог с любого чужого компьютера. Можно даже без интернета. Сам автор видит смысл в демонстрации всем и везде существования такой замечательной штуки как блог WordPress, а также в работе над темой(дизайном) блога за оффлайновым компьютером. Что ж, разумно.

Что меня во всей этой истории заинтересовало больше всего — это софтинка-webserver на флешке! Это же... замечательная идея! Называется Webserver On a Stick. Распространяется софтина под лицензией GPL, что греет сердце.
В себе она содержит Apache 2.2.0, MySQL 5.0.18, PHP 4.4.2/PHP 5.1.2.2, PhpMyAdmin 2.8.0-beta1.

По сути, проблема с демонстрацией каких-то проектов, сайтов, PHP-скриптов упрощается в несколько раз. Apache в кармане!

Саму заметочку переведу. Самое интересное там — картинки. :-)

Как поставить WordPress на флешку?

Continue reading ›

Server / FirstVDS.ru

9 часов даунтайма.
Ай Молодцы, спасибо! :-)

И все же, перехвалил сабж... Задумался о бэкапах. Будет не очень смешно, если побьются данные.

А 100%ная надежность Мастерхоста непоколебима :-) За что им и респект.

И все же, советую вам Firstvds.ru. Лучшее сочетание цены и качества! :-)