Запуск встроенного веб-сервера в PHP и Python

Запуск Python веб-сервера:

python -m SimpleHTTPServer [port]

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

Запуск PHP веб-сервера (доступно в PHP 5.4):

php -S localhost:[port]

Обновление панели ISPManager

Задача: требуется вручную обновить панель ISPManager.

Решение:

1. найти здесь вашу ОС, архитектуру и нужную версию ISPManager, до которой хотите обновиться

2. скачать выбранный дистрибутив, к примеру:

wget http://ru.download.ispsystem.com/Linux-cc6/x86_64/ISPmanager-Lite/install.stable.tgz

3. Распаковать скаченный дистрибутив в директорию /usr/local/ispmgr:

tar xzf install.stable.tgz -C /usr/local/ispmgr

4. Убедиться, что ISPManager обновился до нужной версии:

/usr/local/ispmgr/bin/ispmgr -v

 

PS: а вот так можно запретить ISPManager обновляться:

echo "Option DisableAutoUpdate" >> /usr/local/ispmgr/etc/ispmgr.conf

Перезагрузка/выключение компьютера через RDP

Бывает необходимость перезагрузить или совсем выключить компьютер через «Удаленный рабочий стол» («Remote Desktop Connection»; используется протокол RDP). Странно, но через меню «Пуск» доступен только пункт «Выйти из системы», никаких других там больше нет. В этой ситуации есть два выхода (актуально для Windows XP/Vista/7):

  1. Нажать комбинацию клавиш Alt+F4 находясь на рабочем столе. Это вызовет диалоговое окно «Завершение работы Windows», в котором будут представлены все недостающие пункты.
  2. В командной строке ввести shutdown с необходимыми параметрами, которые можно узнать через справку команды: shutdown /? | more

IP-адреса и маски подсетей

Доходчивая статья про IP-адреса и маски подсетей. В принципе, для начала изучения что это такое и с чем едят — сгодится.

Редирект страниц на другие урлы

Если есть необходимость сделать редирект с одной статической страницы сайта на другую (даже внешнюю), то в файле .htaccess можно прописать следующее правило:

RewriteRule /page-old.html /page-new.html [L,R=301] — т.е. на первой позиции ставится старый линк на страницу, на второй позиции — новый линк. Код 301 означает, что страница перемещена постоянно.

RewriteRule ^page-old.php?id=(.*)$ /page-new.html [L,R=301] — это правило подходит, если необходимо сделать редирект с динамических страниц.

Материал по теме: .htaccess + регулярные выражения.

FastVPS улучшил характеристики своих тарифов

Хотел опубликовать эту заметку в начале августа, но все руки не доходили. FastVPS, у которого я держу свои сайты (на VPS), решил сделать приятный сюрприз для клиентов, и увеличил с 1 августа для своих тарифов объем RAM, CPU и HDD. Естественно, для конечного пользователя все это бесплатно.

В итоге, на моем VPS теперь CPU 1,9 Гц, RAM 1,2 ГБ и HDD на 12 ГБ. Критичным моментом я здесь считаю, все таки, увеличение RAM, потому что раньше по тарифу у меня было 700 МБ, и порой памяти не хватало. Теперь же с прибавкой объема оперативной памяти стало намного лучше.

nginx: редирект браузера на определенную страницу

Задача: перенаправить пользователя, использующего определенный браузер (в примере — Internet Explorer), на специальную страницу сайта.

Решение:

В файле конфигурации nginx (/etc/nginx/nginx.conf — если Debian) добавить:

if ($http_user_agent ~* 'MSIE')
{
rewrite ^ http://site.com/page;
}

Материал по теме: ссылка

Образы виртуальных машин от Microsoft

На этой странице можно скачать два готовых образа с предустановленной ОС Windows Server 2008 R2 Standard Evaluation Edition для дальнейшего ознакомления и обучения.

Образ 1:

1. Windows Server 2008 R2 Standard Evaluation Edition, подключенный к домену «CONTOSO.COM»
2. Microsoft Exchange Server 2010

Образ 1:

1. Windows Server 2008 R2 Standard Evaluation Edition x64 в роли контроллера домена Active Directory (домен «CONTOSO.COM»)
2. Microsoft SQL Server 2008 R2 Enterprise Edition with Analysis, Notification, and Reporting Services
3. Microsoft Office Communication Server 2007 R2
4. Microsoft Visual Studio 2010
5. Microsoft SharePoint Server 2010 Enterprise Edition
6. Microsoft Office Web Applications
7. Microsoft FAST Search for SharePoint 2010
8. Microsoft Project Server 2010
9. Microsoft Office Professional Plus 2010
10. Microsoft Visio 2010
11. Microsoft Project 2010
12. Microsoft Office Communicator 2007 R2

Тестовый период: 180 дней

Демонстрация включения Ubuntu в домен

В прошлой заметке я описывал процедуру включения ОС Ubuntu в состав домена Windows. Теперь приведу наглядные примеры, как можно проверить работоспособность того, подключился ли компьютер к домену или нет.

Проверям, можем ли мы обращаться к компьютерам в домен по их имени:

ping fileserver.myserver.com -c 10
PING fileserver.myserver.com (172.17.1.6) 56(84) bytes of data.
64 bytes from fileserver.myserver.com (172.17.1.6): icmp_req=1 ttl=128 time=71.3 ms
...
64 bytes from fileserver.myserver.com (172.17.1.6): icmp_req=9 ttl=128 time=1.65 ms
64 bytes from fileserver.myserver.com (172.17.1.6): icmp_req=10 ttl=128 time=4.25 ms

 

--- fileserver.myserver.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9011ms
rtt min/avg/max/mdev = 1.494/9.540/71.321/20.673 ms

Проверяем, можем ли мы авторизироваться в домене. Выбираем какую-нибудь учетную запись в домене из Active Directory, и вводим от нее пароль, как показано ниже. Если после ввода пароля в консоли ничего не появилось, значит все прошло успешно.

kinit Ivanov@MYSERVER.COM
Password for Ivanov@MYSERVER.COM:

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

klist

Отобразится:

Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: Ivanov@MYSERVER.COM

 

Valid starting Expires Service principal
06/18/11 14:40:29 06/19/11 00:38:38 krbtgt/MYSERVER.COM@MYSERVER.COM
renew until 06/19/11 14:40:29

Входим в домен (в пример от учетной записи администратора):

sudo net ads join -U Администратор -D MYSERVER.COM
Enter Администратор's password:

Если на консоль выводится следующее, то вход в домен осуществлен успешно:

Using short domain name -- MYSERVER
Joined 'LAPTOPUBUNTU' to realm 'myserver.com'

Проверяем, что Winbind видит группы (-g) и пользователей (-u):

wbinfo -u

 

LAPTOPUBUNTU\nobody
LAPTOPUBUNTU\myuser
администратор
krbtgt
гость
user_admin
ivanov
senatorov
dholme
jfine
bmayer
bmorelend
myuser
krayner
mitchell

wbinfo -g

 

компьютеры домена
издатели сертификатов
пользователи домена
гости домена
серверы ras и ias
администраторы домена
администраторы схемы
администраторы предприятия
владельцы-создатели групповой политики
группа с разрешением репликации паролей rodc
группа с запрещением репликации паролей rodc
контроллеры домена предприятия - только чтение
контроллеры домена - только чтение
контроллеры домена
dnsadmins
dnsupdateproxy
финансы
финансовые менеджеры
продажи
администраторы windows
справка
app_office 2007
пользователи dhcp
администраторы dhcp

Проверяем, что Ubuntu запрашивает у Winbind информацию (содержимое файла /etc/passwd) о пользователях и группах:

getent passwd

 

root:x:0:0:root:/root:/bin/bash
...
ntp:x:113:124::/home/ntp:/bin/false
администратор:*:10000:10000:Администратор:/home/MYSERVER/администратор:/bin/bash
krbtgt:*:10001:10000:krbtgt:/home/MYSERVER/krbtgt:/bin/bash
гость:*:10002:10001:Гость:/home/MYSERVER/гость:/bin/bash
myuser_admin:*:10003:10000:Александр:/home/MYSERVER/user_admin:/bin/bash
lapshenkov:*:10004:10000:Anton Ivanov:/home/MYSERVER/ivanov:/bin/bash
senatorov:*:10005:10000:Alexander Petrov:/home/MYSERVER/ptrov:/bin/bash
dholme:*:10006:10000:Дэн Холме:/home/MYSERVER/dholme:/bin/bash
jfine:*:10007:10000:Джеймс Файн:/home/MYSERVER/jfine:/bin/bash
bmayer:*:10008:10000:Барбара Майер:/home/MYSERVER/bmayer:/bin/bash
bmorelend:*:10009:10000:Барбара Морленд:/home/MYSERVER/bmorelend:/bin/bash
myuser:*:10010:10000:Александр:/home/MYSERVER/user:/bin/bash
krayner:*:10011:10000:Тони Крайнер:/home/MYSERVER/krayner:/bin/bash
mitchell:*:10012:10000:Скотт Митчелл:/home/MYSERVER/mitchell:/bin/bash

getent group

 

root:x:0:
...
sambashare:x:122:myuser
winbindd_priv:x:123:
ntp:x:124:
компьютеры домена:x:10002:
издатели сертификатов:x:10003:
пользователи домена:x:10000:
гости домена:x:10001:
серверы ras и ias:x:10004:
администраторы домена:x:10005:user_admin,администратор
администраторы схемы:x:10006:администратор
администраторы предприятия:x:10007:администратор
владельцы-создатели групповой политики:x:10008:администратор
группа с разрешением репликации паролей rodc:x:10009:
группа с запрещением репликации паролей rodc:x:10010:krbtgt
контроллеры домена предприятия - только чтение:x:10011:
контроллеры домена - только чтение:x:10012:
контроллеры домена:x:10013:
dnsadmins:x:10014:
dnsupdateproxy:x:10015:
финансы:x:10016:
финансовые менеджеры:x:10017:
продажи:x:10018:
администраторы windows:x:10019:
справка:x:10020:bmayer
app_office 2007:x:10021:laptop$
пользователи dhcp:x:10024:
администраторы dhcp:x:10025:

Как видно из приведенных примеров, все работает, как и должно быть.

Обновление/удаление ядра в Linux

Задача: обновить существующее ядро Linux (для примера будем брать Ubuntu) до самой последней или до нужной.

Решение:

uname -r — показывает текущую версию ядра в системе

sudo add-apt-repository ppa:kernel-ppa/ppa — добавление PPA для ядра
sudo apt-get update — обновляем списки репозиториев
apt-cache showpkg linux-headers — показывает список доступных ядер

Пример отображения:

Package: linux-headers
Versions:

Reverse Depends:
lirc-modules-source,linux-headers
sl-modem-source,linux-headers
xtables-addons-dkms,linux-headers
oss4-dkms,linux-headers
openswan-modules-source,linux-headers
lirc-modules-source,linux-headers
blcr-dkms,linux-headers
alsa-source,linux-headers
nvidia-current,linux-headers
nvidia-96,linux-headers
nvidia-173,linux-headers
fglrx,linux-headers
bcmwl-kernel-source,linux-headers
dkms,linux-headers
Dependencies:
Provides:
Reverse Provides:
linux-headers-2.6.39-0 2.6.39-0.5~20110427
linux-headers-2.6.39-0-generic 2.6.39-0.5~20110427
linux-headers-2.6.39-0-generic-pae 2.6.39-0.5~20110427
linux-headers-2.6.39-0-virtual 2.6.39-0.5~20110427
linux-headers-2.6.38-8-virtual 2.6.38-8.42
linux-headers-2.6.38-8-generic-pae 2.6.38-8.42
linux-headers-2.6.38-8-generic 2.6.38-8.42
linux-headers-2.6.38-8 2.6.38-8.42

Устанавливаем нужное ядро:

sudo apt-get install linux-headers-2.6.39-0 linux-headers-2.6.39-0-generic linux-image-2.6.39-0-generic --fix-missing

Если необходимо установить какое-то конкретное ядро, а не самое последнее, то заходим сюда (http://kernel.ubuntu.com/~kernel-ppa/mainline/), скачиваем файлы (linux-headers и linux-image) для вашей архитектуры процессора (i386 или amd64) в какую-нибудь папку (к примеру, /home/user/kernerl), и затем выполняем команду:

sudo dpkg -i *

Стоит отметить, что после обновления ядра проприетарные драйверы, скорее всего, работать не будут, их необходимо будет занова установить/пересобрать. Лично у меня графические проприетарные драйвера обновились автоматически:

run-parts: executing /etc/kernel/header_postinst.d/dkms 2.6.39-0-generic /boot/vmlinuz-2.6.39-0-generic
* dkms: running auto installation service for kernel 2.6.39-0-generic
* nvidia-current (270.41.06)... [ OK ]
run-parts: executing /etc/kernel/header_postinst.d/nvidia-common 2.6.39-0-generic /boot/vmlinuz-2.6.39-0-generic

Если необходимо удалить неиспользуемое ядро, то:

dpkg -l | grep linux-image — отображает список установленных в системе ядер

Пример вывода:

ii linux-image-2.6.38-8-generic 2.6.38-8.42 Linux kernel image for version 2.6.38 on x86/x86_64
ii linux-image-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel image for version 2.6.39 on x86/x86_64
ii linux-image-generic 2.6.38.8.22 Generic Linux kernel image

sudo apt-get remove -f linux-image-2.6.38-8.42 — удаление выбранного ядра

dpkg -l | grep linux-headers — отображает список установленных заголовков ядра

Пример вывода:

ii linux-image-2.6.38-8-generic 2.6.38-8.42 Linux kernel image for version 2.6.38 on x86/x86_64
ii linux-image-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel image for version 2.6.39 on x86/x86_64
ii linux-image-generic 2.6.38.8.22 Generic Linux kernel image
user@LaptopUbuntu:~$ dpkg -l | grep linux-headers
ii linux-headers-2.6.38-8 2.6.38-8.42 Header files related to Linux kernel version 2.6.38
ii linux-headers-2.6.38-8-generic 2.6.38-8.42 Linux kernel headers for version 2.6.38 on x86/x86_64
ii linux-headers-2.6.39-0 2.6.39-0.5~20110427 Header files related to Linux kernel version 2.6.39
ii linux-headers-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel headers for version 2.6.39 on x86/x86_64
ii linux-headers-generic 2.6.38.8.22 Generic Linux kernel headers

sudo apt-get remove -f linux-headers-2.6.38-8.42 linux-headers-2.6.38-8.42-generic — удаление выбранных заголовков ядра

sudo update-grub — удаление записей установленных ядер в загрузчике GRUP