За месяц Ноябрь, 2008

Виртуальный выделенный сервер для начинающих

Наверное, у каждого наступает момент, когда хочется чего-то большего. Выражается это по-своему.. Кто-то покупает новые шмотки-машины-железяки.. Кто-то делает что-то грандиозное..

“Услышав невозможное, некоторые скажут “А почему? А зачем?”, а другие - “А почему НЕТ?”..

В общем, тестируем VDS-сервер от firstvds.ru - недорогой но полноценный. Естественно, по некоторым параметрам он уступает серверам от “монстров” хостинговой индустрии. Однако, в качестве ознакомительного - более чем достаточно.

Сервер подняли быстро - в течение двух дней. Техподдержка отзывчивая, правда не круглосуточная. Но в общем-то цена оправдана. Пока вполне устраивает, потому как не особо требовательный, наверное.

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

htaccess или конфигурируем веб-сервер Apache

.htaccess - служебный файл веб-сервера Apache (и не только), в котором можно указать дополнительные настройки для отдельного сайта или каталога.

Краткая шпаргалка по настройкам в htaccess:
(настройки php в .htaccess - php_flag и php_value в отдельной статье)

# Кодировка страниц по умолчанию
AddDefaultCharset utf-8

ErrorDocument *собственные страницы ошибок
ErrorDocument 404 /404.htm

#
Options +FollowSymlinks

# запрет выдачи списка файлов при отсутствии индексного файла
Options -Indexes

# запрещаем выводить в списке файлов файлы по маске
Options Indexes
IndexIgnore *.php* *.pl

#разрешаем запуск CGI
Options +ExecCGI

# индексный файл по умолчанию - DirectoryIndex указывается для каталога в котором расположен htaccess и всех нижележащих
DirectoryIndex index.html index.shtml index.pl index.cgi index.php

Запрет доступа к файлам - Deny, Allow

# Запрещаем доступ для всех
Order Deny,Allow
Deny from all
# или запрещаем для всех, кроме “избранных”
Order Deny,Allow
Deny from all
Allow from local.
Allow from 97.23.41.14, 97.23.41.15

#запрещаем просматривать изображения всем, кроме пользователя с IP-адреса
#синтаксис регулярных выражений
<FilesMatch “\.(gif|jpe?g|png)$”>
Order Deny,Allow
Deny from all
Allow from  97.23.41.15
</FilesMatch>

Авторизация пользователя средствами htaccess

AuthName “Control Panel”
AuthType Basic
AuthUserFile /home/www/users/levik/secure/.htpasswd
require valid-user

полный путь к файлу можно определить, выполнив в PHP скрипте команду echo __FILE__;

Считаете нужным добавить? Отпишитесь в комментариях.

Опубликовано Ноябрь 20, 2008 | автор: levik  |  Нет комментариев »

Компьютер перезагружается при включении

При включении компьютера происходит одна перезагрузка, а после перезагрузки компьютер “нормально” загружается. Перезагрузка происходит до начала загрузки системы. Возможно, после установки нового жесткого диска.
upd Прочитал - и самому страшно стало. Сплошные “..грузки”.

Довольно странный симптом - чаще либо компьютер постоянно перезагружается, доходя до определенного момента, либо выдает “синий экран смерти”. Разовая перезагрузка вместо включения встречается не так часто.

Однократная перезагрузка при включении, возможно, связана с жестким диском. Рекомендую попробовать отключить его (вытащить шлейф питания, например) и попробовать загрузиться с LiveCD, загрузочной дискеты, флешки или любым другим способом..

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

1. Попробуйте проверить диск. Например, Scandisk-ом или checkdisk-ом. Проверка поверхности и исправление ошибок возможно, помогут.
2. Если перезагрузка происходит после установки нового диска (сам сталкивался с таким случаем - диск Samsung HD501LJ, SATA2 - собственно “двоечка”, как выяснилось, и “вызывала” перезагрузку - материнка “в возрасте” ну никак не хотела “цеплять” диск с первого раза), возможно, получится решить проблему переводом в режим SATA 1 - скорее всего, перемычка и(или) прошивка с сайта производителя. Если не получится найти самостоятельно - пишите, возможно, смогу помочь..
3. Проблема с похожим описанием перезагрузки решилась заменой процессора.

Если кому-нибудь помог другой способ решения проблемы “разовой перезагрузки” - отпишите в комментарии..

ps. Видимо, не хватало мощности для “запуска” жесткого диска в режиме Sata2 - или питания на разъеме, или сам диск “раскрутить”… - возможно, проблему может решить более мощный блок питания - если у кого получилось - отпишите в комментариях. Заранее спасибо.

Опубликовано Ноябрь 11, 2008 | автор: levik  |  Нет комментариев »

Регулярные выражения в PHP - как найти первое вхождение конца или убираем жадность

Регулярные выражения - сложный на первый взгляд, но удивительно мощный инструмент. Подробное описание синтаксиса регулярных выражений занимает не одну страницу.

Иногда требуется выудить содержимое, заключенное в заранее известные границы. Но как быть, если “последняя” граница не единственная в документе? А при попытке выбрать все совпадения почему-то используется не первое вхождение маски, а последнее. Т.е., при попытке выбрать содержимое всех элементов div1 примерно таким кодом:

preg_match_all ('/<div class="div1">(.*)<\/div>/is', $text,$matches) // где текст содержит следующий код:

<div class=”div1″>
<a href=”href0-1″><img src=”image0-1.jpg”></a>
<a href=”href0-1″><img src=”image0-2.jpg”></a>
<a href=”href0-1″><img src=”image0-3.jpg”></a>
</div>

<div class=”div1″>
<a href=”href1″><img src=”image1.jpg”></a>
</div>
<div class=”div1″>
<a href=”href2″><img src=”image2.jpg”></a>
</div>

Мы получим не три значения, а всего одно, в котором будет всё от первого <div class=”div1″>  до последнего </div> - т. е. практически весь код, кроме самих тегов.

Чтобы получить как задумано массив из трех элементов, достаточно добавить модификатор “нежадности” - Ungreedy:

preg_match_all ('/<div class="div1">(.*)<\/div>/isU‘, $text,$matches)

UPD PHP (в Perl такой функциональности не предусмотрено) Если потребуется внутри такого шаблона задать “жадную” подстроку - добавляем “?” к этой подстроке:
чтобы в примере выудить image0-3.jpg из каждой строки, используем маску /src=”([^”]+?)/is - без символа вопроса будет задействован только первый символ. При добавлении вопроса устанавливается “жадность” - ищем, пока не найдем кавычку. (можно, конечно воспользоваться чем-то вроде /”([^”])”/, но идея - показать “местную” жадность )

Опубликовано Ноябрь 3, 2008 | автор: levik  |  Комментарии (2) »