我有一个Symfony 3 API,我正在尝试注册用户,但是在执行POST请求(GET请求有效)时出现错误500。我的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 -> /home/khan/Projects/subscription_backend/
我的配置有什么问题?为什么GET请求有效但POST不起作用?
Thx
答案 0 :(得分:0)
最后,我解决了这个问题。
首先,修复权限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
然后安装内存缓存扩展程序:
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