POST https://kayaindia.in/kaya/sendNotificationB.php 500(内部服务器错误)

时间:2019-04-26 06:39:37

标签: php linux amazon-ec2 gmp

我正在创建一个PWA应用程序,并且可以正常工作,但是当我尝试在服务器上上传时,出现了错误。在Windows本地服务器上,即使是通知,一切都很好,而且我不知道很多腻子/ Linux命令。

检查here我的phpinfo文件。

我想上传到Amazon ec2服务器。我安装了apache,php,ssl和其他必需的东西。及其工作文件(除通知外)。

当我调用通知文件时,我收到503响应。我安装了作曲家,安装了所有东西。我使用了this github库。

据我了解,我卡住了gmp扩展名,当我打开phpinfo()时,我没有看到那边的gmp。我使用sudo yum install php-gmp安装了gmp,并且在php.d中看到一个名为20-gmp.ini的文件,其中包含extension=gmp。还使用sudo apachectl stopsudo apachectl start重新启动了Apache服务器。

但是仍然出现错误。我很高兴在phpinfo()中看到gmp。

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:我也尝试在php.ini的{​​{1}}中添加gmp扩展名,但仍未添加。

我认为我在/etc/php.ini上遇到了错误

2 个答案:

答案 0 :(得分:0)

我知道我在评论自己的问题,当我搜索此答案3-4天时,我认为我应该与所有人分享此信息。

问题是,在Linux中,PHP具有不同的配置文件。主要配置文件是php.ini。加载此文件并覆盖邮件文件后,它还包括其他扩展名。这些附加配置位于C中(在我的情况下,这通常是常见的)。

所以仅仅重启apache服务器还不够。我们还需要重新启动php-fpm。

要重新启动php-fpm,请执行以下操作:D 然后重新启动apache:[A-D]

您可以查看更多here

答案 1 :(得分:0)

要在php.ini中应用更改,您需要重新启动apache服务器并重新启动php。

sudo service php-fpm restart
sudo apachectn restart

有时还需要一些时间才能将更改应用于服务器。