POST https://kayaindia.in/kaya/sendNotificationB.php 500 (внутренняя ошибка сервера) - PullRequest
0 голосов
/ 26 апреля 2019

Я создаю приложение PWA и оно работает нормально, но при попытке загрузить на сервер я застрял на ошибке. На локальном сервере Windows все нормально, даже уведомления, и я не знаю много команд putty / linux.

отметьте здесь мой файл phpinfo.

Я пытаюсь загрузить на сервер amazon ec2. Я установил apache, php, ssl и другие необходимые вещи. И его рабочий файл, кроме уведомлений.

Когда я звоню в свой файл уведомлений, я получаю 503 ответ. Я установил композитор, установил все. Я использовал эту библиотеку github.

Как я понял, я застрял на расширении gmp. Когда я открывал phpinfo (), я не увидел там gmp. Я установил gmp, используя sudo yum install php-gmp, а также я вижу файл в php.d с именем 20-gmp.ini, и он включает extension=gmp. Также перезапустил сервер Apache, используя sudo apachectl stop, sudo apachectl start.

Но все равно я получаю ошибку. И я не вижу gmp в phpinfo ().

notificationb.php

<?php
require __DIR__ . '/vendor/autoload.php';
use Minishlink\WebPush\WebPush;
use Minishlink\WebPush\Subscription;

$subscription = Subscription::create(json_decode(file_get_contents('php://input'), true));

print_r($subscription);

$auth = array(
    'VAPID' => array(
        'subject' => 'https://github.com/Minishlink/web-push-php-example/',
        'publicKey' => file_get_contents(__DIR__ . '/scripts/keys/public_key.txt'), // don't forget that your public key also lives in app.js
        'privateKey' => file_get_contents(__DIR__ . '/scripts/keys/private_key.txt'), // in the real world, this would be in a secret file
    ),
);

$webPush = new WebPush($auth);

$res = $webPush->sendNotification(
    $subscription,
    "Welcome to Kaya. You can book Appointments and many more."
);

foreach ($webPush->flush() as $report) {
    $endpoint = $report->getRequest()->getUri()->__toString();

    if ($report->isSuccess()) {
        echo "[v] Message sent successfully for subscription {$endpoint}.";
    } else {
        echo "[x] Message failed to sent for subscription {$endpoint}: {$report->getReason()}";
    }
}

?>

Если вам что-то понадобится, дайте мне знать в команде. Я буду обновлять здесь.

Редактировать 1: Также я пытался добавить расширение gmp в php.ini в /etc/php.ini, но все еще не добавлено.

Мне кажется, я получаю сообщение об ошибке $subscription = Subscription::create(json_decode(file_get_contents('php://input'), true));

Ответы [ 2 ]

0 голосов
/ 16 июля 2019

Чтобы применить изменения в php.ini, вам нужно перезапустить сервер apache, а также перезапустить php.

sudo service php-fpm restart
sudo apachectn restart

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

0 голосов
/ 27 апреля 2019

Я знаю, что комментирую свой собственный вопрос. Поскольку я искал этот ответ в течение 3-4 дней, я думаю, что должен поделиться этой информацией со всеми.

Проблема в том, что в Linux у PHP разные конфигурационные файлы. Основной файл конфигурации - php.ini. И это включает в себя другие расширения после загрузки этого файла и переопределить почтовый файл. Эти дополнительные настройки находятся в /etc/php.d/ (в моем случае это обычно для большинства).

Так что просто перезапустить сервер Apache недостаточно. Нам также нужно перезапустить php-fpm.

Для перезапуска php-fpm: sudo service php-fpm restart А затем перезапустите apache: sudo apachectn restart

Вы можете проверить больше здесь

...