关于Symfony2+nginx搭建过程总结
来源:互联网 发布:越女读财 知乎 编辑:程序博客网 时间:2024/05/16 19:09
最近在试着用nginx+symfony搭建公司的网站,由于nginx不支持pathinfo模式,所以必须修改nginx(我使用的是nginx1.5.1)的配置文件/etc/nginx/config.d/default.conf以使其在逻辑上支持url逻辑路径到物理路径的映射,以下为我的default.conf文件内容:
1 server { 2 listen 80; 3 server_name localhost; 4 location / { 5 root /usr/share/nginx/html/symfony/web; 6 index index.html index.htm index.php; 7 } 8 location ~ ^(.+\.php)(.*)$ { 9 root /usr/share/nginx/html/symfony/web; 10 fastcgi_index index.php; 11 fastcgi_split_path_info ^(.+\.php)(.*)$; 12 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 13 fastcgi_param PATH_INFO $fastcgi_path_info; 14 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 15 fastcgi_pass 127.0.0.1:9000; 16 include fastcgi_params;17 }
18}
实现url的逻辑映射后,就可以在网页中看到实际效果了(注意图中被圈部分):
但是,如果在prod模式下(即访问192.168.10.133/app.php/下的路径)时,提示出错“no route for get / ",这并不是我们的pathinfo配置出了问题(刚开始从这个方面着手,费老劲了),而是因为symfony2并没有为我们提供prod模式下的内容,我们需要修改symfony/app/routing.yml文件自己给他提供一个逻辑路径映射,如下为我从routing_dev.xml文件中拷过来的一个配置项:
1 # AcmeDemoBundle routes (to be removed)2 _acme_demo:3 resource: "@AcmeDemoBundle/Resources/config/routing.yml"
这样symfony就会在prod模式下就可以通过url逻辑映射得到src/Acme/DemoBundle/Resources/config/routing.yml文件(其内容如下所示),通过这个文件就可以找到@AcmeDemoBundle/Controller/DemoController.php文件从而显示出如上图所显示的效果了
1 _demo:2 resource: "@AcmeDemoBundle/Controller/DemoController.php"3 type: annotation4 prefix: /demo
但是,实际访问http://192.168.10.133/app.php/demo/hello/bean时,并没有显示出期望的效果,这时候又报了一个错误:
Cannot import resource "/usr/share/nginx/html/symfony/src/Acme/DemoBundle/Resources/config/config.yml" from "/usr/share/nginx/html/s
ymfony/app/config/config.yml".
网上搜了下,stackoverflow上给的答案大部分是让你在resource字段前面要缩进四个字符之类的,对我的问题不适用,后来发现在上面出错信息的后面还有一行字说要在AppKernel.php中注册AcmeDemoBundle之类的,于是找到/usr/share/nginx/html/symfony/app/AppKernel.php,发现有如下一句话:
1 if (in_array($this->getEnvironment(), array('dev','test'))) {2 $bundles[] = new Acme\DemoBundle\AcmeDemoBundle();3 $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();4 $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();6 $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();7 }
至此,大功告成,我们只需要修改
array('dev','test')为array('dev','test','prod')即可,这样symfony就会在prod模式下也注册AcmeDemoBundle了,实验结果显示如下:
本文系原创,转载请注明出处:http://www.cnblogs.com/beanmoon/p/3181733.html
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 关于Symfony2+nginx搭建过程总结
- 使用Symfony2搭建电子商务网站总结
- Symfony2的Nginx配置
- Symfony2 Nginx php-fpm 配置
- Nginx初始化过程总结
- Nginx windows下搭建过程
- Nginx windows下搭建过程
- Nginx windows下搭建过程
- Nginx windows下搭建过程
- Symfony2
- Symfony2
- Nginx搭建反向代理服务器过程详解
- Nginx搭建反向代理服务器过程详解
- Nginx搭建反向代理服务器过程详解
- Nginx搭建反向代理服务器过程详解
- Nginx搭建反向代理服务器过程详解
- Nginx搭建集群服务器过程详解
- Nginx搭建反向代理服务器过程详解
- 求一个数组中第二大的元素
- C++关于父类指针指向子类对象的问题
- ActionBarSherlock SlidingMenu整合,解决SlidingMenu example的getSupportActionBar()方法不能用问题
- java文件上传--Apache Commons fileUpload实现文件上传
- MySQL Cluster 备份与恢复
- 关于Symfony2+nginx搭建过程总结
- Mysql/SQLServer数据类型与java基本数据类型的对应
- HDU 2112 Map+Dijkstra
- 正版Windows Server 2008操作系统,Physical Key和Virtual Key是什么含义?
- windows平台java代码上传到linux中文乱码解决
- Simple-One-For-One Supervisors
- MATLAB 与 音频处理 相关内容摘记
- 强化学习(reinforcement learning)教程
- linux message queue msgget