我目前正在使用 Nginx 和 PHP-FPM 测试 Symfony2。我也使用 Xdebug。
Symfony2 带有一个 Demo 包,我想通过在 Acme/Demo 包中创建一个语法错误来测试 Symfony 2.2.0 附带的致命错误的新处理。为什么我这样做,服务器响应是 502 bad gateway。
但是如果我在文件 app_dev.php 中出现语法错误(所以在框架被触发之前),那么 Xdebug 会告诉我致命错误。
令人惊讶的是,如果我修复了那个错字,然后在 Acme/Demo 包中重新创建语法错误,那么 Symfony 错误处理程序就会按预期出现。最后,如果修复所有错别字(页面有效),然后再次重新创建相同的错字(再次在 Acme/Bundle 中),我会得到一个错误的网关。
你有什么线索吗?
尝试使用流浪虚拟机启动并运行 Symfony2 项目。我已经看过无数关于此的文章,但事实证明,正确获得缓存目录的权限是极其痛苦的。
在我的Vagrantfile
:
config.vm.share_folder("src", "/var/www", "../www")
Run Code Online (Sandbox Code Playgroud)
我的虚拟机fstab
文件:
proc /proc proc nodev,noexec,nosuid 0 0
/dev/mapper/ubuntu--1110-root / ext4 acl,errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=4ed7eaaf-6f42-48ba-b5ed-f0c1df9add38 /boot ext2 defaults 0 2
/dev/mapper/ubuntu--1110-swap_1 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
虚拟机上已经安装了 acl 包。
当我按照 Symfony2 安装说明在 /var/www 中运行以下命令时:
sudo setfacl -R -m u:apache:rwx -m u:username:rwx app/cache app/logs
Run Code Online (Sandbox Code Playgroud)
我得到:
不支持操作
我可以在 FS(共享目录之外)的任何其他目录或文件上运行该命令,并且该命令有效。是什么赋予了?
我有一个 docker-compose 设置在我的本地机器上完美运行,用于使用 nginx、php7-fpm 和 mysql 的 symfony 项目。
我经常需要通过 composer 安装新的包,所以我只是像这样将命令传递到我的 php-fpm 容器:
docker-compose exec my-php-fpm-container composer install
Run Code Online (Sandbox Code Playgroud)
问题是以 root 身份安装所有软件包,所以我每次安装时都必须 chown。
我知道标志“--user”存在,但如果我使用它,它会出现以下错误:
错误:没有这样的服务:作曲家
有没有办法以本地机器用户身份运行 docker-compose exec 命令,以便新的 Composer 安装的文件和文件夹使用我的本地 linux 用户所有权而不是 root 创建自己?
我正在尝试在我们服务器的子目录中设置 symfony2 应用程序
网络服务器:nginx 1.1.6 + php fpm 操作系统:gentoo
我的目标是让应用程序从子目录运行
subdomain.xy.domain.tld/工具
我的 nginx 配置看起来像这样
server {
listen 80;
server_name subdomain.xy.domain.tld;
error_log /var/log/nginx/subdomain.xy.error.log info;
access_log /var/log/nginx/subdomain.xy.access.log main;
location /tool {
root /var/www/vhosts/subdomain.xy/tool/web;
index app.php;
location ~ \.php($|/) {
include fastcgi_params;
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+\.php)($|/)") {
set $script $1;
}
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/subdomain.xy/tool/web$fastcgi_script_name;
#fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_NAME $script;
fastcgi_param PATH_INFO $path_info;
} …
Run Code Online (Sandbox Code Playgroud)