当前位置: 首页 > 知识库问答 >
问题:

Nginx不为子文件夹api应用程序(php fpm)提供服务器

景帅
2023-03-14

我有以下文件夹结构为我的应用程序

- css
- app
- js
- ...
- server (codeigniter)
  -- system
  -- application
  -- index.php
- index.html (angularJS app)

这是我的nginx.conf

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/myapp.com/public_html;

        index index.html;

        server_name myapp.com www.myapp.com;

        location / {
              index  index.html;
        }

        location /server/ {
                index /server/index.php;
                try_files $uri /server/index.php/$uri;
        }

        location /twitter/ {
                index /twitter/index.php;
                try_files $uri /twitter/index.php/$uri;
        }

        location ~ \.php {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                include fastcgi_params;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        }

        #deny access to .htaccess files, if Apache's document root
        #concurs with nginx's one
        location ~ /\.ht {
               deny all;
        }
}

这就是我一直犯的错误

2016/03/04 18:26:02 [error] 4577#0: *4 FastCGI sent in stderr: "Unable to open primary script: /home/valor/development/myapp.com/public_html/server/index.php (No such file or directory)" while reading response header from upstream, client: 127.0.0.1, server: myapp.com, request: "GET /server/api/users/isLoggedIn HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "myapp.com", referrer: "http://myapp.com/"
2016/03/04 18:26:02 [error] 4577#0: *3 FastCGI sent in stderr: "Unable to open primary script: /home/valor/development/myapp.com/public_html/server/index.php (No such file or directory)" while reading response header from upstream, client: 127.0.0.1, server: myapp.com, request: "GET /server/api/categories HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "myapp.com", referrer: "http://myapp.com/"
2016/03/04 18:26:03 [error] 4577#0: *3 FastCGI sent in stderr: "Unable to open primary script: /home/valor/development/myapp.com/public_html/server/index.php (No such file or directory)" while reading response header from upstream, client: 127.0.0.1, server: myapp.com, request: "GET /server/api/products/latest/16 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "myapp.com", referrer: "http://myapp.com/"

页面显示正确,我只是可以在子文件夹中到达api资源。你能帮我找出我做错了什么吗?如果您需要任何额外的信息,请让我知道,我会提供

非常感谢。

共有1个答案

容阳焱
2023-03-14

基于用户@semm0(链接),这可能是权限问题,可能是由AppArmor引起的。请查看此答案以查看可能的解决方案。我不想窃取答案,因此链接到它。

编辑:问题现在可能发生在php-fpm配置中。请使用您最喜欢的编辑器打开/etc/php5/fpm/pool. d/www.conf并取消对以下行的注释:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

别忘了用以下命令重新启动php服务器:

service php5-fpm restart
 类似资料:
  • 我想举个例子。com作为例子。com/sub(没有实际重定向)。我通过以下nginx配置实现了这一点: 问题是,我在sub.example.com上有一个Angular应用程序,它试图从下面的路径加载其js资源,但未能做到这一点(404未找到): 要构建,我使用以下命令: 如何解决?这是Angular的问题,还是我可以用nginx配置修复它?我试过proxy_pass但没有成功。

  • 我一直在处理将一个站点从Apache迁移到Nginx的过程,我快要失去理智了。虚拟主机不想提供静态资源(css、js等),我似乎不知道为什么。服务器块看起来像这样: 我错过了什么?我知道这是因为我对Nginx缺乏经验,但任何建议都将不胜感激。 谢谢 更新 这似乎与我以前遇到麻烦的化名有关。如果我将我的文档根指向别名位置(),并尝试呈现没有别名的静态内容,它会呈现良好的效果。一旦我在网址中输入别名.

  • 我已在单独的Weblogic域中成功配置了SAML 2.0身份提供程序 我们在另一个域的Weblogic中部署了一个ADF应用程序,该应用程序具有非SAML基于表单的身份验证(ReadOnlySQLAuthenticator用于验证凭据) 我想将第二个域配置为服务提供者(以使现有应用程序能够使用身份提供者登录)。 我做了以下工作: 配置SAML 2.0 Identity Asserter 在服务器

  • 我已经尝试了几个使用Spring Boot服务JSP页面的教程。它们都返回404页未找到错误。为了克服已知的限制,我使用了一个WAR包装,具有以下依赖关系: 我已经定义了JSP页面在应用程序中的路径。特性: 请求JSP页面时,将显示以下警告: 在Spring Boot 2中已弃用JSP吗?你有任何关于JSP的Spring Boot 2工作示例吗?

  • 我试图为Freemarker模板提供资源文件夹下面是我的bean配置 我需要将ftl保存在resources文件夹中,并给出配置的目录路径。我不知道如何进一步调试。