
Сергей
16.04.2018
13:54:34
Коллеги, всем добрый день. Есть API на Yii2. Там компонент, который шлёт уведомление в Telegram-чат. Уведомление шлётся через use yii\httpclient\Client;
Не могу понять, как правильно настройки прокси передать ему:
$client->createRequest()
->setMethod('GET')
->setUrl($this->getUrl())
->setData(['chat_id' => $this->chat_id, 'text' => $text, 'parse_mode' => 'html'])
->setOptions([
'proxy' => 'tcp://username:password@par1.proxy.veesecurity.com:443',
])
->send();fopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known

Павел
16.04.2018
13:55:24
А он вообще сокс прокси умеет?
Скорее всего он умеет только http прокси

Dmitriy
16.04.2018
13:56:31
умеет

Google

Rostyslav
16.04.2018
13:57:23
php_network_getaddresses: getaddrinfo — не резолвится хост

Dark
16.04.2018
13:57:25

Сергей
16.04.2018
13:58:15
Да. Всё работало не один месяц, а сегодня упало((( Перевозить всё на Digital Ocean времени нет((

Dark
16.04.2018
13:59:53

Сергей
16.04.2018
14:03:13

Евгений
16.04.2018
14:05:18

Dark
16.04.2018
14:05:19
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);


Alexander
16.04.2018
14:05:26
Коллеги, всем добрый день. Есть API на Yii2. Там компонент, который шлёт уведомление в Telegram-чат. Уведомление шлётся через use yii\httpclient\Client;
Не могу понять, как правильно настройки прокси передать ему:
$client->createRequest()
->setMethod('GET')
->setUrl($this->getUrl())
->setData(['chat_id' => $this->chat_id, 'text' => $text, 'parse_mode' => 'html'])
->setOptions([
'proxy' => 'tcp://username:password@par1.proxy.veesecurity.com:443',
])
->send();fopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known
static function sendMessage($botToken, $chatId, $message, $proxySettings)
{
$messageUrl = rawurlencode($message);
$url = "https://api.telegram.org/bot{$botToken}/sendMessage?disable_web_page_preview=true&chat_id={$chatId}&parse_mode=html&text={$messageUrl}";
$ch = curl_init();
// Прокси тут
curl_setopt($ch, CURLOPT_PROXY, $proxySettings);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_exec($ch);
}


Никита
16.04.2018
14:05:34

Евгений
16.04.2018
14:05:38
Держитесь там!

Сергей
16.04.2018
14:05:55
спасибо

Alexander
16.04.2018
14:06:10
since cURL 7.21.7, you can use CURLOPT_PROXY and specify the SOCKS protocol:
curl_setopt($ch, CURLOPT_PROXY, 'socks5://bob:marley@localhost:12345');
https://stackoverflow.com/questions/13444738/how-to-use-a-socks-5-proxy-with-curl

Сергей
16.04.2018
14:06:14

Google

Сергей
16.04.2018
14:59:07
Proxy connect ABORTED. В самом прокси проблема?

SiZE
16.04.2018
15:04:15

Евгений
16.04.2018
15:06:09

Сергей
16.04.2018
15:12:16
Взял уже платный прокси. Такая же ошибка

mrG1K
16.04.2018
15:12:46

Сергей
16.04.2018
15:13:27
curl_setopt($ch, CURLOPT_PROXY, 'sock5://username:password@ip:port');
блин. этот в России. а где можно купить не российские?

mrG1K
16.04.2018
15:16:11
подними DO
и в нем подними проксик)

Vladimir
16.04.2018
15:16:33

mrG1K
16.04.2018
15:17:06

Dark
16.04.2018
15:17:07

Сергей
16.04.2018
15:17:49

Dark
16.04.2018
15:18:43
У тебя и порт и ип и протокол и пасс с логином в одной строке
Мб поэтому. Но это не точно

mrG1K
16.04.2018
15:19:56

Сергей
16.04.2018
15:27:07
curl_setopt($ch, CURLOPT_PROXY, 'par1.proxy.veesecurity.com');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'PROXY_5AD4BBEB56BAB:df16d2507ea83d0f');
curl_setopt($ch, CURLOPT_PROXYPORT, 443);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
Failed to receive SOCKS5 connect request ack.

?
16.04.2018
15:29:38
попробуй с консоли курлом

Google

?
16.04.2018
15:29:51
что будет выдавать
без пыхи

Screamie
16.04.2018
15:55:59
Всем привет! Сорри за офтоп, но небольшой вопрос созрел. Допустим развернул git на серваке, пульнул туда сайт с репы. Теперь у меня в .git все состояния проекта. Это как-то не кошерно, тащить в прод все изменения на мастере. Есть ли вариант хранить только последний комит? А при откате коннектится к репе? Курю сейчас книгу по гиту и наткнулся на —bare флаг, но что-то мне подсказывает, что это не то.

Эмин
16.04.2018
16:04:34
запакуй все в докер, именно то что нужно

Kirill
16.04.2018
16:05:31
Нужно больше докера
обмазаться докером

Screamie
16.04.2018
16:05:48
На сервере нет докера и никогда не будет)

Максим
16.04.2018
16:05:50

Эмин
16.04.2018
16:08:03
имхо ты где то должен вытаскивать проект, собирать вендоры, завосимости, фронты и потом rsync вытягивать все за исключением того что не нужно
но все это делать надо явно не в той же директории куда смотрит nginx или апач)
и когда все готово - переключать симлинки например (хотя не самый лучший вариант и тут есть подводные камни связанные с операционкой)

Screamie
16.04.2018
16:09:32
Хммм... прям разрыв шаблона сейчас случился(

Эмин
16.04.2018
16:09:56
почему?
по твоей схеме, что ты описал, получается что пока композер будет вытягивать какой нибудь новый пакет, твой сервер будет лежать
или собирать фронт - тоже сервер будет лежать
ты сначало должен все подготовить - потом предоставить исходники для веб сервера (apache, nginx)

Mr.
16.04.2018
16:11:30
в git такое можно токо с костылями

Screamie
16.04.2018
16:12:25
Сейчас я это решаю загулшкой under-construction. Мысль тянуть только то что нужно, конечно, хороша. Но в текущем стеке на сервере без рута, не понимаю, как это реализовать

Mr.
16.04.2018
16:12:36
отличается как-бы политика двух систем: в svn репо где-то там, а в git репо везде

Google

Эмин
16.04.2018
16:12:56
при чем тут рут?

Screamie
16.04.2018
16:13:24
Никаких богоподобных сборщиков не стоит

Эмин
16.04.2018
16:13:50
а как фронт собираете?
или нету фронта?

Screamie
16.04.2018
16:14:02

Эмин
16.04.2018
16:14:29
в общем тут идея в том что вы сначало готовите все, потом перелинкуете нужную папку

Admin
ERROR: S client not available

Эмин
16.04.2018
16:14:40
особых прав для этого вам не надо
но вешать лишние заглушки - не user frendly

Screamie
16.04.2018
16:15:17
То есть никакой автоматизации? Ручками все готовить?

Mr.
16.04.2018
16:15:40
ну чё
никто не мешает sh скрипт запилить

Эмин
16.04.2018
16:15:42
а что мешает написать шел скрипт?

Mr.
16.04.2018
16:15:45
можно даже на пхп

Эмин
16.04.2018
16:15:54
там делов то фигня
перейти туда
выполнить гит пул
перейти туда
выполнить композер install

Google

Эмин
16.04.2018
16:16:20
перейти туда, убить линк, создать линк
ну и миграции там всякие и прочая херня

Screamie
16.04.2018
16:16:55
Спасибо, буду думать в эту сторону теперь.

Эмин
16.04.2018
16:16:55
при чем этот же sh скрипт может вешать заглушку ровно тогда когда нужно
например что бы закатить миграции (если конечно они у вас не обратно совместимые)

Screamie
16.04.2018
16:18:59
Не, обратной совместимости нет. С БД я как раз скриптом решаю. Накатил миграцию -> запустил скрипт он обработал и перенес данные
Ладно. Еще раз спасибо. Пойду копать примеры реализации

Эмин
16.04.2018
16:20:47
че тут копать то))) все выше же описано уже

Screamie
16.04.2018
16:22:17

?
16.04.2018
16:23:42
Нафига костелить по-сути вверху описан деплоер и копистрано

Alexey
16.04.2018
16:40:46
Че колхозите?

Like
16.04.2018
16:40:58
Тебя

Alexey
16.04.2018
16:42:16
Так и быть подскажу про zero downtime docker

Mr.
16.04.2018
16:44:44
ребята, кто гуру жиквери?
почему я делаю так

Like
16.04.2018
16:45:07

Mr.
16.04.2018
16:45:08
var form = new FormData(this);
$.ajax({
method: 'POST',
data: form
});
а оно мне говорит это
TypeError: 'append' called on an object that does not implement interface FormData

Like
16.04.2018
16:45:40

Mr.
16.04.2018
16:45:52
ну вот я хочу ajax'ом отправить форму как она есть
я помню что есть какой-то formData, которому можно передать форму, а оно само соберёт данные с формы

Wannabelinus
16.04.2018
16:47:00
$('form').serialize()