【问题标题】:Symfony 3 / Apache - Post request gives Error 500Symfony 3 / Apache - 发布请求给出错误 500
【发布时间】:2020-04-20 18:55:47
【问题描述】:

我有一个 Symfony 3 API,我正在尝试注册用户,但在执行 POST 请求时出现错误 500(GET 请求有效)。这可能是我的 Apache 配置有问题,因为我的日志文件中没有任何错误。我函数顶部的 var_dump('ok') 也会给我错误 500。

我的 Apache 配置:

<VirtualHost *:80>
    ServerName subscription.api.local
    ServerAlias www.subscription.api.local

    DocumentRoot /var/www/subscription_backend/web
    DirectoryIndex /app.php

    <Directory /var/www/subscription_backend/web>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        FallbackResource /app.php
    </Directory>

    <Directory /var/www/subscription_backend>
        Options FollowSymlinks
    </Directory>

    <Directory /var/www/subscription_backend/web/bundles>
        FallbackResource disabled
    </Directory>

    ErrorLog /var/log/subscription-error.log
    CustomLog /var/log/subscription-access.log combined
</VirtualHost>

在我的主机文件中添加的行:

127.0.0.1 subscription.api.local www.subscription.api.local

我的项目位于~/Projects/subscription_backend 目录中,我使用/var/www/subscription_backend 的符号:

sudo ln -s  ~/Projects/subscription_backend /var/www/subscription_backend

“~/Projects/subscription_backend 目录”的权限:

“/var/www/subscription_backend 目录”的权限: lrwxrwxrwx 1 www-data www-data 55 avril 19 21:45 /var/www/subscription_backend -&gt; /home/khan/Projects/subscription_backend/

我的配置有什么问题?为什么 GET 请求有效但 POST 无效?

谢谢

【问题讨论】:

  • 你检查过服务器日志和 Symfony 的日志吗?
  • 不,我没有任何日志错误
  • 您能否将您的 Symfony 应用程序设置为“调试”模式以查看错误?
  • 我的错误是Session Storage was not able to create directory "Projects/subscription_backend/var/sessions/prod" 我试过sudo chmod -R 777 var/* 但没有用。而且,我在 var/ 下没有会话目录
  • 手动添加会话目录mkdir -p var/sessions &amp;&amp; sudo chmod 777 -R var/sessions后。现在,我有以下错误"Attempted to load class "Memcached" from the global namespace. Did you forget a "use" statement?"

标签: apache symfony


【解决方案1】:

最后,我解决了这个问题。

首先,修复权限https://symfony.com/doc/3.3/setup/file_permissions.html:

cd ~/Projects/subscription_backend

rm -rf var/cache/*
rm -rf var/logs/*
HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data [n]ginx' | grep -v root | head -1 | cut -d\  -f1)

sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
composer install

然后安装memcache扩展:

sudo apt-get install memcached
sudo apt-get install php-memcached
sudo apt-get install php-memcache
sudo service apache2 restart

清除缓存:

bin/console c:c
bin/console c:c --env=prod

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-03
    • 2020-02-19
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多