Почему мой бот для капчи работает локально, но не работает на героку?

Я добавил капчу-бота в свою регистрационную форму.

Мой бот с капчей отлично работает в локальном режиме (в режимах dev и prod), но когда я развернул код в Heroku, страница / register больше не работает. Я получаю такую ​​ошибку:

ОШИБКА: для BotDetect требуется библиотека GD и ее вспомогательная библиотека: libpng, libjpeg и FreeType 2. Вы можете узнать больше об их установке / включении на http://php.net/manual/en/book.image.php.

Вы можете увидеть ошибку здесь: ссылка на веб-сайт

Я не думаю, что проблема в моем коде, но вот он: Код Controlleur:

/**
 * @Route("/register", name="user_register", methods={"GET","POST"})
 */
public function register(Request $request,UserPasswordEncoderInterface $encoder): Response
{
    $user = new User();
    $form = $this->createForm(RegisterType::class, $user, ['validation_groups' => ['register'], ]);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {

        $hash = $encoder->encodePassword($user,$user->getPassword());
        $user->setPassword($hash);

        $this->addFlash('success', 'You succesfully registered, Now Login!');

        $entityManager = $this->getDoctrine()->getManager();
        $entityManager->persist($user);
        $entityManager->flush();
        

        return $this->redirectToRoute('user_login');
}
    return $this->render('authentication/register.html.twig', [
        'user' => $user,
        'form' => $form->createView(),
    ]);
}

Моя форма:

class RegisterType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username')
            ->add('password',PasswordType::class)
            ->add('password2',PasswordType::class)
            ->add('email')
            ->add('name')
            ->add('captchaCode', CaptchaType::class, [
                'captchaConfig' => 'ExampleCaptchaUserRegistration',
                'constraints' => [
                    new ValidCaptcha([
                        'message' => 'Invalid captcha, please try again',
                    ]),
                ],]);
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => User::class,
        ]);
    }
}

CaptchaCode на User.php

/**
 * @CaptchaAssert\ValidCaptcha(
 *     message = "Invalid captcha, please try again",
 *     groups={"register"}
 * )
 */

protected $captchaCode;

public function getCaptchaCode()
{
  return $this->captchaCode;
}

public function setCaptchaCode($captchaCode)
{
  $this->captchaCode = $captchaCode;
}

Ошибка журнала Heroku:

2020-09-17T10: 30: 04.377111 + 00: 00 heroku [router]: at = info method = GET path = / register host = bazar-chic.herokuapp.com request_id = 30e115f0-023b-4f59-a0b6-34777e9086ca fwd = 94.23.206.14 dyno = web.1 connect = 1ms service = 15ms status = 500 байт = 1288 протокол = https 2020-09-17T10: 30: 04.375520 + 00: 00 app [web.1]: 10.63.54.150 - - [17 / Сентябрь / 2020: 10: 30: 04 +0000] GET / register HTTP / 1.1 500 918 https://bazar-chic.herokuapp.com/register WordPress / 5.5.1; https://symfonyquestions.com 2020-09-17T10: 30: 04.806894 + 00: 00 heroku [router]: at = info method = HEAD path = / register host = bazar-chic.herokuapp.com request_id = 2d342c4d-5356-47aa-9517-017a83dd5cbc fwd = 94.23.206.14 dyno = web.1 connect = 0ms service = 16ms status = 500 байт = 330 protocol = https 2020-09-17T10: 30: 04.807744 + 00: 00 app [web.1]: 10.102.182.112 - - [17 / сен / 2020: 10: 30: 04 +0000] HEAD / register HTTP / 1.1 500 - https://bazar-chic.herokuapp.com/register WordPress / 5.5.1; https://symfonyquestions.com


person Meh Di    schedule 17.09.2020    source источник
comment
По ошибке расширение gd недоступно. Как видно из поддержки heroku, ее можно включить добавив "ext-gd": "*", в раздел require файла composer.json.   -  person msg    schedule 17.09.2020
comment
@msg Я сделал это, но теперь я получаю страницу с ошибкой 500 кода. Проблема: я не могу запустить проект в режиме разработки внутри Heroku, чтобы найти ошибку :(   -  person Meh Di    schedule 17.09.2020
comment
Затем вам нужно пойти и проверить, что написано в журнале ошибок, чтобы выяснить, каковы были причины.   -  person CBroe    schedule 17.09.2020
comment
@CBroe Он говорит, что сборка прошла успешно, и я не вижу ошибок в журналах Heroku ..   -  person Meh Di    schedule 17.09.2020
comment
Вы проверили правильное место (а)? stackoverflow.com/a/46021507/1427878   -  person CBroe    schedule 17.09.2020
comment
@CBroe Ой! Теперь я запускаю heroku logs -t и вижу ошибку 500 в cmd. Я отредактировал свой вопрос и добавил ошибку логов.   -  person Meh Di    schedule 17.09.2020


Ответы (1)


попробуйте с ngrok в localhost. https://ngrok.com/

person Jonathan KABLAN    schedule 18.09.2020