之前一直都是一键搭建的webserver,可是一键搭建的环境相对来说都是比較老的。假设要用比較新的环境,特别是正式server,就必须自己手动编译搭建了(下面搭建基于linux centos6.5 32位server)。

1、 nginx

版本号:1.5

下载地址: http://nginx.org/download/nginx-1.5.2.tar.gz

2、 mysql

版本号5.5

下载地址:http://downloads.mysql.com/archives/mysql-5.0/mysql-5.5.30.tar.gz

3、 php

版本号5.4

下载地址:http://am1.php.net/get/php-5.4.34.tar.gz/from/this/mirror

一:安装nginx

安装一些依赖包:

  1. yum -y install gcc gcc-c++ gcc-devel gcc-c++-devel ssl ssl-devel autoconf make aclocal libtool expat-devel libxml2-devel openssl openssl-devel zlib zlib-devel bzip2 bzip2-devel gd gd-devel libmcrypt libmcrypt-devel libXpm-devel curl-devel libgd-devel gd-devel openldap-devel

进入一个文件夹:

  1. cd /opt/

下载并解压:

  1. wget http://nginx.org/download/nginx-1.5.2.tar.gz
  2. tar -zxf nginx-1.5.2.tar.gz
  3. wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz
  4. tar -zxf ngx_cache_purge-2.1.tar.gz

进入文件夹并编译:

  1. cd nginx-1.5.2
  2. ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/log/error.log --http-log-path=/usr/local/nginx/log/access.log --pid-path=/usr/local/nginx/run/nginx.pid --user=www --group=www --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/tmp/client --http-proxy-temp-path=/usr/local/nginx/tmp/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/tmp/fcgi/ --add-module=../ngx_cache_purge-2.1 --with-pcre=../pcre-8.34
  3. make && make install

这样就完毕了nginx的搭建。

执行:/usr/local/nginx/sbin/nginx

报错:nginx: [emerg] getpwnam("www") failed

在nginx.conf中 把user nobody的凝视去掉既可,改成www

再次执行:/usr/local/nginx/sbin/nginx

报错:nginx: [emerg] getpwnam("www") failed in /usr/local/nginx/conf/nginx.conf:1

错误的原因是没有创建www这个用户,应该在server系统中加入www用户组和用户www,例如以下命令:

  1. groupadd -f www
  2. useradd -g www www

第三次执行:/usr/local/nginx/sbin/nginx

报错:nginx: [emerg] mkdir() "/usr/local/nginx/tmp/client" failed (2: No such file or directory)

运行:mkdir -p /usr/local/nginx/tmp/client

然后localhost訪问就能够看到:

习惯了了/etc/init.d/nginx start?认为/usr/local/nginx/sbin/nginx 太长?

Vim /etc/init.d/nginx

  1. #!/bin/bash
  2. #
  3. # Init file for nginx server daemon
  4. #
  5. # chkconfig: 234 99 99
  6. # description: nginx server daemon
  7. #
  8. # source function library
  9. . /etc/rc.d/init.d/functions
  10. # pull in sysconfig settings
  11. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
  12. RETVAL=0
  13. prog="nginx"
  14. PAT=/usr/local/nginx
  15. NGINXD=/usr/local/nginx/sbin/nginx
  16. PID_FILE=/usr/local/nginx/nginx.pid
  17. start()
  18. {
  19. echo -n $"Starting $prog: "
  20. $NGINXD 2>/dev/null $OPTIONS && success || failure
  21. RETVAL=$?
  22. [ "$RETVAL" = 0 ] && touch /var/lock/subsys/nginx
  23. echo
  24. }
  25. stop()
  26. {
  27. echo -n $"Shutting down $prog: "
  28. killproc nginx
  29. RETVAL=$?
  30. echo
  31. [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/nginx
  32. return $RETVAL
  33. }
  34. reload()
  35. {
  36. echo -n $"Reloading nginx: "
  37. killproc nginx -HUP
  38. RETVAL=$?
  39. echo
  40. return $RETVAL
  41. }
  42. case "$1" in
  43. "start")
  44. start
  45. ;;
  46. "stop")
  47. stop
  48. ;;
  49. "restart")
  50. stop
  51. start
  52. ;;
  53. "reload")
  54. reload
  55. ;;
  56. "status")
  57. status -p $PID_FILE nginx
  58. RETVAL=$?
  59. ;;
  60. *)
  61. echo $"Usage: $0 {start|stop|restart|reload|status}"
  62. RETVAL=1
  63. esac
  64. exit $RETVAL

保存,加入x权限。

如需开机启动:

chkconfig nginx on

很多其它请支持:http://www.webyang.net/Html/web/article_127.html

Linux下php+mysql+nginx编译搭建(一)的更多相关文章

  1. Linux下.Net Core+Nginx环境搭建小白教程

    前言 对于接触.Net Core的我们来说之前从未接触过Linux,出于资源和性能及成本的考虑我们可能要将我们的环境搬到Linux下,这对于我们从未接触过Linux的童鞋们来说很棘手,那么我今天将带你 ...

  2. linux下安装mysql(编译mysql源码)

    编译所需软件地址 http://mysql.mirror.kangaroot.net/Downloads/  -- 下载需要的mysql版本例如mysql-5.5.39.tar.gz    目前还不太 ...

  3. Linux下PHP+MySQL+CoreSeek中文检索引擎配置

    说明: 操作系统:CentOS 5.X 服务器IP地址:192.168.21.127 Web环境:Nginx+PHP+MySQL 站点根目录:/usr/local/nginx/html 目的:安装co ...

  4. centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记

    centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记 目录[-] 过程 1.安装RVM 2.利用rvm安装 Ruby 1.9.3 并设为默认 3.安装rails 4.安装 ...

  5. windows下数据库文件使用脚本同步到linux下的mysql数据库中

    1.背景 windows server 2008 下 每天会有 *.sql数据文件 需要上传到linux 中的mysql数据库中 而运维人员是在 windows server 下使用 xshell 连 ...

  6. Linux下安装mysql教程

    Linux下安装mysql  MySQL官网:https://dev.mysql.com/downloads/mysql/ 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select ...

  7. linux下配置mysql默认编码utf8

    linux下配置mysql默认编码utf8 下面是需要在对应地方加入的配置 [client] default-character-set=utf8 [mysqld] character-set-ser ...

  8. LR通过snmp监控linux下的mysql

    LR通过snmp监控linux下的mysql 在linux底下安装配置snmp: 1.使用系统盘安装rpm包(这种方式最好) 2.在www.net-snmp.org处下载net-snmp安装(安装后有 ...

  9. 在Linux下给mysql创建用户并分配权限及问题解决方案

    在linux下安装mysql请参考在linux系统中安装mysql服务器详细步骤 1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql ...

随机推荐

  1. C/C++综合測试题(三)

    又刷了一套题 这些题都是百度.阿里巴巴.腾讯.网易.新浪等公司的面试原题,有一定的难度.只是确实相当有水平,能够通过做题来查漏补缺. 1.补充以下函数代码: 假设两段内存重叠,用memcpy函数可能会 ...

  2. kettle 4.4源代码分析Transformation

    1.1. 相关的类和接口 1.1.1. JobEntryTrans 实现了JobEntryInterface的execute()方法,被job运行.由JobEntryTrans实例化Trans,并运行 ...

  3. 嵌入在网页上Flash媒体播放器(1)

    做的项目,在不久的将来相关的Flash玩家使用,需要播放视频的网页上,不同的视频资源,需要不同的球员.基于使用稳定性.的嵌入式和嵌入式复杂性能的优点概括起来有两种方式(不同的玩家),视频资源也略有不同 ...

  4. linux下getsockopt和setsockopt具体解释及測试

    linux下getsockopt和setsockopt具体解释及測试 NAME 名字 getsockopt, setsockopt - get and set options on sockets 获 ...

  5. C指针决心 ------ 指针表达式

    本文是自己学习所做笔记.欢迎转载.但请注明出处:http://blog.csdn.net/jesson20121020 所谓的指针表达式是指一个表达式.其结果是一个指针. 例1. int  a,b; ...

  6. BP简单的理解神经网络

    先用3类样本训练,在測试.. 刚開始学习的人有错的 地方,,请大家多多指导.. 一些好的博客: http://blog.csdn.net/starxu85/article/details/314353 ...

  7. 一个关于Linux Bridge配置的吐嘈

    话说有些事情十分适合在放假前的一天折腾一天,但绝对不适合在你准备去吃饭前多看一眼...我上周就碰到了这么一件揪心的事,终于以低血糖收场.十分狼狈地四处觅食,却觅到了一包超级辣的鸡爪.吃完后感觉症状加重 ...

  8. SSH-Struts(三)—ActionForm

    ActionForm ActionForm用于封装用户的请求数据.即用户在页面上输入的数据.它充当了一个运输工具的角色.为了能够立体的理解ActionFrom.以下从两个角度看看:     从封装的数 ...

  9. JavaEE(12) - JPA规范及实现(TopLink和Hibernate)

    1. JPA规范与ORM框架之间的联系 JPA规范并不属于EJB3规范,它是一套完全独立的规范,不仅可以在基于EJB的JavaEE应用程序中使用,而且完全可以在普通JavaSE应用程序中使用. JPA ...

  10. Java Main如何被执行?(转)

    java应用程序的启动在/hotspot/src/share/tools/launcher/java.c的main()函数中,而在虚拟机初始化过程中,将创建并启动Java的Main线程.最后将调用JN ...