文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Web及应用服务器 » 在CentOs 5.1中使用rpm安装NGINX+php+mysql(二)       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [原创] 在CentOs 5.1中使用rpm安装NGINX+php+mysql(二)  ( 查看:798  回复:6 )   
  本主题由 jiangye 于 2008-7-8 23:52 设置高亮  
 
rickyfang
技术员  点击可查看详细



十二生肖之马   狮子座   行业勋章   技术勋章   诚信兄弟  
帖子 173
精华 8
无忧币 628
积分 449
阅读权限 30
来自 (保密)
注册日期 2006-2-28
最后登录 2008-7-24 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2008-1-20 16:24   标题:在CentOs 5.1中使用rpm安装NGINX+php+mysql(二)
上一帖 |
算是原创。转载请注明此地址,随着对NGINX认知的深入,此文会不定期更新或是修正。
    以下兵分两路来说明:一是直接利用php-cgi的FastCGI运行方式;二是利用Lighttpd的spawn-fcgi来控制进程的运行方法。
先说说利用php-cgi的FASTCGI运行方式:
7、创建php-cgi启动脚本,
[root@nginx-freetds ~]# vi /etc/init.d/phpcgi
#!/bin/sh
#
# php-cgi - this script starts and stops the php-cgi daemin
#
# chkconfig: - 85 15
# description: Fast CGI php
# processname: php-cgi
# config: /etc/php.ini
# pidfile: /var/run/php-cgi.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
phpcgi="/usr/bin/php-cgi"
prog=$(basename ${phpcgi})
FCGIPORT="8888"
FCGIADDR="127.0.0.1"
FCGIUSER="apache"
FCGIGROUP="apache"
PHP_FCGI_CHILDREN=5
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS
[ -e /etc/sysconfig/php-cgi ] && . /etc/sysconfig/php-cgi
lockfile=/var/lock/subsys/php-cgi
start() {
echo -n $"Starting $prog: "
/usr/bin/spawn-fcgi -a $FCGIADDR  -p $FCGIPORT -C $PHP_FCGI_CHILDREN -u $FCGIUSER -g $FCGIGROUP -P /var/run/php-cgi.pid -f "${phpcgi}" >> /
dev/null 2>&1
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
force_reload() {
restart
}
fdr_status() {
status $prog
}
case "$1" in
start|stop|restart)
$1
;;
status)
fdr_status
;;
condrestart|try-restart)
[ ! -f $lockfile ] || restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
exit 2
esac
然后,开机自动运行:
[root@nginx-freetds ~]#/sbin/chmod +x /etc/init.d/phpcgi
[root@nginx-freetds ~]#/sbin/chkconfig --add phpcgi
[root@nginx-freetds ~]#/sbin/chkconfig --level 35 phpcgi on
[root@nginx-freetds ~]#/sbin/chkconfig --level 35 nginx on
但从网上说会遇到两个问题,这里摘录一位的解决方案。(我没有遇到。也没有机会测试下面的解决方式是否正确)
[root@nginx-freetds ~]# cat /var/log/audit/audit.log| audit2allow -M local
[root@nginx-freetds ~]#/usr/sbin/semodule -i local.pp
下面说说利用Lighttpd的spawn-fcgi来控制进程的运行的方法:
8、开启nginx及利用Lighttpd的spawn-fcgi来控制进程的运行
[root@nginx-freetds ~]# spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nginx -g nginx -f /usr/bin/php-cgi
spawn-fcgi.c.187: child spawned successfully: PID: 2513
参数含义如下
-f  指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
-a  绑定到地址addr
-p  绑定到端口port
-s  绑定到unix socket的路径path
-C  指定产生的FastCGI的进程数,默认为5(仅用于PHP)
-P  指定产生的进程的PID文件路径
-u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等

因为,安装rpm 安装nginx时。会创建nginx用户和组。
[root@nginx-freetds ~]# service nginx start
Starting nginx: [  OK  ]
9、在IE栏里输入http://124.207.102.22/index.htm这时NGINX已在正常运行。如下图:

在/usr/share/nginx/html下面新建index.php

      
在IE栏里输入http://124.207.102.22/index.php这时NGINX已在正常运行。如下图:

10、那如何实现php的运行呢。在第7或第8步骤中,已开启了PHP的进程:
[root@nginx-freetds ~]# ps -aux |grep php
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
nginx     2513  0.0  1.9  17720  4964 ?        Ss   20:45   0:00 /usr/bin/php-cgi
nginx     2514  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2515  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2516  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2517  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2518  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
root      2542  0.0  0.2   3892   676 pts/0    R+   20:48   0:00 grep php
可以看到,有五个进程正在运行。
    默认情况下。NGINX是可以开启静态页面,但如何开启PHP。还是要在/etc/nginx/nginx.php设置的。
    各位可以参考我的配置前后的截图(呵呵,研究下,有些参数是可以改变的。要举一返三吧):

修改前:


保存更改。
然后service nginx restart便可了。
11、配置虚拟主机
在APACHE上配置虚拟主机。想来各位都有一定的体验。那如何在NGINX中实现呢?

[root@nginx-freetds html]# vi /etc/nginx/nginx.conf
参考下图(开启https的样例也在内)。最后几行:
  server
      {
        listen       8000;    ####监听端口
        server_name  124.207.102.22  alias  another.alias;####域名
        root   /usr/share/nginx/html;                     ####路径
        index  index.php index.html index.htm;    ####index
        location ~ \.php$
        {
             include   fastcgi.conf;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
         }

想多加虚机吗。呵呵,多来几个吧(日志选项请自位参考CONF文件自行研究)。
基本上完成了。有些功能还需要参考官方文档深入研究学习下
接下来,研究下rpm安装的情况下实现php连ms sql server.(tar包的已成功且在用啦)




2008-1-20 16:241楼
[ 顶部 ]
 
rickyfang
技术员  点击可查看详细



十二生肖之马   狮子座   行业勋章   技术勋章   诚信兄弟  
帖子 173
精华 8
无忧币 628
积分 449
阅读权限 30
来自 (保密)
注册日期 2006-2-28
最后登录 2008-7-24 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2008-1-27 08:53 
中文WIKI站点,可以前往观赏:

http://wiki.codemongers.com/NginxChs



2008-1-27 08:532楼
[ 顶部 ]
 
rickyfang
技术员  点击可查看详细



十二生肖之马   狮子座   行业勋章   技术勋章   诚信兄弟  
帖子 173
精华 8
无忧币 628
积分 449
阅读权限 30
来自 (保密)
注册日期 2006-2-28
最后登录 2008-7-24 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2008-3-5 13:18 
在使用时,因为PHP采用YUM 安装时是以RPM包的形式,而安装后,是APACHE用户组具有可写权限。故我在使用PHPMYADMIN时,会出现这样的问题:Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.
     虽然也GOOGLE了多次,但大部分说的是WINDOWS环境下的解决方法。后来在友人的提醒下,查看了下SESSION目录的权限,才恍然大悟了。原来只对APACHE组和ROOT用户具有可读写及执行权限。更改了权限后,就是777就可以了。或者把NGINX用户加入到APACHE用户组也可以。



2008-3-5 13:183楼
[ 顶部 ]
 
rickyfang
技术员  点击可查看详细



十二生肖之马   狮子座   行业勋章   技术勋章   诚信兄弟  
帖子 173
精华 8
无忧币 628
积分 449
阅读权限 30
来自 (保密)
注册日期 2006-2-28
最后登录 2008-7-24 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2008-3-5 13:18 
解决了之后,可能会出现Can’t connect to local MySQL server through socket 这样的错误提示。
   后来在开启MYSQLD进程后,使用ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock ,这样子就会在/var/lib/mysql/下有个mysql.sock的软连接。
   此后,彻底解决了问题。
   OK,爽了



2008-3-5 13:184楼
[ 顶部 ]
 
rickyfang
技术员  点击可查看详细



十二生肖之马   狮子座   行业勋章   技术勋章   诚信兄弟  
帖子 173
精华 8
无忧币 628
积分 449
阅读权限 30
来自 (保密)
注册日期 2006-2-28
最后登录 2008-7-24 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2008-3-5 20:45 
如何添加MEMCACHE:

tar zxvf memcache-2.2.1.tgz
cd memcache-2.2.1/
/usr/bin/phpize
./configure --with-php-config=/usr//bin/php-config
make
make install

编辑/etc/php.ini
找到:extension_dir =
在下面加入:
并在此行后增加以下几行,然后保存:

extension = "memcache.so"



2008-3-5 20:455楼
[ 顶部 ]
 
xinnethz
新新人类  点击可查看详细


帖子 13
精华 0
无忧币 30
积分 17
阅读权限 20
注册日期 2008-2-13
最后登录 2008-3-18 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-8 01:29 
顶好帖子.谢谢.



【北京活动】两小时搞定负载均衡实战解析
2008-3-8 01:296楼
[ 顶部 ]
 
inet
新新人类  点击可查看详细


十二生肖之蛇   巨蟹座   行业勋章   技术勋章   诚信兄弟  
帖子 145
精华 0
无忧币 200
积分 167
阅读权限 20
注册日期 2008-1-18
最后登录 2008-7-1 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2008-3-8 20:34 
不懂



见识一下2006年必看的技术专题
2008-3-8 20:347楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号