Nginx nie obsługuje aplikacji interfejsu API podfolderów (php-fpm)


0

Mam następującą strukturę folderów dla mojej aplikacji, zlokalizowaną na mapie /home/valor/development/mypp.com/public_html/

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

to jest mój nginx.conf

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

        root /home/valor/development/euro-swap.com/public_html;

        index index.html;

        server_name euro-swap.com www.euro-swap.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;
        }
}

I to jest błąd, który wciąż się pojawia

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/"

Strona jest wyświetlana poprawnie. Po prostu mogę dotrzeć do zasobów interfejsu API w podfolderze. Czy możesz mi pomóc, co robię źle? Jeśli potrzebujesz dodatkowych informacji, daj mi znać, a ja ci udzielę

Dziękuję Ci

Odpowiedzi:


1

Może to być problem z uprawnieniami, prawdopodobnie spowodowany przez AppArmor. Przejrzyj tę odpowiedź, aby zobaczyć możliwe rozwiązanie. Nie chcę kraść odpowiedzi, dlatego też łączę się z nią.

EDYCJA: problem może teraz wystąpić w konfiguracji php-fpm. Otwórz /etc/php5/fpm/pool.d/www.confw swoim ulubionym edytorze i odkomentuj następujące wiersze:

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

i nie zapomnij zrestartować serwera php za pomocą:

service php5-fpm restart

teraz mam inny problem „/var/www/html/myapp.com/public_html/index.html” jest zabroniony (13: Odmowa zezwolenia), dodałem 644 premię do plików i 755 premię do folderów, mam też zmianę właściciela na www-data itp.
Valor_

zredagowałem moją odpowiedź. teraz widzimy, że można się połączyć, ale nginx / upstream otrzymuje odmowę dostępu z powodu braku praw. edycja w mojej odpowiedzi powinna go rozwiązać.
semm0
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.