POST https://kayaindia.in/kaya/sendNotificationB.php 500(内部服务器错误)
POST https://kayaindia.in/kaya/sendNotificationB.php 500 (Internal Server Error)
我正在创建一个 PWA 应用程序并且它工作正常,但是当我尝试在服务器上上传时我遇到了错误。在 windows 本地服务器上,一切都很好,甚至是通知,我不太了解 putty/linux 命令。
检查 here 我的 php 信息文件。
我正在尝试上传到 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 stop
、sudo 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:我还尝试在 /etc/php.ini
中的 php.ini
中添加 gmp 扩展名,但仍然没有添加。
我想我在 $subscription = Subscription::create(json_decode(file_get_contents('php://input'), true));
上遇到了错误
我知道我在评论我自己的问题,因为我花了 3-4 天时间搜索这个答案,我想我应该与大家分享这个信息。
问题是,在linux、PHP中有不同的配置文件。主要配置文件是php.ini。它在加载此文件后包含其他扩展名并覆盖邮件文件。这些附加配置位于 /etc/php.d/
中(在我的例子中,这对大多数人来说很常见)。
所以仅仅重启apache服务器是不够的。我们还需要重启 php-fpm.
重启php-fpm:sudo service php-fpm restart
然后重启apache:sudo apachectn restart
您可以查看更多
要在 php.ini 中应用更改,您需要重新启动 apache 服务器并重新启动 php。
sudo service php-fpm restart
sudo apachectn restart
有时将更改应用到服务器也需要时间。
我正在创建一个 PWA 应用程序并且它工作正常,但是当我尝试在服务器上上传时我遇到了错误。在 windows 本地服务器上,一切都很好,甚至是通知,我不太了解 putty/linux 命令。
检查 here 我的 php 信息文件。
我正在尝试上传到 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 stop
、sudo apachectl start
.
但我仍然遇到错误。我在 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:我还尝试在 /etc/php.ini
中的 php.ini
中添加 gmp 扩展名,但仍然没有添加。
我想我在 $subscription = Subscription::create(json_decode(file_get_contents('php://input'), true));
我知道我在评论我自己的问题,因为我花了 3-4 天时间搜索这个答案,我想我应该与大家分享这个信息。
问题是,在linux、PHP中有不同的配置文件。主要配置文件是php.ini。它在加载此文件后包含其他扩展名并覆盖邮件文件。这些附加配置位于 /etc/php.d/
中(在我的例子中,这对大多数人来说很常见)。
所以仅仅重启apache服务器是不够的。我们还需要重启 php-fpm.
重启php-fpm:sudo service php-fpm restart
然后重启apache:sudo apachectn restart
您可以查看更多
要在 php.ini 中应用更改,您需要重新启动 apache 服务器并重新启动 php。
sudo service php-fpm restart
sudo apachectn restart
有时将更改应用到服务器也需要时间。