sudo extundelete --restore-directory /home/Documents/ /dev/sda1
пятница, 4 сентября 2015 г.
понедельник, 23 сентября 2013 г.
bootmail - отправка email когда сервер (пере)запускается
# apt-get install bootmail
Recipients can be configured via debconf:
# sudo dpkg-reconfigure bootmail
Recipients can be configured via debconf:
# sudo dpkg-reconfigure bootmail
среда, 13 февраля 2013 г.
Генерация ключа и запроса на сертификат(CSR) для Apache
Сначала генерим секретный ключ.
Если хотим использовать пароль для шифрования то добавляем параметр -des3
#openssl genrsa -out www.mydomain.com.key 2048
Дальше используя ключ генерим запрос на сертификат
#openssl req -new -key www.mydomain.com.key -out www.mydomain.com.csr
Если хотим использовать пароль для шифрования то добавляем параметр -des3
#openssl genrsa -out www.mydomain.com.key 2048
Дальше используя ключ генерим запрос на сертификат
#openssl req -new -key www.mydomain.com.key -out www.mydomain.com.csr
среда, 12 декабря 2012 г.
Правильные права доступа на фалы и папки для SugarCRM
все папки 755 файлы 644
#find . -type d -exec chmod 755 {} \;
#find . -type f -exec chmod 444 {} \;
775 на все папки и под папки
cache/
custom/
data/
modules/
#find ./cache/ -type d -exec chmod 775 {} \;
#find ./custom/ -type d -exec chmod 775 {} \;
#find ./data/ -type d -exec chmod 775 {} \;
#find ./modules/ -type d -exec chmod 775 {} \;
664 на все файлы в этих папках
cache/
custom/
data/
modules/
#find ./cache/ -type f -exec chmod 664 {} \;
#find ./custom/ -type f -exec chmod 664 {} \;
#find ./data/ -type f -exec chmod 664 {} \;
#find ./modules/ -type f -exec chmod 664 {} \;
640 на config.php и config_override.php
#chmod 640 config.php config_override.php
664 на sugarcrm.log
#chmod 664 sugarcrm.log
четверг, 1 ноября 2012 г.
Ограничение пропускной полосы для ProFTPd
Добавляем в proftpd.conf две строчки
TransferRate RETR 1024.0
TransferRate STOR 512.0
В данном случае мы задали лимит для всех 1Mbite на скачивание и 512Kbit на закачивание.
TransferRate RETR 1024.0
TransferRate STOR 512.0
В данном случае мы задали лимит для всех 1Mbite на скачивание и 512Kbit на закачивание.
пятница, 26 октября 2012 г.
PHP 5.3.3 + MySQLi ошибка во время компиляции my_global.h:1008: error: duplicate 'unsigned'
У меня возникла такая ошибка во время компиляции PHP 5.3.3 для DirectAdmin
Для решения этой проблемы нужно пропатчить исходники PHP вот этим патчем
Патч:
и в папке с исходниками выполняем patch < php_mysqli_structs.patch
Для решения этой проблемы нужно пропатчить исходники PHP вот этим патчем
Патч:
Index: ext/mysqli/php_mysqli_structs.h =================================================================== --- ext/mysqli/php_mysqli_structs.h (revision 301474) +++ ext/mysqli/php_mysqli_structs.h (working copy) @@ -54,6 +54,7 @@ #define WE_HAD_MBSTATE_T #endif +#define HAVE_ULONG 1 #includeСохраняем этот текст в файл php_mysqli_structs.patch#if !defined(HAVE_MBRLEN) && defined(WE_HAD_MBRLEN)
и в папке с исходниками выполняем patch < php_mysqli_structs.patch
ImageMagick для PHP 5.3.3 + DirectAdmin
Подключение модуля ImageMagick для PHP 5.3.3 под DirectAdmin
Все дополнения для PHP что поставляется вместе с DirectAdmin вкомпиливаются в сам интерпретатор и не идут отделенными модулями.
Что бы включить такое расширение нам необходимо добавить строчку, например --with-gd, в конец конфигурационного файла /usr/local/directadmin/custombuild/configure/ap2/configure.php5
(ap2 означает Apache20 или apache22)
если вы используете suPHP то тогда вам необходимо отредактировать этот файл
/usr/local/directadmin/custombuild/configure/suphp/configure.php5
и после этого пересобрать PHP
cd /usr/local/DirectAdmin/custombuild
./build php n
Но нам этот способ не подходит так как расширения ImageMagick нет в поставке с PHP которое идет вместе с DirectAdmin.
Нам необходимо подключить его как внешний модуль.
Для этого качаем исходники и компилим его
wget http://pecl.php.net/get/imagick-2.3.0.tgz
tar -zxf imagick-2.3.0.tgz
cd imagick-2.3.0
/usr/local/php5/bin/phpize
./configure --with-imagick=/usr/local --with-php-config=/usr/local/php5/bin/php-config
make
make install
после этого расширение скомпилируется под версию PHP что мы используем для DirectAdmin
После установки расширение с копируется примерно вот в эту папку /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/
Уточните название папки и подставте его как значение для параметра extension_dir в php.ini
Так как я используею suPHP то для меня используется вот этот файл
/usr/local/etc/php5/cgi/php.ini
добавляем в него - extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"
и так же добавляем загрузку нашего дополнения
extension=imagick.so
После этого перезапускаем Apache и дополнение должно активироваться.
Все дополнения для PHP что поставляется вместе с DirectAdmin вкомпиливаются в сам интерпретатор и не идут отделенными модулями.
Что бы включить такое расширение нам необходимо добавить строчку, например --with-gd, в конец конфигурационного файла /usr/local/directadmin/custombuild/configure/ap2/configure.php5
(ap2 означает Apache20 или apache22)
если вы используете suPHP то тогда вам необходимо отредактировать этот файл
/usr/local/directadmin/custombuild/configure/suphp/configure.php5
и после этого пересобрать PHP
cd /usr/local/DirectAdmin/custombuild
./build php n
Но нам этот способ не подходит так как расширения ImageMagick нет в поставке с PHP которое идет вместе с DirectAdmin.
Нам необходимо подключить его как внешний модуль.
Для этого качаем исходники и компилим его
wget http://pecl.php.net/get/imagick-2.3.0.tgz
tar -zxf imagick-2.3.0.tgz
cd imagick-2.3.0
/usr/local/php5/bin/phpize
./configure --with-imagick=/usr/local --with-php-config=/usr/local/php5/bin/php-config
make
make install
после этого расширение скомпилируется под версию PHP что мы используем для DirectAdmin
После установки расширение с копируется примерно вот в эту папку /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/
Уточните название папки и подставте его как значение для параметра extension_dir в php.ini
Так как я используею suPHP то для меня используется вот этот файл
/usr/local/etc/php5/cgi/php.ini
добавляем в него - extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"
и так же добавляем загрузку нашего дополнения
extension=imagick.so
После этого перезапускаем Apache и дополнение должно активироваться.
понедельник, 15 октября 2012 г.
Amazon CloudFront + Nginx + gzip
Что бы Amazon CloudFront отдавал ваши файлы сжатые в gzip, он должен и у вас забрать их сжатыми в gzip.
Но для этого вам нужно правильно настроить ваш web-сервер.
Вот настройки для Nginx
gzip on;
gzip_min_length 1000;
gzip_types text/plain application/xml text/css text/xml text/javascript application/x-javascript;
gzip_http_version 1.0;
gzip_vary on;
gzip_proxied any;
Но для этого вам нужно правильно настроить ваш web-сервер.
Вот настройки для Nginx
gzip on;
gzip_min_length 1000;
gzip_types text/plain application/xml text/css text/xml text/javascript application/x-javascript;
gzip_http_version 1.0;
gzip_vary on;
gzip_proxied any;
среда, 18 июля 2012 г.
перенос Wordpress на новый url
При переносе Wordpress на новый url не достаточно просто изменить все пути.
Настройки в таблице wp_options хронятся как php массив и для каждого значения указывается его длинна. Для изменения этого значение и используется скрипт Serialization-fixer.zip
http://davidcoveney.com/575/php-serialization-fix-for-wordpress-migrations/
Настройки в таблице wp_options хронятся как php массив и для каждого значения указывается его длинна. Для изменения этого значение и используется скрипт Serialization-fixer.zip
http://davidcoveney.com/575/php-serialization-fix-for-wordpress-migrations/
среда, 23 мая 2012 г.
Закрытие сайта подписанными сертификатами
Переходи в нужную нам папку где буду находиться наши файлы и сертификаты
#openssl req -new -newkey rsa:2048 -keyout ca.pem -x509 -days 3650 -out ca.pem
Задаем пароль и запоминаем его
#/usr/lib/ssl/misc/CA.pl -newca
вводим имя созданого ранее сертификата - ca.pem
Сохраняем запомненный пароль в ./demoCA/private/cakey.passwd
#openssl x509 -noout -text -in ca.pem
Находим строчку которая начинается с serial: и сохраняем сам серийный номер в файл ./demoCA/serial
удаляем ca.pem
Создаем список отзыва сертификатов
#openssl ca -gencrl -out cacrl.pem
(отозвать сертификат можно будет командой #openssl ca -revoke client01.crt)
Подключяем его к виртуал-хосту директивой SSLCARevocationFile
далее подключяем cacert.pem директивой SSLCACertificateFile
Разархивируем архив ssl_suite.zip
ssl_gen.sh - генерит и отправляет сертификат клиенту
ssl_renew.sh - обновляет сертификат когда истекает время работы сертификата
ssl_send.sh - отправляет архив с сертификатами клиенту
Обратите внимание на файл exp_ssl_gen
В нем нужно подставить значения которые будут задаваться для сертификата, такие как Country Name, State or Province Name ...
#openssl req -new -newkey rsa:2048 -keyout ca.pem -x509 -days 3650 -out ca.pem
Задаем пароль и запоминаем его
#/usr/lib/ssl/misc/CA.pl -newca
вводим имя созданого ранее сертификата - ca.pem
Сохраняем запомненный пароль в ./demoCA/private/cakey.passwd
#openssl x509 -noout -text -in ca.pem
Находим строчку которая начинается с serial: и сохраняем сам серийный номер в файл ./demoCA/serial
удаляем ca.pem
Создаем список отзыва сертификатов
#openssl ca -gencrl -out cacrl.pem
(отозвать сертификат можно будет командой #openssl ca -revoke client01.crt)
Подключяем его к виртуал-хосту директивой SSLCARevocationFile
далее подключяем cacert.pem директивой SSLCACertificateFile
Разархивируем архив ssl_suite.zip
ssl_gen.sh - генерит и отправляет сертификат клиенту
ssl_renew.sh - обновляет сертификат когда истекает время работы сертификата
ssl_send.sh - отправляет архив с сертификатами клиенту
Обратите внимание на файл exp_ssl_gen
В нем нужно подставить значения которые будут задаваться для сертификата, такие как Country Name, State or Province Name ...
четверг, 17 мая 2012 г.
bash: проверка правильного ввода email
#Check format of email address xxx@xxx.xx
verify=`echo $email |grep -E "[[:alnum:]]+@[[:alnum:]]+\.{1}([A-Za-z]+)$"`
if [ -z $verify ]; then.
echo "Error: Wrong format of email address $email !!!"
exit 1
fi
verify=`echo $email |grep -E "[[:alnum:]]+@[[:alnum:]]+\.{1}([A-Za-z]+)$"`
if [ -z $verify ]; then.
echo "Error: Wrong format of email address $email !!!"
exit 1
fi
bash: проверка пользователя root ли он
if [[ ${EUID} != "0" ]] && ! [[ $2 == "status" && $# -eq 2 ]] ; then
echo "Error $0: must be root to run script , try to use sudo "
exit 1
fi
echo "Error $0: must be root to run script , try to use sudo "
exit 1
fi
понедельник, 14 мая 2012 г.
Аналог Unix команды tail -f для Windows
Выполняется в PowerShell
> Get-Content -Path "C:\filename.txt" -Wait
> Get-Content -Path "C:\filename.txt" -Wait
понедельник, 23 апреля 2012 г.
Проблемы с обновлением SugarCRM с версии 5.5.0 до 6.0.4
Во время обновления Upgrade Wizard зависает на одном из этапов.
Для решения нужно немного подправить исходники
В файле modules/UpgradeWizard/systemCheck.php находим строчку foreach($files as $file)
и в конце этого цикла вписываем break;
После этих изменения обновление проходит нормально.
четверг, 19 апреля 2012 г.
Добавление пользователя в SugarCRM из командной строки
Этот метод подходит в тех случаях когда вам нужно получить доступ к SugarCRM имя доступ только к базе данных.
Для начала сохраняем хеш пароля администратора
mysql> select user_name,user_hash from users where user_name = 'admin';
+-----------+---------------------------------------------------+
| user_name | user_hash |
+-----------+---------------------------------------------------+
| admin | 58b4e67f66bacfr42380845d6af27187 |
+-----------+---------------------------------------------------+
Изменяем пароль на свой
mysql> update users set user_hash = md5('пароль') where user_name = 'admin';
Заходим в SugarCRM в раздел Admin > Create New User
И создаем нового пользователя под себя.
После всех этих действий возвращаем старый пароль для администратора используя сохраненный хеш
mysql> update users set user_hash = '58b4e67f66bacfr42380845d6af27187' where user_name = 'admin';
Для начала сохраняем хеш пароля администратора
mysql> select user_name,user_hash from users where user_name = 'admin';
+-----------+---------------------------------------------------+
| user_name | user_hash |
+-----------+---------------------------------------------------+
| admin | 58b4e67f66bacfr42380845d6af27187 |
+-----------+---------------------------------------------------+
Изменяем пароль на свой
mysql> update users set user_hash = md5('пароль') where user_name = 'admin';
Заходим в SugarCRM в раздел Admin > Create New User
И создаем нового пользователя под себя.
После всех этих действий возвращаем старый пароль для администратора используя сохраненный хеш
mysql> update users set user_hash = '58b4e67f66bacfr42380845d6af27187' where user_name = 'admin';
понедельник, 26 марта 2012 г.
Проблема с загрузкой/отображением 24-битных bmp-файлов загружаемых через Apache
Столкнулся с проблемой когда не возможно загрузить 24-битные bmp-файлы через Apache, именно 24-битные, 8-битные отображаются нормально.
Пробовал обновлять Apache но безрезультатно.
> CentOS release 5.6 (Final)
> Apache/2.2.22
Решение:
Использовать модуль mod_deflate.
Он архивирует на лету все файлы указанных типов.
При этом мы выигрываем в количестве трафика, так как bmp хорошо архивируется.
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE image/bmp
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>
Пробовал обновлять Apache но безрезультатно.
> CentOS release 5.6 (Final)
> Apache/2.2.22
Решение:
Использовать модуль mod_deflate.
Он архивирует на лету все файлы указанных типов.
При этом мы выигрываем в количестве трафика, так как bmp хорошо архивируется.
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE image/bmp
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>
пятница, 2 марта 2012 г.
четверг, 1 марта 2012 г.
bash - несколько приемов
# x="/foo/fizzbuzz.bar.quux"
# y=${x%.*}
# echo $y
/foo/fizzbuzz.bar
# y=${x%%.*}
# echo $y
/foo/fizzbuzz
# x="/foo/b/g/fizzbuzz.bar"
# echo ${x##*/}
fizzbuzz.bar
# y=${x%.*}
# echo $y
/foo/fizzbuzz.bar
# y=${x%%.*}
# echo $y
/foo/fizzbuzz
# x="/foo/b/g/fizzbuzz.bar"
# echo ${x##*/}
fizzbuzz.bar
Подписаться на:
Сообщения (Atom)