SOAP and BASE64

Потратил около часа, чтобы понять, почему при кодировании в base64 и передачи это через SOAP, получатель не может прочитать файл.

Оказалось все просто. SOAP сам упаковывает данные в BASE64 и конструкция

$imgbinary = fread(fopen($data['FormFileBuffer'], "r"), filesize($data['FormFileBuffer']));
 $base64File = base64_encode($imgbinary);

 

оказалась не нужна, достаточно сразу было отдать $imgbinary

 

Как запустить любое Android приложение через Google Chrome

Нашел тут интересный рецепт, как запустить андройн приложения на пк

 
1. Установить ARC Welder с интернет-магазина Chrome: https://chrome.google.com/webstore/detail/arc-welder/emfinbmielocnlhgmfkkmkngdoccbadn

2. Открыть установленное приложение (для этого открыть «Сервисы»: chrome://apps/ )
3. Указать приложению папку для хранения приложений.
4. Добавляем любой APK. Для этого жмём «Add your APK» и выбираем.
5. Выбираем ориентацию экрана (горизонтальную или вертикальную), размер приложения (планшет, телефон или на весь экран).
6. Приложение запущено и вы добились того, чего хотели :)

P.S. APK приложений вы можете скачать с http://4pda.ru/forum/index.php?showforum=281

 

Вот здесь можно скачать apk, вставив ссылку из маркета:

http://apps.evozi.com/apk-downloader/?id=ru.ok.android

 

 

Удалить все куки с вашего сайта

Delete all cookies of my website.

Это можно сделать через JS, или через запрос сервера.

Как выяснилось, через JS нельзя удалить все куки.

Вот скрипт на php + JS, которой удалить все куки, установленные на вашем сайте + куки всяких сторонних сервисов (гугл плюс, фейсбук и тд)

 

<?php

$past = time() - 3600;
foreach ( $_COOKIE as $key => $value )
{
setcookie( $key, $value, $past, '/' );
}

?>
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Clear </title>
</head>
<body>

<script>
function deleteAllCookies() {
var cookies = document.cookie.split(";");

for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
deleteAllCookies();
</script>

</body>
</html>


Сертификаты

С таким количеством установки сертификатов решил написать небольшую статью.

1. генерация сертификата

openssl genrsa -des3 -out serov.key 2048
openssl req -new -key serov.key -out serov.csr

запоминаем пароль, отправляем файл  serov.csr организации выпускающая сертификаты.

 

после получаем от корневого сертификата файлы. (в моем случае их 4)

корневой
промежуточный 1
промежуточный 2
сертификат домена

 

переименовываем их в

4.crt
3.crt
2.crt
1.crt

склеиваем

cat 4.crt 3.crt 2.crt 1.crt  > serov.crt

снимаем пароль с файла serov.key

openssl rsa -in serov.key -out serov.key

копируем в одну папку файлы serov.crt  serov.key

в nginx пишем путь до них

 ssl_certificate /etc/httpd/ssl/serov.crt;
 ssl_certificate_key /etc/httpd/ssl/serov.key;

между httpd и nginx сертификат не надо ставит, конечно если на одном сервера.

перезапускаем nginx

service nginx restart

проверяем дату

echo | openssl s_client -connect serov.eu:443 2>/dev/null | openssl x509 -noout -dates

Готово

PS. при склеивании сертификатов в crt, первый идет сертификат домена, потом промежуточные и в конец корневой.

 

Отправляем почту через яндекс

в продолжении http://serov.eu/?p=45

msmtp действительно помог без очень сложных махинаций настроить сервер на отправку почты через яндекс.

ставим программку

yum install msmtp

в php.ini в самом конце файла пишем

sendmail_path = msmtp -t -i

у пользователя создаем файл

nano .msmtprc

с содержанием

 

account default
logfile /home/bitrix/.msmtp.log
host smtp.yandex.ru
port 587
from noreply@server.ru
keepbcc on
auth on
user noreply@server.ru
password <password>
tls on
tls_starttls on
tls_certcheck off

ставим правильные права, без этого ругается

chmod 0600 .msmtprc

и рестартуем httpd

service httpd restart

 

проверка:

php -r "mail('you-mail@gmail.com', 'Test', 'Test');"

Генерация файлов в LINUX

Создать пустой файл на 4 гигабайта, отформатировать его  и подключить:

 

 dd if=/dev/zero of=./disk-image bs=1 count=0 seek=4G создаем файл
 mkfs -t ext3 -q disk-image форматируем
 mount disk-image /hdd8 -o loop монтируем

Создать не пустой файл, забить его рандомными данными

 

 dd if=/dev/urandom of=sample.txt bs=1G count=1

так быстрее

 

dd if=/dev/urandom of=sample.txt bs=64M count=16