LINUX.ORG.RU

90
Всего сообщений: 1704

php-fpm core dump

добавил

cat /proc/sys/kernel/core_pattern
/tmp/core.%e.%p.%t

в конфиг php-fpm.conf

rlimit_core = unlimited

ulimit -c unlimite

все перезапустил

в логах

WARNING: [pool www] child 9193 exited on signal 11 (SIGSEGV - core dumped) after 40.309703 seconds from start
NOTICE: [pool www] child 10337 started

но в /tmp/ пусто

попробовал еще добавить в /etc/sysctl.conf

kernel.core_pattern = /tmp/core.%e.%p.%h.%t
fs.suid_dumpable = 1
kernel.core_uses_pid = 1

в /etc/security/limits.conf

*       -       core    unlimited
root    -       core    unlimited

попробовал через тестовый файл сделать core файл, все создается в /tmp, но от php-fpm нет coredump, почему он не создается?

 , ,

Garcia ()

PHP - реализация отложенных задач

Доброго времени суток. Есть следующая задача, попробую описать максимально абстрактно - есть некий клиент, который шлет компаниям запрос. Каждая компания должна получить уведомление об этом запросе. Уведомление запись в БД с привязкой к конкретной компании. Пока количество компаний небольшое, то проблем нет. Но если уведомление должны получить 100+ компаний(нужно создать 100+ записей в БД), то такая логика сильно тормозит страницу. Решил вынести всю эту работу на сервер. Нужные работы будут хранится в базе в формате |Class|Method|Params|Status|Date_create

Логика такая - вызываем метода класса и передаем ему массив params. Скрипт, который вызывается по крону выбирает наиболее старые задачи, у которых статус завершения отсутствует и начинает выполнять. Если метод возвращает true, то ставим статус успешный

Задумался о том, где хранить эти задачи. В той же Mysql базе, что и сам сайт? В файлах? Или может в каком-нибудь Nosql хранилище? Есть ли смысл заморачиваться, или просто хранить в обычной таблице и не мучаться? Буду очень благодарен за советы.

 ,

gwyllum ()

Статистика/отчеты для LogAnalyzer

Есть такая поделка - LogAnalyzer. Для небольших логов - отличная вещь!

Что хорошо:

  1. есть встроенный конфигуратор
  2. понимает и файлы логов и базу данных (через php PDO)
  3. есть пользователи и группы

НО!

  1. встроенный конфигуратор работает только если конфиг лежит в БД и тип БД только mysql @#$%^&* !!!

    и только через php/mysqli

    Ради жалких 5Кб конфига тащить целый mysql! Там sqlite хватает за глаза! На крайний случай можно через serialize конфиг сохранять.

  2. Если логи беруться из файла, то оно понимает время с таймзоной, но тупо игнорирует его. Логи приходящие в UTC оочень трудно читать.
  3. туговато с документацией

Нет ли для LogAnalyzer дополнительных модулей статистики ?

Хочется в логах поискать слова по рег.выражению и вывести найденные слова с их число повторения в виде списока ссылок.

 , ,

vel ()

Debian GURU - Ищу удаленную или разовую\проектную работу

20 лет жизни с linux системами (в основном debian) в качестве администратора-решателя проблем, в том числе таких с которыми другие не справились, со всеми вытекающими следствиями.

Большой опыт очень глубокого тюнинга вплоть до правки исходников всего зоопарка от обычных nginx, mysql, php, memcached, apcu, postgresql, exim, nfs, ldap, iptables и тд и тп до совсем нетривиальных решений. Бекап, безопасность, сети и прочее... автоматизация всего этого, написание скриптов, разворачивание проектов от банковских систем до примитивных cms типа wordpress.

Множество вариантов сотрудничества

Удаленная работа от 50000р месяц контракт не менее 6 месяцев, для периодов короче ставка выше. Минимальная цена за стабильно работающую инфраструктуру требующую лишь реакции на сообщения от мониторинга без взаимодействия с планктоном, не провайдеры, хостинги и тп с потоком запросов от клиентов.

Замена штатного сотрудник по договору, на время болезни, отпуска, поиска по вакансии... на срок не менее месяца от 2*ЗП сотрудника при удалёнке, и 3.5*ЗП сотрудника + оплата перелетов\проживания при работе в вашем офисе. Выполнение всех обязанностей штатного сотрудника не более 2-3 месяцев.

Абонентское сопровождение 1 вашего сервера - от 5000р, 3-5 серверов от 10000р - минимальный срок оплаты пол-года, в обслуживание входит бесплатное решение проблем из примеров разовой работы.

Разовая работа от 5000р

Примеры:

1. Перенести сайт с древнего апача вечно показывающий 500 ошибку посетителям, от хостера с php5.2, на vps с современными версиями php7.2-fpm, nginx сделать мелкие правки кода, что бы это все взлетело - 5000р

2. Сделать время ответа меньше 200мс - тюнинг nginx, php-fpm, memcached или другое кеширование, тюнинг субд, тюниг cms - 5000р

3. Перенести сайта с http на https - установка сертификата, перенаправлений и тп - 2000р

4. Решение проблемы - все сломалось ничего не работает, хотя еще вчера работало - от 5000р за выяснение причин + дальнейшая оплата по прейскуранту настройки сервера.

5. Решение проблемы все сломалось и уже несколько дней никто не может помочь исправить проблему - от 15000 за локализацию причин + дальнейшая оплата по прейскуранту настройки сервера.

Проектная работа от 20000р заказ на 2-3 дня работы, от 35000 за рабочую неделю.

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

Если вы прочитали и вам показалось, что я демпингую, то это не так - цена в каждом конкретном случае всегда будет соответствовать рынку, а вот сделать я могу то что не могут 99% админов на рынке...

Обращаться по почте linux-guru@site.tm

 , , , ,

serg1982 ()

Странные вещи в MySQL - стали обнуляться поля created_at и updated_at в Laravel 5.5

Наблюдаю сейчас неожиданную вещь. В базе данных в разных таблицах некоторые записи получают значения NULL в полях created_at и updated_at. Закономерность понять пока не смог.

Чаще всего обнулены оба поля:

http://i.piccy.info/i9/ad763b5e450b658e4547b5414b156191/1557687406/114867/131...

Но бывает, что только одно:

http://i.piccy.info/i9/4d87d0c404978c4d7fd0918491ddf9df/1557687435/30642/1314...

Это стандартные поля, они должны обрабатываться автоматически. Я их специально не настраиваю, в базу они добавляются просто благодаря стандартной команде timestamps() в миграции:

Schema::create('my_table', function (Blueprint $table) {
  $table->increments('id');
  $table->timestamps();
...


Вроде до какого-то момента, эти поля всегда заполнялись четко. Но сейчас заметил, что они обнуляются. Понять причину не могу.

Это происходит на двух хостах - и на машине разработчика, и на тестовом сервере. Базы данных, естественно, разные.

В чем может быть проблема?

 , , , ,

Xintrea ()

А кто сейчас пишет программы?

На первом месте китайцы, потом индусы, потом америкосы, потом евросоюз, африка...
А наши на каком месте?

 , , , ,

quantum_cat ()

Глобальные переменные PHP 5.4.16

Переползаю с Федоры на Centos 7,есть скриптик PHP. Который отказывается работать в браузере с апачем, я думаю, что дело в глобальных переменных, был PHP 5.3.20 стало PHP 5.4.16, в php.ini не нашел register_globals=on гуглил, но ничего толкового не нашел, понял только, что от этого отказались, из соображений безопасности, выхода я так и ненагуглил. Я не большой спец в PHP (даже совсем не спец) нашел где то подходяший мне пример и доработал напильником под себя, много лет назад скрипт долго служил мне и вот перестал работать сдругой версией PHP. Кто нибуть с гуру PHP может мне дать пинка в нужном направлении, что мне сделать, чтоб скрипт заработал? Беру парочку переменных, с поля ввода и выпадающего списка, жму на пимпу показать и ничего не происходит, включил чтоб показывало эти переменные, в адресной строке, они есть, но отчетик не формируется, если же я жестко определяю переменные в коде, то отчетик работает, но не лазить же каждый раз в код, некузяво как то. Извините если сумбурно и непонятно.

Безопасность мне по колено, апач локальный наружу не высунут, только для моих нужд

 ,

alex_sim ()

Почему пустая строка превращается в null в $request->input() в Laravel?

В контроллер поступают следующие данные:

POST Data
- channelTypeId «2»
- notifyChannelValue «»
- addButton «»

А вот код контроллера:

public function addChannelApply(Request $request) {
  $channelTypeId = $request->input('channelTypeId'); // Тут получается нормальное значение
  $channelValue = $request->input('notifyChannelValue'); // А тут null
    
  return dd($channelValue);
}


И этот контроллер выдает в браузер null.

Пытался задать вторым параметром input() значение по-умолчанию '12345'. Но оно не возвращается, видимо потому что POST-переменная таки существует, а значение по-умолчанию должно подставляется если переменной нет. То есть dd() все равно пишет null.

В то же время, метод input() должен возвращать null, если переменной нет. И, похоже, input() это и делает - он возвращает null.

В общем, я не могу понять, как получить значение POST-переменной notifyChannelValue в явном виде, то есть пустую строку?

 , , ,

Xintrea ()

Исключения и Laravel - не пойму

Не пойму, почему не работают исключения.

Пишу такой код:

try {
    $phone=UserChannels::where('user', Auth::user()->id)->where('channel_type', $phoneTypeId)->first()->value;
} catch (Exception $e) { 
    $phone='';
}


По идее, при любой ошибке он должен просто сделать $phone=".

Но вместо этого Laravel показывает ошибку на длинной строке:

ErrorException (E_NOTICE)
Trying to get property of non-object


Вопрос: почему Laravel ловит исключение, а не блок catch{} ?

 , , , ,

Xintrea ()

Загрузка файлов в Apache

Здравствуйте. Имею: 1. Ubuntu 18.04 2. LAMP (Apache2.4, php7.2, mysql) 3. Исходный код сайта, взятый с хостинга. На хостинге все работает нормально.

Есть форма загрузки фотографий. Выбираю две фотографии, нажимаю кнопку Submit. Попадаю в контроллер, обрабатывающий идущие с формы данные. Вывожу на экран массив $_FILES. Вижу следующее: Код (Text):

Array ( [photo_src] => Array ( [name] => Array ( [0] => DSC_6863.JPG [1] => DSC_6864.JPG ) [type] => Array ( [0] => [1] => ) [tmp_name] => Array ( [0] => [1] => ) [error] => Array ( [0] => 1 [1] => 1 ) [size] => Array ( [0] => 0 [1] => 0 ) ) )

На этом обработка завершается, т.к. не созданы временные файлы. Полагаю, это связано с тем, что у Apache нет прав на запись во временную директорию. Если это так, то подскажите, в какую директорию они должны записываться? Если же я не прав, то подскажите, какая может быть причина, и как ее побороть

 ,

gpi65 ()

Laravel генерирует ошибку при обработке AJAX-запроса

Laravel 5.5

Пытаюсь запустить тестовый пример вот отсюда:

https://webformyself.com/laravel-ajax/

Но он не работает.

В логе веб-сервера вижу, что POST-запрос приходит. В браузере вижу, что Laravel попыталась обработать AJAX-запрос, но не смогла. Ответное сообщение приходит, но не с маленьким JSON-ответом, а с портянкой ошибки.

Судя по портянке, до контроллера выполнение не доходит, потому что нет никакого упоминания про AjaxController.php. То есть, что-то происходит в глубинах Laravel, но я не могу понять что.

Вопрос: как заставить работать этот пример?

Код ответного сообщения:

{
    "message": "",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
    "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 203,
    "trace": [
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 175,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/app/Exceptions/Handler.php",
            "line": 51,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 83,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 55,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php",
            "line": 49,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\View\\Middleware\\ShareErrorsFromSession",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php",
            "line": 63,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\Session\\Middleware\\StartSession",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php",
            "line": 37,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php",
            "line": 66,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\Cookie\\Middleware\\EncryptCookies",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 102,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 660,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 635,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 601,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 590,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 176,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 30,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/fideloper/proxy/src/TrustProxies.php",
            "line": 56,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 30,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 30,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
            "line": 46,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 149,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 53,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 102,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 151,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 116,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/media/wd_640_part_2/home64bit/xi/work/develop/php/tukituk/site/public/index.php",
            "line": 55,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        }
    ]
}

 , ,

Xintrea ()

Как ориентироваться в документации на Laravel API?

Использую Laravel 5.5

Мне надо посмотреть, например, что возвращает метод Модели create().

Саму модель я наследую от Illuminate\Database\Eloquent\Model, значит лезу в документацию вот сюда:

https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Model.html

И метода create() я там не нахожу.

Вопрос: где искать описание этого метода?

 , ,

Xintrea ()

Страница не такая, как в туториале PHP с Apache2

Вобщем, решил я сделать систему регистрации новых пользователей через web-интерфейс, использовал этот гайд https://www.tutorialrepublic.com/php-tutorial/php-mysql-login-system.php. Получается страница с лишними символами - частью кода PHP. Должно получится так https://www.tutorialrepublic.com/lib/images/php-login-form.png , а получается так https://yadi.sk/i/fGu7voX5wJIZIA . Что делать? Если что, весь код в первой ссылке и сейчас я зашел на login.php

 ,

Caesium137 ()

API одноклассников, не могу загрузить видео

Все разрешения есть, токены правильные. Успешно вызываю video.getUploadUrl, гружу видео на upload_url как POST форму через curl, где видос в поле file. Форма успешно отправляется, но вот video.update говорит что ошибка 10 (error.movie.permissionDenied). Предполагаю, что поле должно называться иначе, или надо передать ещё какие-то параметры при отгрузке видео. В документации нифига нет, в гугле тоже, ТП молчит (хотя просьбы выдать права обрабатывали быстро). Пробовал PUT запрос, он не уходит. Как быть?

 , ,

InterVi ()

Поясните пожалуйста, как вы готовите PHP окружение для разработки?

Немного не догоняю? Как вы готовите PHP окружение для разработки? Я допустим привык в python сделать так:

mkdir ~/Documents/Projects/<название проекта>
python3 -m venv ~/.local/share/venvs/<название окружения>
. ~/.local/share/venvs/<название окружения>/bin/activate

В PHP есть ли какие-нибудь более разумные телодвижения чтобы подготовить проект и при этом всё было изолировано от повышенных прав в системе? Я конечно искал другие способы, понял что некоторые используют vagrant в качестве рабочей мастерской. Vagrant не подошел, очень много придется качать, а у меня инет не такой быстрый. XAMPP тоже пробовал, но там нужно обязательно установить с повышенными правами в /opt/xampp. Или я че-то не понимаю как вообще в PHP людят кодят? Открываете проект в редакторе/ide с повышенными правами что ли, или чё то не догоняю? Обьясните пожалуйста?

 , ,

dimcoin ()

JS setInterval, зависает страница

Всем привет. Требуется сделать обновляемый, каждую секунду, блок на странице, блок заполняется php-скриптом, нашел варик с JS

	$(document).ready(function(){
		setInterval(function(){
		$("#div_class").load('script.php')
		}, 1000);
	});
и все как бэ гуд, но со временем страница зависает, потому как стакаются запросы xhr, когда их становится более 1000 страница перестает отвечать. Как можно пофиксить такое поведение?

 ,

Sherman ()

Mysql цепочка

Здравствуйте. Есть таблица

id, to_cid, to_uid, from_cid, from_uid
1, 5750, 1, 4146, 2
2, 4146, 2, 5748, 3
3, 5745, 5, 5749, 1
4, 4140, 3, 4141, 4

Как по to_uid и from_uid (например 1), чтоб получилась такая цепочка вложенностью до 5ти (включительно)

chains
(5750, 4146, 5748) - в этом примере тут вложенность 3
(5749, 5745) - в этом примере тут вложенность 2

Для uid 2 должно получиться

chains
(4146, 5748, 5750)
(5745, 5749)

Для uid 3 должно получиться

chains
(4140, 4141)
(5748, 4146, 5750)

Для uid 4 должно получиться

chains
(4141, 4140)

Как только не пробовала, всё время то дубли, то не все выбирается, то ещё чтото

 , ,

jessgt ()

PHP-разработчик Junior/Middle, в Томск

Orion Alliance B.V., международная аутсорсинговая IT-компания, приглашает специалистов на позицию PHP-разработчик Junior/Middle, в Томский офис компании. Предоставляем услуги разработки ПО и технической поддержки клиентов в банковском и финансовом секторах.

Обязанности: Поддерживать существующие проекты; Разрабатывать новые продукты; Расти профессионально.

Требования: Способны самостоятельно принимать решения, искать нужную информацию, анализировать, и воплощать идеи в коде; Владеете PHP; Имеете опыт работы с frontend фреймворками; Опыт работы со сторонними API; Широкий IT-кругозор и желание развиваться.

Условия: Конкурентная и достойная заработная плата, от 60000 рублей; График работы с понедельника по пятницу; Работа в современном комфортабельном офисе, в центре города; Каждому сотруднику мы предоставляем ресурсы для профессионального и личностного роста; Возможность работать сверхурочно, за дополнительную плату по часам.

Ключевые навыки PHP JavaScript MySQL jQuery HTML5 CSS3 Ajax yii2

Резюме отправлять на почту: hr@orion-alliance.com

 , , ,

AndreyKha ()

Xdebug не слушает порт

Стоит php-fpm + xdebug + nginx на Ubuntu 18.04 из репы ondrej sury.

root@antoshka117:~# apt-cache show php-xdebug
Package: php-xdebug
Source: xdebug
Priority: optional
Section: php
Installed-Size: 7759
Maintainer: Debian PHP PECL Maintainers <team+php-pecl@tracker.debian.org>
Architecture: amd64
Version: 2.7.0+2.5.5-1+ubuntu18.04.1+deb.sury.org+1
root@antoshka117:~# tail /etc/php/7.3/fpm/php.ini
; tab-width: 4
; End:
zend_extension = /usr/lib/php/20180731/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.112.1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.remote_connect_back=0
xdebug.remote_log=/var/log/xdebug.log
phpinfo() выдаёт
xdebug.remote_autostart	On	On
xdebug.remote_connect_back	Off	Off
xdebug.remote_cookie_expire_time	3600	3600
xdebug.remote_enable	On	On
xdebug.remote_handler	dbgp	dbgp
xdebug.remote_host	192.168.112.1	192.168.112.1
xdebug.remote_log	/var/log/xdebug.log	/var/log/xdebug.log
xdebug.remote_mode	req	req
xdebug.remote_port	9000	9000
Но, xdebug не слушает 9000 порт и в логи ничего не пишется. ЧЯДНТ?

 , , ,

antoshka117 ()

Отправка писем из Laravel с помощью SMTP через yandex.ru

Для теста настроил в системе программу ssmtp, чтобы проверить как будет уходить почта через почтовый сервер yandex.ru. Настройки следующие:

root=***@yandex.ru
mailhub=smtp.yandex.ru:465
rewriteDomain=yandex.ru
hostname=yandex.ru
AuthUser=***
AuthPass=***
UseTLS=YES


И с этими настройками почта отправляется.

Теперь пробую использовать такие же настройки в Laravel. В файле .env прописано:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.yandex.ru
MAIL_PORT=465
MAIL_USERNAME=***
MAIL_PASSWORD=***
MAIL_ENCRYPTION=tls


Однако, при отправке почты происходит ошибка:

Swift_TransportException
Connection to tcp://smtp.yandex.ru:465 Timed Out


Я пробовал другие комбинации порта и шифрования, но они тоже не работают:

465, ssl:
Swift_TransportException (553)
Expected response code 250 but got code "553", with message "553 5.7.1 Sender address rejected: not owned by auth user. "

587, ssl:
Swift_TransportException
Connection could not be established with host smtp.yandex.ru [ #0]

587, tls:
Swift_TransportException (553)
Expected response code 250 but got code "553", with message "553 5.7.1 Sender address rejected: not owned by auth user. "


Вопрос. Как заставить работать почту в Laravel через smtp?


UPD: Еще я пробовал поставить такую настройку:

MAIL_DRIVER=mail


Все остальные значения MAIL_* приравнял null. Сделал я это
в надежде, что стработает PHP-шная функция mail(), которая у меня работает с помощью настроенного ssmtp. Например, такой код работает:

<?php 
mail("sample@gmail.com", "Отправка через SSMTP агента", "Это проверка отправки"); 
?>


Но после этой настройки и сброса кеша настроек:

$ ./artisan config:cache
Configuration cache cleared!
Configuration cached successfully!


Попытка отправки почты завершается ошибкой:

Swift_TransportException
Expected response code 220 but got an empty response

 , , , ,

Xintrea ()