Пишу про заинтересовавшие сервисы, блоги, твиттеры, а также собственные идеи и задумки.
9 заметок с тегом

администрирование

Вылетают приложения Modern UI в Windows 10?

10 октября 2015, 15:32

Уже второй раз столкнулся с проблемой, когда приложения из Flat UI на секунду запускаются и вылетают, после показа логотипа. Да, вылетает даже банальный калькулятор! Калькулятор, Пётр!

Естественно, мириться с такой несправедливостью не стал. В первый раз мне помогло простое решение:

  1. В Пуске пишем cmd
  2. Правой кнопкой запускаем от администратора
  3. В командной строке запускаем/sfc scannow и терпеливо ждём.
    После перезагрузки у меня всё заработало.

Второй же раз простой метод не прокатил — сканер не нашёл ошибок, но приложения не запускались. Пришлось прибегать к иному методу (советую переписать шаги себе отдельно, прежде, чем продолжить):

  1. Перезагружаемся в безопасный режим: в Пуске жмём «Завершение работы», зажимаем шифт и кликаем на перезагрузку.
  2. На открывшемся экране щёлкаем Диагностика → Дополнительные параметры → Параметры загрузки и перезагружаемся.
  3. Загружаемся в безопасный режим, нажав F4
  4. После загрузки удаляем (или просто переименовываем временно) папки C:\Windows\SoftwareDistribution и C:\Windows\system32\catroot2
  5. Перезагружаемся в основной режим проверяем работоспособность приложений Windows Store.

(источник)

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

Подключаем новый диск к серверу

21 июля 2011, 11:56

Задача: увеличить дисковое пространство путём добавление нового диска к серверу на CentOS 5 или Debian.

Решение:

Первым делом нужно убедиться, что второй диск мы подключили. Вписываем

fdisk -l

Там мы должны увидеть все разделы основного диска, а также новый неподключенный. При этом второй будет ругаться на то, что у него неправильная файловая система. Исправляем эту ошибку, форматируем устройство под систему ext3:

kfs.ext3 /dev/xvdb

Вместо xvdb укажите том своего диска, который высветился при предыдущей команде. Далее создаём раздел:

fdisk /dev/xvdb
Команда (m для справки): n
p
Номер раздела (1-4): 1

Первый и последний цилиндры оставляем по умолчанию (либо указываем первый и последний из предлагаемого диапазона). Записываем таблицу на диск:

w

Проверяем, всё ли в порядке:

fdisk -l

Если наш новый диск отображается с истинным размером, то всё хорошо, можно продолжать. Монтируем его к нужной директории:

mount /dev/xvdb /var/www/html/mysite.ru

Если вы случайно замонтировали диск на заполненную директорию (естественно, в этом случае все файлы в ней будут потеряны) и df -h выдаёт неверную информацию о свободном пространстве, просто перезапустите сервер (команда reboot).

После проведённых манипуляций все файлы, закачиваемые в ту директорию, будут находиться на новом диске.

Если вы подключили диск в качестве хранилища отдельного сайта (виртуального хоста), то не забудьте перезапустить сервисы httpd и nginx (если он у вас установлен). В случае, если httpd будет ругаться на отсутствующий DocumentRoot и, как следствие, выдавать ошибку 403 Forbidden при доступе к сайту, введите команды:

setsebool -P httpd_enable_homedirs 1
chcon -R -t httpd_sys_content_t /директория/к/сайту

И последнее, что нужно сделать — позаботиться о том, чтобы система сама монтировала диск после перезагрузки. Добавьте в файл /etc/fstab строчку вида:

/dev/xvdb /var/www/html/mysite.ru ext3 defaults 0 0

Теперь диск подключен и работает! Поздравляю!

CentOS   администрирование

Проблема с загрузкой файлов

2 июня 2011, 11:41

На днях случилось столкнуться с проблемой, когда после установки свежего WordPress, файлы отказывались загружаться. Мне известна пара способов решить эту проблему, справедливую для многих движков, где нужно заливать картинки с компьютера себе на сервер.

Способ 1. Самый простой метод — дать папке, в которую загружаются файлы (/wp-content/upload, например) права на запись 0777. Для тех, кто не в курсе, как это делается: запускаем FTP-клиент, идём к нужной папке, заходим в её свойства и там отмечаем 9 галочек — read, write, execute в трёх группах, ну или вписываем число в поле, если такое есть.

Минус этого способа в нарушении безопасности: зная о существовании папки, хакер может залить туда шелл (скрипт, дающий доступ ко всем вашим файлам). Хотя это не сильно упрощает задачу, тем не менее.

Способ 2. Установить владельцем файлов сам «сервер». Если у вас есть доступ по SSH, это легко сделать. Сначала нужно узнать логин пользователя апача. Это может быть apache, www, data, www-data, но лучше самим найти имя в файле /etc/passwd-.

Как только узнали, пишем команду

chown -R %username% /полный/путь/к/папке

например,

chown -R apache /var/www/data/html/mysite.ru/images

Команда меняет владельца файлов на указанного, параметр -R означает, что изменения надо применить ко всем вложенным файлам и поддиректориям.

Известны ли вам какие-либо ещё способы?

WordPress   администрирование   блоги   хостинг

Сортировка в HTML-списках

31 мая 2011, 22:13

Уверен, вам доводилось, заполняя анкету в какой-нибудь социальной сети или при заказе в интернет-магазине, указывать страну или город своего проживания. На менее крупных сайтах обычно это делается обычным текстовым окошком, на крупных порталах вы вероятнее найдёте список всех стран, из которых надо выбрать. И хорошо, если выбор будет не более, чем из десятка альтернатив, иначе…

Наступает страшное — нужно найти собственно то, что отметить. Тут два варианта: либо вы нажимаете на клавиатуре первую букву своего населённого пункта, либо ищете с помощью мышки.

Суть проблемы в том, что список обычно установлен на пункте «Выберите страну». Вы беззаботно прокручиваете все 250 штук по алфавиту и видите, что вашей нет! Вы теряетесь в догадках и только потом до вас доходит, что заботливые программеры вынесли популярную страну на второй пункт списка, на самый верх!

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

Моё предлагаемое решение достаточно простое: не использовать этот пункт-заглушку «Выберите страну», а сразу ставить выделенной именно популярную, но так, чтоб она располагалась на своём месте в алфавите. Технически это реализовывается даже проще, чем вынесение нужной страны из алфавитного порядка наверх — достаточно просто в пункте

<option value="ru">Россия</option>

дописать selected="selected" в тэг.

Преимущества:

  • Вам не нужно делать особую выборку для алфавитной сортировки
  • Страна находится на своём месте и даже при случайном сбросе пункта её можно будет найти
  • Можно динамически просчитывать, какой пункт списка является популярным и отмечать именно его в первую очередь
администрирование   дизайн   факап

Оптимизируем сервак. eAccelerator

4 марта 2011, 13:34


Уже рассмотрели приёмы освобождения оперативки и установку memcache. Теперь самое сладкое — ускоритель php-скриптов — eAccelerator. При правильной настройке он уменьшит время загрузки страниц до трёх раз!

Хотя с ним возможны и некоторые проблемы, если не расчитать свободной памяти, поэтому, если вы ещё не почитали первую статью и ваш сервер обладает меньше, чем 32 мб свободной оперативки, советую перейти к первой части сначала.

Установка eAccelerator

Узнать о последней версии акселератора можно на http://eaccelerator.net/. На момент публикации, ей является версия 0.9.6.1. Скачиваем и ставим командами из терминала (как обычно, для входа в шелл можно скачать программку PuTTy):

cd /usr/local/src
wget 
bzip2 -d eaccelerator-0.9.6.1.tar.bz2
tar xvf eaccelerator-0.9.6.1.tar
cd eaccelerator-0.9.6.1

Далее нам потребуется phpize. Если при вводе данной команды терминал выдаёт ошибку, то тогда ставим пакет php-devel:

yum install php-devel

Убедитесь, что он установился в /usr/bin/phpize, иначе поправьте следующие директории, если необходимо:

phpize
./configure --enable-eaccelerator=shared --with-php-config=usr/bin/php-config
make
make install

Если возникают проблемы при конфигурировании, попробуйте использовать команду без параметров.

Теперь нужно создать папку, в которой будет храниться кэш акселератора:

mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator

Настройка eAccelerator

Далее достаточно тонкий и индивидуальный процесс. Откройте файл php.ini (в /etc/) и в секции [extensions] добавьте следующее:

extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.shm_max="0"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Перезагрузите httpd:

/etc/init.d/httpd restart или service httpd restart

Введите в шелл команду php -v, чтобы убедиться, что eAccelerator установлен и работает. В сообщении должно быть о нём упоминание.

Возможные ошибки

Если после перезагрузки httpd вам выдаётся ошибка 500 или 502, измените настройки и полностью перезагрузите сервер (частный рестарт httpd не всегда помогает в этом случае).

При ошибках вам нужно исправлять значения shm_size и shm_max. 0 — по умолчанию. Рекомендуемое — 16.

Если в логах ошибок вы обнаружите строки «Cannot allocate shared memory…», необходимо произвести следующие манипуляции:

/proc/sys/kernel/shmmax

Выведенное значение в байтах — максимальный предел выделяемой памяти. Рекомендуется в настройках указывать лишь половину от данного значения.  К примеру, если выдаётся 33554432 (32 Мб), уменьшите значение shm_max в php.ini на 16777216 (16 Мб).

Есть и второй путь — увеличить допустимый предел памяти и, соответственно, увеличить его в настройках акселератора.

echo значение_в_байтах > /proc/sys/kernel/shmmax

И прописать это же значение в файле /etc/sysctl.conf в параметре «kernel.shmmax», не забыв его раскомментировать, если нужно (убрать перед строкой #), чтобы значение автоматически присваивалось при перезагрузке сервера.

Правда, в этом случае есть шанс периодически получать ошибки 500 из-за того, что не хватает оперативной памяти на ускоритель (либо если само ядро не может физически выделять больше).

CentOS   администрирование

Оптимизируем сервак. Memcache

4 марта 2011, 12:00


В предыдущей статье я описал пару простых приёмов освобождения оперативной памяти. Сейчас же поговорим насчёт ускорения работы скриптов.

Хорошим тоном нынче является связка Apache + Nginx, которая работает чуть быстрее по сравнению с обычным Апачем, в силу особенностей передачи запросов от Nginx ему. Дополнением к этой связке будет служить мод memcache и eAccelerator, которые призваны кэшировать и ускорять выполнение php-скриптов.

Вкратце, механизм их действия простой: к примеру, если их не использовать, то каждый раз сервер должен выполнять скрипт для посетителя. Если посетителей сотни, а скрипт каждый раз выдаёт одну и ту же информацию для всех, то трата ресурсов получается впустую. Вместо этого ускорители выполняют скрипт один раз и выдают посетителям информацию уже из кэша, без необходимости траты ресурсов на выполнение.

Установка memcache. Способ 1

Всё ниже описанное подходит для серверов с CentOS 5 и им подобным.

Зайдите в шелл (для этого можно использовать популярную программку PuTTy) и вводите следующие команды (можно копировать здесь и вставлять туда правой кнопкой мыши):

cd /usr/local/src
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm
yum -y install memcached

После чего в файле /etc/sysconfig/memcached и замените параметр OPTIONS на:

OPTIONS=&quot;-l 127.0.0.1&quot;

Добавляем memcache в автозагрузку командами:

/etc/init.d/memcached start
chkconfig memcached on

Следующим пунктом нужно установить библиотеку PHP-memcache:

yum -y install php-pecl-memcache

В файл php.ini (в /etc/) в секцию [extensions] внесите строчку:

extension=memcache.so

Перезагрузите httpd:

/etc/init.d/httpd restart

или

service httpd restart

Установка memcache. Способ 2

yum install libmemcache memcached -y

Стартуем:

memcached -d -m 256 -l 127.0.0.1 -p 11211 -u nobody

Можно также добавить в автозагрузку командами из предыдущего способа. Для следующего шага потребуется наличие библиотеки phpize. Если таковой нет, нужно установить php-devel:

yum install zlib-devel

Устанавливаем библиотеку для работы с PHP:

wget http://pecl.php.net/get/memcache-2.1.2.tgz
tar -xvf memcache-2.1.2.tgz &amp;&amp; cd memcache-2.1.2
phpize && ./configure --enable-memcache && make && make install

В файл php.ini (в /etc/) в секцию [extensions] внесите строчку:

extension=memcache.so

Теперь библиотека установлена и должна работать. Обычно она ускоряет работу скриптов примерно на 30%.

CentOS   администрирование

Оптимизируем сервак. Часть 1.

24 февраля 2011, 1:34

Ну, как и обещал, несколько коротких статей с советами о том, что может помочь ускорить ваш VPS.

Имеется достаточно немаленький по объёму сайт, состоящий из MediaWiki и форума. Поскольку со временем он разросся (хоть и не до таких впечатляющих масштабов, как хотелось бы, но хостеров неприятно впечатлил всё же), пришлось искать новый хостинг. Нашли устраивающий и по цене, и по качеству (о нём я уже писал, оперативный саппорт по-прежнему на высоте).

Но вот незадача: вроде бы купленный VPS и работает, но единственный размещённый сайтец немного тормозит (а MediaWiki — много, время генерации главной страницы было порядка 4-6 секунд).

В один прекрасный момент решил всё-таки получше поштудировать интернетную литературу по данному вопросу. Статей написано немало, потому здесь лишь буду пересказывать их содержимое.

Во-первых, достаточно удобно будет обзавестись FTP-аккаунтом от корня сервера, чтобы проводить манипуляции в нём. В шелле хоть и можно производить действия, но гораздо медленнее. Если есть SSH, то можно попробовать установить и соединение по sFTP с логином и паролем администратора. Например, SmartFTP такое позволяет.

Совет 1

Первым делом, если у вас на серве стоит OpenVZ, то маленькая хитрость существенно увеличит объём свободной оперативки, которая нам частично ещё пригодится.

Найдите файл rc (в моём случае он располагается в /etc/rc.d/) и добавьте где-нибудь вверху строчку:

ulimit -s 1024

Это ограничит потребление ресурсов, которое несколько раздута из-за особенностей OpenVZ. Чем меньше значение (в Кбайтах), тем больше должно освободиться памяти, но всё-таки не стоит с этим перебарщивать. После изменения перезагрузите сервер (командой reboot в шелле, например). Одна строчка освободила порядка 100 Мб оперативки, ну и общая загрузка несколько снизилась.

Совет 2

Если не используете в MySQL базы InnoDB, их можно отключить. Найдите файл my.cnf (у меня он лежит в /etc/) и добавьте в секцию [Mysqld] строчку:

skip-innodb

После сохранения перезагрузите сервер БД из шелла, набрав:

service restart mysqld

или

/etc/init.d/mysqld restart

Отключение этой штуки мне дало около 50-80 Мб освободившейся оперативки.

Часть вторая: Оптимизируем сервак. Memcache
Часть третья: Оптимизируем сервак. eAccelerator

CentOS   администрирование

NETIO.SYS и экран смерти

24 февраля 2010, 22:59


Нет, это не айтишная версия гарепоттера, а суровая бытовуха. Уже много-много времени мучала одна назойливая проблема: при скачивании чего-нибудь через uTorrent периодически появлялся синий экран DRIVERS_IRQL_NOT_LESS_OR_EQUAL с проблемой в NETIO.SYS.

Для Windows 7 у мелкомягких никакого решения проблемы не было (зато есть фикс для XP и Висты, естественно без возможности установить на своей семёрке). В сети также решений определённых нет: от удаления антивируса (в частности, Нода в безопасном режиме) до переустановки драйверов для сетевухи и видеокарты.

Сам же уже перепробывал кучу вариантов: сменил антивирь с Нода на KIS 2010 (кстати, думаю, не зря), обновлял дрова сетевухи, ну и в конце концов полностью переставил систему. Был разочарован, когда она, свеженькая, подлым образом снова вылетела при попытке докачать сериал.

Я же, надеюсь, что нашёл решение для своей проблемы: поскольку BSoD вызывал лишь uTorrent при скачиваниях, потому скорее всего проблема была в нём. Откатился к версии 1.7.7 и проблема пока более не наблюдается. Буду надеяться, что больше и не выскочит этот поганый экран смерти.

администрирование   лайфхаки   факап

Бэкап базы данных

20 июля 2009, 1:20

harddrive
Наверняка кто-то из вас сталкивался с такой неприятной проблемой как ленивый хостер, который лишь наобещал вам делать бэкапы данных каждый день, а сам этого не выполняет. И вот в час Ч его сервер полетел к чертям, вместе с вашим сайтом, а потом выясняется, что свежих бэкапов никто делать и не собирался, а последний — двухмесячной давности, что, конечно же, вряд ли устраивает прогрессивных вебмастеров.

Посему предлагаю такое элегантное решение как бэкап базы на e-mail.

Вот скрипт, который поможет в этом муторном деле:

<?
$datestamp = date("d.m.Y");      // Current date to append to filename of backup file in format of YYYY-MM-DD
/* CONFIGURE THE FOLLOWING SEVEN VARIABLES TO MATCH YOUR SETUP */
$dbuser = "";            // Database username
$dbpwd = "";            // Database password
$dbname = "";            // Database name. Use --all-databases if you have more than one
$filename= "backup-$datestamp.sql.gz";   // The name (and optionally path) of the dump file
$to = "you@remotesite.com";      // Email address to send dump file to
$from = "you@yourhost.com";      // Email address message will show as coming from.
$subject = "MySQL backup file";      // Subject of email

$command = "mysqldump -u $dbuser --password=$dbpwd $dbname | gzip &gt; $filename";
$result = passthru($command);

$attachmentname = array_pop(explode("/", $filename));   // If a path was included, strip it out for the attachment name

$message = "Compressed database backup file $attachmentname attached.";
$mime_boundary = "&lt;&lt;&lt;:" . md5(time());
$data = chunk_split(base64_encode(implode("", file($filename))));

$headers = "From: $from\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: multipart/mixed;\r\n";
$headers .= " boundary=\"".$mime_boundary."\"\r\n";

$content = "This is a multi-part message in MIME format.\r\n\r\n";
$content.= "--".$mime_boundary."\r\n";
$content.= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$content.= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$content.= $message."\r\n";
$content.= "--".$mime_boundary."\r\n";
$content.= "Content-Disposition: attachment;\r\n";
$content.= "Content-Type: Application/Octet-Stream; name=\"$attachmentname\"\r\n";
$content.= "Content-Transfer-Encoding: base64\r\n\r\n";
$content.= $data."\r\n";
$content.= "--" . $mime_boundary . "\r\n";

mail($to, $subject, $content, $headers);

unlink($filename);   //delete the backup file from the server
?>

Для большей эффективности рекомендую скрипт вставить в cron и настроить частоту выдачи бэкапов по своему усмотрению.

Также можно запастись и скриптом, который аккуратно сложит на FTP вашу базу, а то и весь сайт.

администрирование