手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

LNMP:Linux+ Nginx+MySQL+PHP编译安装

[日期:2012-11-22] 来源:Linux社区  作者:林夕jing [字体: ]
前面介绍了nginx和memcached的工作机制,接下来我们主要配置下LNMP的编译安装以及将Memcached整合到LNMP中(基于Red Hat Enterprise Linux Server release 5.8)
一、安装Nginx:
 
1、解决依赖关系
编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Libraries"。同时,还需要专门安装pcre-devel包:
  1. # yum -y install pcre-devel
  2. # yum -y groupinstall "group_name"
2、安装
首先添加用户nginx,实现以之运行nginx服务进程:
  1. # groupadd -r nginx
  2. # useradd -r -g nginx nginx
接着开始编译和安装:nginx-1.2.3.tar.gz下载路径:ftp://172.16.0.1/pub/Sources/nginx
  1. # tar xvf nginx-1.2.3.tar.gz
  2. # cd nginx-1.2.3
  3. # ./configure \
  4. --prefix=/usr \
  5. --sbin-path=/usr/sbin/nginx \
  6. --conf-path=/etc/nginx/nginx.conf \
  7. --error-log-path=/var/log/nginx/error.log \
  8. --http-log-path=/var/log/nginx/access.log \
  9. --pid-path=/var/run/nginx/nginx.pid \
  10. --lock-path=/var/lock/nginx.lock \
  11. --user=nginx \
  12. --group=nginx \
  13. --with-http_ssl_module \
  14. --with-http_flv_module \
  15. --with-http_stub_status_module \
  16. --with-http_gzip_static_module \
  17. --http-client-body-temp-path=/var/tmp/nginx/client/ \
  18. --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
  19. --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
  20. --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
  21. --http-scgi-temp-path=/var/tmp/nginx/scgi \
  22. --with-pcre
  23. # make && make install
说明:如果想使用nginx的perl模块,可以通过为configure脚本添加--with-http_perl_module选项来实现,但目前此模块仍处于实验性使用阶段,可能会在运行中出现意外,因此,其实现方式这里不再介绍。如果想使用基于nginx的cgi功能,也可以基于FCGI来实现,具体实现方法请参照网上的文档。
 
3、为nginx提供SysV init脚本:(仅作参考)
新建文件/etc/rc.d/init.d/nginx,内容如下:
  1. #!/bin/sh
  2. #
  3. # nginx - this script starts and stops the nginx daemon
  4. #
  5. # chkconfig: - 85 15
  6. # description: Nginx is an HTTP(S) server, HTTP(S) reverse \
  7. # proxy and IMAP/POP3 proxy server
  8. # processname: nginx
  9. # config: /etc/nginx/nginx.conf
  10. # config: /etc/sysconfig/nginx
  11. # pidfile: /var/run/nginx.pid
  12. # Source function library.
  13. . /etc/rc.d/init.d/functions
  14. # Source networking configuration.
  15. . /etc/sysconfig/network
  16. # Check that networking is up.
  17. [ "$NETWORKING" = "no" ] && exit 0
  18. nginx="/usr/sbin/nginx"
  19. prog=$(basename $nginx)
  20. NGINX_CONF_FILE="/etc/nginx/nginx.conf"
  21. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
  22. lockfile=/var/lock/subsys/nginx
  23. make_dirs() {
  24. # make required directories
  25. user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
  26. options=`$nginx -V 2>&1 | grep 'configure arguments:'`
  27. for opt in $options; do
  28. if [ `echo $opt | grep '.*-temp-path'` ]; then
  29. value=`echo $opt | cut -d "=" -f 2`
  30. if [ ! -d "$value" ]; then
  31. # echo "creating" $value
  32. mkdir -p $value && chown -R $user $value
  33. fi
  34. fi
  35. done
  36. }
  37. start() {
  38. [ -x $nginx ] || exit 5
  39. [ -f $NGINX_CONF_FILE ] || exit 6
  40. make_dirs
  41. echo -n $"Starting $prog: "
  42. daemon $nginx -c $NGINX_CONF_FILE
  43. retval=$?
  44. echo
  45. [ $retval -eq 0 ] && touch $lockfile
  46. return $retval
  47. }
  48. stop() {
  49. echo -n $"Stopping $prog: "
  50. killproc $prog -QUIT
  51. retval=$?
  52. echo
  53. [ $retval -eq 0 ] && rm -f $lockfile
  54. return $retval
  55. }
  56. restart() {
  57. configtest || return $?
  58. stop
  59. sleep 1
  60. start
  61. }
  62. reload() {
  63. configtest || return $?
  64. echo -n $"Reloading $prog: "
  65. killproc $nginx -HUP
  66. RETVAL=$?
  67. echo
  68. }
  69. force_reload() {
  70. restart
  71. }
  72. configtest() {
  73. $nginx -t -c $NGINX_CONF_FILE
  74. }
  75. rh_status() {
  76. status $prog
  77. }
  78. rh_status_q() {
  79. rh_status >/dev/null 2>&1
  80. }
  81. case "$1" in
  82. start)
  83. rh_status_q && exit 0
  84. $1
  85. ;;
  86. stop)
  87. rh_status_q || exit 0
  88. $1
  89. ;;
  90. restart|configtest)
  91. $1
  92. ;;
  93. reload)
  94. rh_status_q || exit 7
  95. $1
  96. ;;
  97. force-reload)
  98. force_reload
  99. ;;
  100. status)
  101. rh_status
  102. ;;
  103. condrestart|try-restart)
  104. rh_status_q || exit 0
  105. ;;
  106. *)
  107. echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
  108. exit 2
  109. esac
而后为此脚本赋予执行权限:
  1. # chmod +x /etc/rc.d/init.d/nginx
添加至服务管理列表,并让其开机自动启动:
  1. # chkconfig --add nginx
  2. # chkconfig nginx on
而后就可以启动服务并测试了(这一步要保证你的httpd没有在运行):
  1. # service nginx start
linux
相关资讯       LNMP  Nginx编译安装  Nginx PHP MySQL 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款