Oktell IP PBX в сценариях может легко отправлять SMS, а вот как быть с обычными пользователями? Для них я написал небольшую веб-страничку:
Oct 22 2011
Как запустить PHP 5.3 и 5.2 на одном WEB-сервере
1
Обновил один из серверов с Debian lenny до squeeze. Все прошло гладко, только вот на одном из старых сайтов (joomla 1.0) посыпалась куча deprecated функций PHP. Не хотел трогать код этого сайта, решил запустить для него отдельно PHP5.2 на том же сервере. Вот как это я реализовал.
Устанавливаем зависимости, скачиваем PHP5.2 и распаковываем архив:
aptitude install libxml2-dev libmysqlclient-dev libcurl4-gnutls-dev libpng12-dev libjpeg62-dev cd /tmp wget http://www.php.net/get/php-5.2.17.tar.gz/from/ru.php.net/mirror -O php-5.2.17.tar.gz tar zxvf php-5.2.17.tar.gz cd php-5.2.17
Из исходников собираем PHP5.2 и устанавливаем в /opt/php5.2:
./configure --prefix=/opt/php5.2 --with-config-file-path=/opt/php5.2 --with-mysqli --with-mysql --with-curl --with-gd --with-jpeg-dir --enable-cli --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect make make install
Проверяем:
/opt/php5.2/bin/php -v PHP 5.2.17 (cli) (built: Oct 22 2011 15:05:51) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
Запускать для этого сайта PHP5.2 будем через fastcgi.
aptitude install libapache2-mod-fastcgi a2enmod cgi fastcgi actions invoke-rc.d apache2 restart
Создадим исполняемый файл /opt/php5.2/bin/php-cgi, который содержит:
#!/bin/sh PHPRC="/opt/php5.2/" export PHPRC PHP_FCGI_CHILDREN=4 export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_MAX_REQUESTS exec /opt/php5.2/bin/php-cgi
В виртуальном хосте нужного сайта добавляем:
SetHandler application/x-httpd-php5 ScriptAlias /php52-cgi /usr/lib/cgi-bin/php52-cgi Action application/x-httpd-php5 /php52-cgi AddHandler application/x-httpd-php5 .php
Перезапустим Apache и проверяем что наш сайт уже использует PHP 5.2, когда все остальные 5.3
invoke-rc.d apache2 restart
Apr 18 2010
Как перезапустить PPPoE на FreeBSD?
2
После того, как Укртелеком ввел новые тарифы на ADSL и до 24 Мбіт/с дома – это уже реальность, начал я думать какой-то скрипт для перезапуска PPPoE соединения. Моя линия смогла выдержать соединение на 17 Мбіт/с, но соединение на FreeBSD стало регулярно 1 раз в сутки зависать.
И так, на Perl написал скрипт, который пингует Яндекс (у Вас должен быть установлен perl модуль p5-Net-Ping) и если пинг не проходит, перезапускаем соединение. События логируем в /var/log/ppp.log для анализа. А вот и сам скрипт, который нужно прописать в crontab:
Mar 27 2010
Обмеження кількості повідомлень для форуму phpBB
2
Виникла необхідність обмежити кількість повідомлень, які розміщують певні користувачі на форумі phpBB 3.0.7. Віднайшов рішення цієї задачі!
Створюємо файл modinstall.php наступного вмісту:
< ?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
include($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
$auth_admin = new auth_admin();
$result = $auth_admin->acl_add_option(array(
'local' => array('u_limit_posts_per_day'),
'global' => array('u_limit_posts_per_day')
));
print ('Permissions install ' . ($result ? 'completed successfully' : 'failed'));
?>
Встановлюємо на файл всі необхідні прав та виконуємо в браузері. Після, файл видаляємо!
Читать далее →”Обмеження кількості повідомлень для форуму phpBB”
Mar 10 2010
Backup MS SQL Express по расписанию
1
Необходимо выполнить резервное копирование по расписанию на установленном SQL Express. К большому сожалению JOBs нету
Воспользуемся Batch файлом и запускаем его по расписанию ( Windows расписанию или nnCron!
)
Для SQL Server 2005 или 2008 берем sqlcmd.exe, а для SQL Server 2000 – osql.exe
Пишим батник:
@ECHO OFF sqlcmd -Q "BACKUP DATABASE [myDB] TO DISK = N'D:\myDB.bak' " -Slocalhost\SQLEXPRESS -dmyDB -E -oD:\Output.txt @ECHO ON
Запускаем! У нас должна создаться резервная копия базы [myDB] на диске D:\myDB.bak, а в файле D:\Output.txt – результат выполнения команды. Все!
Mar 07 2010
Сайт без проблем із кодуванням
0
Після того, як я переніс один сайт на новий сервер, то отримав замість тексту, щось таке:
?????? ??? ????? ?????????? ???? ???? ??
Проблема в тім, що у попередній версії MySQL текст у базі зберігався у кодуванні Windows-1251, після оновлення – UTF8. Вирішення проблеми, оголосити набір символів у PHP скрипті відразу після з’єднання:
@mysql_pconnect($server, $user, $password);
$db_connect_id = @mysql_select_db($dbname);
@mysql_query(" SET NAMES 'cp1251' ", $db_connect_id);
Feb 23 2010
Права доступа к таблицам
0
Если нужно быстро узнать каким пользователям какие права доступа установлены к таблице в базе Microsoft SQL, можно воспользоватся запросом:
SELECT dp.NAME AS principal_name,
dp.type_desc AS principal_type_desc,
o.NAME AS object_name,
p.permission_name,
p.state_desc AS permission_state_desc
FROM sys.database_permissions p
LEFT OUTER JOIN sys.all_objects o
ON p.major_id = o.OBJECT_ID
INNER JOIN sys.database_principals dp
ON p.grantee_principal_id = dp.principal_id
WHERE o.NAME = 'tbl_Bank'
Feb 16 2010
Getting the Week Start Date and Week End Date in SQL
0
Suppose you’re given a date and asked to retrieve data for the whole week in which the given date falls. The example code produces the Week Start Date and Week End Date:
--Please set your appropriate values for @REPORT_DATE and @WEEK_BEGINING
DECLARE @REPORT_DATE DATETIME, @WEEK_BEGINING VARCHAR(10)
SELECT @REPORT_DATE = '2004-09-21T00:00:00'
SELECT @WEEK_BEGINING = 'MONDAY'
IF @WEEK_BEGINING = 'MONDAY'
SET DATEFIRST 1
ELSE IF @WEEK_BEGINING = 'TUESDAY'
SET DATEFIRST 2
ELSE IF @WEEK_BEGINING = 'WEDNESDAY'
SET DATEFIRST 3
ELSE IF @WEEK_BEGINING = 'THURSDAY'
SET DATEFIRST 4
ELSE IF @WEEK_BEGINING = 'FRIDAY'
SET DATEFIRST 5
ELSE IF @WEEK_BEGINING = 'SATURDAY'
SET DATEFIRST 6
ELSE IF @WEEK_BEGINING = 'SUNDAY'
SET DATEFIRST 7
DECLARE @WEEK_START_DATE DATETIME, @WEEK_END_DATE DATETIME
--GET THE WEEK START DATE
SELECT @WEEK_START_DATE = @REPORT_DATE - (DATEPART(DW, @REPORT_DATE) - 1)
--GET THE WEEK END DATE
SELECT @WEEK_END_DATE = @REPORT_DATE + (7 - DATEPART(DW, @REPORT_DATE))
PRINT 'Week Start: ' + CONVERT(VARCHAR, @WEEK_START_DATE)
PRINT 'Week End: ' + CONVERT(VARCHAR, @WEEK_END_DATE)
The above code produces the following result:
Week Start: Sep 20 2004 12:00AM — Which is Monday
Week End: Sep 26 2004 12:00AM — Which is Sunday
Feb 04 2010
Как загрузить файл из PHP в MS SQL
2
Целые день пытался корректно загрузить файл в Microsoft SQL в Blob Data Field. И вот, решение найдено! Что бы Вам потом не пришлось много времени потратить на это, рассказываю:
$FileData = addslashes(fread(fopen($filePath, "rb"), filesize($filePath)));
Вот так мы преобразуем файл, а дальше – обычный INSERT в базу!
Dec 20 2009
Заміна однієї стрічки по шаблону в багатьох файлах
1
Стояла задача: швидко замінити у 200 XML файлах стрічку “tbl_Offering” на “tbl_OfferingMovement”. Ось як це можна зробити одним рядком Perl коду під Debian GNU/Linux (оригінал кожного файлу зберігається окремо з розширенням bak):
perl -i.bak -p -e 's/tbl_Offering/tbl_OfferingMovement/gi;' *


