资讯专栏INFORMATION COLUMN

记我的nginx + php5-fpm配置问题和解决方式

xuweijian / 2080人阅读

刚刚我在配置nginx+php5-fmp的虚拟主机环境, 在配置的过程中,在配置的过程中出现了一些问题, 在此记录下来, 以备后患。

请注意, 这里不是写如何配置这个虚拟主机, 而是记录我在配置的时候遇到的问题以及如何克服这些问题的过程。

环境:

ubuntu 14.04 (64位)
nginx 1.4.6
php 5.5.9

开始

开始的时候, 因为我是新安装的ubuntu的系统, 之后配置了nginx+php+mysql的环境, 但因为公司使用的是php-fpm作为php的实际的解析器, 所以又安装了php5-fpm, 这些这里不表了,最终安装完成后运行了一个简单的phpinfo页面, 一切正常。

因为我之前只配过lamp环境, 也没用过php-fpm, 所以后面配置虚拟主机的时候遇到了各种问题, 有些问题看起来可能很幼稚, 但这是我前进路上不可避免的一些坑, 遇到了, 能跨过去就是好的, 希望大家不要嘲笑一个年轻的学习的心。

虚拟主机配置

虚拟主机的配置分为两步
1: 配置ngnix, 设置新的网络端口以及网站的路径, 我在这里的时候除了因为一个分号搞了一会, 其他倒也没什么问题。 主要就是在重启失败后去查了一下nginx的日志文件, 一下就找到问题了。所以在出现问题的时候,我们第一个应该做的就是去查看一下相应的进程的日志文件, 那里会告诉我们哪些地方出现了问题,能给我们提供最直接有用的信息。

2: 配置php5-fpm
因为之前没有配过这个, 在这里的时候就遇到了一些问题。我开始的时候是把所有的配置都写在同一个www.conf配置文件中, 这是php5-fpm默认的配置文件, 而且我都是仿照原有的配置,加了一些我认为是因该要用的配置, 比如

 listen, user, group

listen的值我设置为新的虚拟主机配置中的fastcgi_pass unix:/var/run/php5-fpm.sock; 这是一种通过socket使文件和cgi建立连接的方式, 这也是原有默认的配置, 然后设置了use和group, 之后重启nginx和php5-fpm,但重启之后就遇到了502 bad gateway的错误, 我google了一些答案, 但都是让我修改一些其他的配置, 后来还是想起来之前我的老大配置的时候使用的另外一种用ip:port的方式替代socket作为fastcgi_pass值配置的方式, 在配置多个虚拟主机的时候, 他分配的时不同的端口, 这个道理和这里也很相似, 因为php5-fpm这个方式已经被原有的配置使用, 那么我就应该不能在用了, 于是我也换成了ip:port的方式。这之后再重启就哦了。

另外还有遇到的一个问题, 重启php5-fpm有的时候会遇到失败, 这种时候我们最好的方式就是去查他的日志, 在日志里, 它提示我们在配置好后用php5-fpm -test测试配置是否可行。我也是在这里才知道可以用这种方式测试php5-fpm, 而不是每次都刷新网页,不成功还得再去查日志, 这个-test就直接把调试信息输出了。

还有一个就是配置文件的分写。正如上面所说, 因为不熟悉php5-fpm的配置, 我仿照默认的配置文件写的时候就直接把配置写在了www.conf中, 这也导致了一些问题, 比如php5-fpm重启失败的问题。 后来我在看了php5-fpm.ini这个父配置文件后,才知道pool.d下面的所有文件都被作为php5-fpm的子配置文件。而后我分写了我自己的配置, 不仅更清晰, 也不容易出错了

总结:

在以上的配置过程中, 我总结了遇到一些问题时我们应该做的事情
1: 查看程序启动时的错误信息。
2: 如果是后台程序, 而且启动没有错误信息, 但一些依赖这些进程的程序却出错,这种时候应该直接去查看后台程序的日志文件。
3: 根据日志文件的信息做出改正。

警告: 不要轻易的就去google或百度错误信息, 比如我遇到的502, 网上大部分给出的都没有解决我的问题, 我还是后来通过查看进程的日志,才分析出来错误, 就是上面最后说的分写的问题。日志才是我们解决问题应该去查的第一手资料。

以上就是我在配置nginx + php5-fpm的虚拟主机的时候遇到的问题和解决的方式, 内容并没有什么深的东西, 甚至没什么可说的, 写在这里,只是我对自己的一个警戒, 也希望各位能从中得到一些警戒。

我只是一个程序员中的一个小蜗牛, 我的基础不好, 悟性不高, 但我希望我的一点一滴的积累, 能让我在编程的路上走的更远, 更高。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39108.html

相关文章

  • ECS+nginx+wordpress一手搭建完毕

    摘要:先来一段吐槽好朋友校招进百度前端团队了我还在找工作好心塞但是蛮为他高兴的是我的问题技术面铺的太开了,没有深入的一项比较深入的也就是渗透,了吧但是渗透团队要求好高网易跪在了面绿盟进行中工资略低啊技能点大概是星满分星星渗透星星网络安全星,学习能 PS: 先来一段吐槽...好朋友校招进百度前端团队了..我还在找工作ing..好心塞.但是蛮为他高兴的. 是我的问题.技术面铺的太开了,没有深...

    ityouknow 评论0 收藏0
  • 【译】一行代码就将你的PHP-FPM内存占用降低至少一半

    摘要:而这个子进程只是呆坐在那里,什么事也不做,每个子进程白白消耗超过的内存。这些子进程主要是由这个配置选项产生的。只要设置,就会有空闲的子进程等在那里等待被使用。事情做完之后,子进程会留在内存中秒钟时间,然后自己退出。 标题直译:如何减少PHP-FPM (php5-fpm)内存占用50%原标题:How to reduce PHP-FPM (php5-fpm) RAM usage by ab...

    30e8336b8229 评论0 收藏0
  • php+nginx项目中的权限

    摘要:权限情况此时只需要拥有文件的权限即可。脚本文件步骤访问时,为了能够把正确的脚本处理结果返回给客户端,需要进行配置告诉是非静态文件,需要脚本解析器进行处理后才能返回内容。 php+nginx项目中的权限 nginx/php-fpm 进程权限 主进程用户为启动的用户 子进程 nginx的用户为nginx.conf中配置的用户 php-fpm的用户为php-fpm.conf中配置的用户...

    Lin_YT 评论0 收藏0
  • php+nginx项目中的权限

    摘要:权限情况此时只需要拥有文件的权限即可。脚本文件步骤访问时,为了能够把正确的脚本处理结果返回给客户端,需要进行配置告诉是非静态文件,需要脚本解析器进行处理后才能返回内容。 php+nginx项目中的权限 nginx/php-fpm 进程权限 主进程用户为启动的用户 子进程 nginx的用户为nginx.conf中配置的用户 php-fpm的用户为php-fpm.conf中配置的用户...

    魏宪会 评论0 收藏0
  • Nginx 解析php

    摘要:背景安装,按照出了个访问,出现错误如下解决办法问题其实出现在得配置上面。我们可以去里面找到这样一段代码在这上面代码的下面添加一行重启,搞定 背景: 安装nginx,按照php5-fpm(出了个warning) 访问php,出现gateway错误 nginx log如下: 2014/02/12 16:48:50 [crit] 13365#0: *8 connect() to unix...

    yunhao 评论0 收藏0

发表评论

0条评论

xuweijian

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<