Установка MySQL на CentOS 6.3
Для начала устанавливаем сам MySQL:
yum install mysql mysql-server
Для начала устанавливаем сам MySQL:
yum install mysql mysql-server
Для того, чтобы защитить директорию стандартной Basic авторизацией в конфигурацию виртуального сервера необходимо добавить блок location:
location /path/ { auth_basic "Unauthorized"; auth_basic_user_file /path/to/.htpasswd; }
Так как nginx отдаёт файлы, начинающиеся на точку (например .htaccess) необходимо закрыть доступ к таким файлам:
location ~ /\. { deny all; access_log off; log_not_found off; }
Для генерации пароля можно использовать htpasswd:
$htpasswd -nd %username%
где %username% имя пользователя
Если не установлен apache можно воспользоваться php:
php -r 'echo crypt("password", "salt");'
где password — пароль, а salt — двухсимвольная (набор символов ./0-9A-Za-z) соль.
Для того, чтобы отслеживать ссылки с якорем в Google Analytics необходимо добавить параметры для отслеживания:
Традиционный код:
var pageTracker = _gat._getTracker("UA-XXXXX-X");
pageTracker._trackPageview(location.pathname + location.search + location.hash);
Асинхронный код:
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
Сейчас Мастерхост активно завершает эксплуатацию платформ DELL и просит своих клиентов переносить данные на новые сервера. Сервер мы заказали, нам его настроили — в общем все хорошо.
Сегодня пришло письмо, в котором говорится что Мастерхост предоставляет нам аренду сервера бесплатно на месяц. Это хорошо.
Спасибо!
Недавно открыл для себя UI фреймворк от Twitter. И вот уже вышла версия 2.0.
Необходимо было проверить строку на наличие слов, написанных в верхнем регистре и заменить их на слово в нижнем регистре, но с заглавным первым символом.
Функция ctype_upper не подошла, т.к. плохо работает с кириллицей.
Написал такую функцию:
function lower($str, $charset='UTF-8')
{
// Разбиение строки.
$tmp = explode(' ', $str);
if (is_array($tmp) && 0 < ($count = count($tmp)))
{
for ($i=0;$i<$count;$i++)
{
/**
* Для определения кириллицы используется тождественное сравнивание,
* т.к. ctype_upper работает некорректно.
*
*/
if ($tmp[$i] !== mb_strtolower($tmp[$i], $charset))
{
$tmp[$i] = mb_convert_case(mb_strtolower($tmp[$i], $charset), MB_CASE_TITLE, $charset);
}
}
}
$str = implode(' ', $tmp);
return $str;
}
Использовать можно так:
$str = 'Записки WEB-ПРОГРАММИСТА';
echo lower($str); // Записки Web-Программиста
В стандартах кодирования в разделе «форматирование блоков if then else» написано, что при сравнении константы необходимо ставить слева, т.е.
if (1 == $var)
Сегодня задумался по поводу сравнения с булевыми константами.
Как лучше писать
if (true === $var)
или использовать восклицательный знак (!)
if (!$var)
Совершенно случайно обнаружил в своем блоге странный код, который, при заходе на отдельную запись, показывал confirm с текстом Press Ok to enter site.
Для решения этой проблемы необходимо удалить из файла single.php код
< ?=bloqinfo($post->ID) ?>
и в файле functions.php удалить функцию bloqinfo.
При написании приложения для работы с vkontakte.ru Ads API потребовалось загружать данные на их сервер.
С помощью cURL и PHP делается это так:
< ?php
$ch = curl_init();
// URL для обработки.
curl_setopt($ch, CURLOPT_URL, $url);
// Не отправлять заголовки в браузер
curl_setopt($ch, CURLOPT_HEADER, false);
// Название браузера.
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
// Возвращать содержимое.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Заголовки для запроса.
$headers = array(
'Expect:',
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Сообщаем, что это POST-запрос.
curl_setopt($ch, CURLOPT_POST, true);
// Данные POST-запроса.
$post = array(
'file' => '@/home/izra/file.ext'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
// Получение ответа.
$return = curl_exec($ch);
// Закрытие соединения.
curl_close($ch);
?>
Vkontakte.ru выпустил в свет API для управления рекламными объявлениями. Конечно, выпустил он его давно, но Ads API до сих пор имеет статус beta.
Документация не особо объемная, но все же немного помогает. При разработке решений на базе их API проблемы возникли сразу же.
Читать полностью →