Déménagement de Zend Framework 2 d'apache à nginx

Je souhaite déplacer un site qui utilise Zend Framework 2 d'Apache vers Nginx. Le problème est que le site dispose de 6 modules, et apache le gère par des alias définis dans httpd-vhosts.conf,

#httpd-vhosts.conf <VirtualHost _default_:443> ServerName localhost:443 Alias /develop/cpanel "C:/webapps/develop/mil_catele_cp/public" Alias /develop/docs/tech "C:/webapps/develop/mil_catele_tech_docs/public" Alias /develop/docs "C:/webapps/develop/mil_catele_docs/public" Alias /develop/auth "C:/webapps/develop/mil_catele_auth/public" Alias /develop "C:/webapps/develop/mil_web_dicom_viewer/public" DocumentRoot "C:/webapps/mil_catele_homepage" </VirtualHost> 

dans httpd.conf DocumentRoot est défini sur C: / webapps. Les sites sont aviables à, par exemple, localhost/develop/cpanel . Le cadre gère un routing supplémentaire.

Dans Nginx, j'ai pu créer un seul site en spécifiant la root C:/webapps/develop/mil_catele_tech_docs/public; dans le bloc server. Cela fonctionne uniquement parce que le module docs ne dépend pas d'auth comme d'autres, et le site était à localhost/ .

Dans la tentative suivante:

 root C:/webapps; location /develop/auth { root C:/webapps/develop/mil_catele_auth/public; try_files $uri $uri/ /develop/mil_catele_auth/public/index.php$is_args$args; } 

Maintenant, lorsque j'entre dans localhost/develop/cpanel il est possible de corriger index.php mais ne peut pas find de ressources (css, js files). Je n'ai pas d'idée pourquoi les paths de reference dans les requêtes GET du browser ont été changés en https://localhost/css/bootstrap.css formulaire https://localhost/develop/auth/css/bootstrap.css tel qu'il était sur apache. Cette directive racine semble ne pas fonctionner.

Nginx gère php en utilisant fastCGI

 location ~ \.(php|phtml)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param APPLICATION_ENV production; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 

J'ai googlé toute la journée et je n'ai trouvé rien d'utile. Quelqu'un peut-il m'aider à faire fonctionner cette configuration comme sur Apache?

One Solution collect form web for “Déménagement de Zend Framework 2 d'apache à nginx”

Vous ne devez pas utiliser root directive root dans location blocs d' location .

Essaye ça:

 location /develop/auth { alias C:/webapps/develop/mil_catele_auth/public; try_files $uri $uri/ /index.php$is_args$args; } 

Avec cette configuration, les URL fonctionnent comme ceci:

http://example.com/develop/auth/image.png -> C:/webapps/develop/mil_catele_auth/public/image.png

Si vous utilisez la root au lieu de l' alias , vous obtiendrez:

C:/webapps/develop/mil_catele_auth/public/develop/auth/image.png place.

Et puis, pour certains files / directory non existants:

http://example.com/develop/auth/not-existing -> C:/webapps/develop/mil_catele_auth/public/index.php serait exécuté.

J'espère que cela fonctionne comme vous le souhaitez.

  • Comment puis-je réparer l'erreur Apache "client refusé par la configuration du server"?
  • Configuration du filter de réécriture Ionics sur IIS 5.1
  • Conseils pour le debugging d'Apache avec les fautes de segmentation PHP
  • Serveur Zend Framework buitl-in ubuntu 9.10
  • L'autochargeur Zend ne fonctionne pas à partir de la configuration PHP
  • La configuration nginx pour plusieurs sous-directorys contenant des files zf2 / php ne fonctionne pas
  • Qu'est-ce qu'un server approprié pour ce site?
  • Erreur fatale PHP sur Zend lors du chargement du site local vers le site en direct
  • http: // localhost ne fonctionne pas, http://127.0.0.1 fonctionne
  • Comment puis-je déployer deux applications zend frame work based dans apache2 comme celle de Tomcat
  • Comment faire en sorte que Zend 2 et Nginx fonctionnent?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.