思路:根据Linux系统以及公司网站系统的信息,选择合适的安装包进行安装

一、查看系统信息

  1. # uname -a # 查看内核/操作系统/CPU信息
  2. # head -n /etc/issue # 查看操作系统版本
  3. # grep MemTotal /proc/meminfo # 查看内存总量
  4. #fdisk -l # 查看所有分区

二、具体安装

常规依赖包安装

  1. yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openldap openldap-devel openldap-clients openldap-servers make zlib-devel pcre-devel openssl-devel libtool* git tree bison perl gd gd-devel

安装libiconv库

  1. tar zxvf libiconv-1.14.tar.gz
  2. cd libiconv-1.14
  3. ./configure --prefix=/usr/local/libiconv
  4. make && make install
  5. cd ..

安装libmcrypt,mhash,mcrypt库

  1. tar zxvf libmcrypt-2.5..tar.gz
  2. cd libmcrypt-2.5.
  3. ./configure
  4. make && make install
  5. cd ..
  6. tar jxvf mhash-0.9.9.9.tar.bz2
  7. cd mhash-0.9.9.9
  8. ./configure
  9. make && make install
  10. cd ..
  11. tar zxvf mcrypt-2.6..tar.gz
  12. cd mcrypt-2.6.
  13. ./configure
  14. make && make install
  15. cd ..

编译 mcrypt 如果报错:configure: error: * libmcrypt was not found,则

  1. echo '/usr/local/lib/'>>/etc/ld.so.conf
  2. ldconfig

编译 mcrypt 如果报错:/bin/rm: cannot remove 'libtoolT': No such file or directory,则修改 configure 文件,找到 RM='$RM' 并改为 RM='$RM -rf'。

安装CMake工具

  1. tar zxvf cmake-3.7..tar.gz
  2. cd cmake-3.7.
  3. ./bootstrap && make && make install
  4. cd..

安装MySQL

  1. #卸载旧版本
  2. rpm -e mysql --nodeps
  3. #创建mysql用户
  4. groupadd mysql && useradd -g mysql -M mysql
  5. tar zxvf mysql-5.6..tar.gz
  6. cd mysql-5.6.
  7. cmake \
  8. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  9. -DMYSQL_DATADIR=/usr/local/mysql/data \
  10. -DSYSCONFDIR=/etc \
  11. -DMYSQL_USER=mysql \
  12. -DWITH_MYISAM_STORAGE_ENGINE= \
  13. -DWITH_INNOBASE_STORAGE_ENGINE= \
  14. -DWITH_ARCHIVE_STORAGE_ENGINE= \
  15. -DWITH_MEMORY_STORAGE_ENGINE= \
  16. -DWITH_READLINE= \
  17. -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
  18. -DMYSQL_TCP_PORT= \
  19. -DENABLED_LOCAL_INFILE= \
  20. -DENABLE_DOWNLOADS= \
  21. -DWITH_PARTITION_STORAGE_ENGINE= \
  22. -DEXTRA_CHARSETS=all \
  23. -DDEFAULT_CHARSET=utf8 \
  24. -DDEFAULT_COLLATION=utf8_general_ci \
  25. -DWITH_DEBUG= \
  26. -DMYSQL_MAINTAINER_MODE= \
  27. -DWITH_SSL:STRING=bundled \
  28. -DWITH_ZLIB:STRING=bundled
  29. make && make install
  30. #修改目录权限
  31. chown -R mysql:mysql /usr/local/mysql
  32. #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
  33. cp support-files/my-default.cnf /etc/my.cnf
  34. #编辑配置文件,在 [mysqld] 部分增加下面一行
  35. vi /etc/my.cnf
  36. datadir = /usr/local/mysql/data #添加MySQL数据库路径
  37. #执行初始化配置脚本,创建系统自带的数据库和表
  38. /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
  39. #加入系统服务
  40. cp support-files/mysql.server /etc/init.d/mysqld
  41. chmod +x /etc/init.d/mysqld
  42. #启动mysql
  43. service mysqld start
  44. #开机启动
  45. chkconfig mysqld on
  46. #加入环境变量
  47. echo 'PATH=/usr/local/mysql/bin:$PATH'>>/etc/profile
  48. export PATH
  49. #让配置生效
  50. source /etc/profile
  51. #设置root密码,默认是没有密码的
  52. /usr/local/mysql/bin/mysqladmin -uroot -p password
  53. cd ..

启动 mysql 时如果报错:mysqld_safe Directory '/var/lib/mysqld' for UNIX socket file don't exists,则

  1. mkdir -p /var/lib/mysqld
  2. chown mysql:mysql /var/lib/mysqld

安装PHP

  1. tar zxvf php-5.6..tar.gz
  2. cd php-5.6.
  3. ./configure \
  4. --prefix=/usr/local/php \
  5. --with-fpm-user=www --with-fpm-group=www \
  6. --with-config-file-path=/usr/local/php/etc \
  7. --with-mhash --with-mcrypt --enable-bcmath \
  8. --enable-mysqlnd --with-mysql --with-mysqli --with-pdo-mysql \
  9. --with-gd --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir \
  10. --enable-fpm \
  11. --enable-mbstring \
  12. --enable-pcntl \
  13. --enable-sockets \
  14. --enable-opcache \
  15. --with-openssl \
  16. --with-zlib \
  17. --with-curl \
  18. --with-libxml-dir \
  19. --with-iconv-dir
  20. make && make install
  21. #移动生成php-fpm配置文件
  22. mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
  23. #复制生成一份php配置文件
  24. cp php.ini-production /usr/local/php/etc/php.ini
  25. #将php-fpm加入系统服务
  26. cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  27. #赋予执行权限
  28. chmod +x /etc/init.d/php-fpm
  29. #开机启动
  30. chkconfig php-fpm on#创建www用户
  31. groupadd www && useradd -d /home/www -g www www
  32. #启动php-fpm
  33. service php-fpm start
  34. cd ..
  35. vim /etc/profile
  36. 修改PATH=/usr/local/php/bin:/usr/local/mysql/bin:$PATH
  37. export PATH
  38. source /etc/profile

安装Nginx

  1. tar zxvf nginx-1.10..tar.gz
  2. cd nginx-1.10.
  3. ./configure \
  4. --user=www \
  5. --group=www \
  6. --prefix=/usr/local/nginx \
  7. --conf-path=/etc/nginx/nginx.conf \
  8. --error-log-path=/var/log/nginx/error.log \
  9. --http-log-path=/var/log/nginx/access.log \
  10. --pid-path=/var/run/nginx.pid \
  11. --with-http_stub_status_module \
  12. --with-http_gzip_static_module \
  13. --with-http_ssl_module \
  14. --with-pcre
  15. make && make install

添加Nginx启动管理脚本/etc/init.d/nginx

  1. #!/bin/sh
  2. #
  3. # nginx - this script starts and stops the nginx daemon
  4. #
  5. # chkconfig: - # description: NGINX is an HTTP(S) server, HTTP(S) reverse \
  6. # proxy and IMAP/POP3 proxy server
  7. # processname: nginx# config: /etc/nginx/nginx.conf
  8. # config: /etc/sysconfig/nginx# pidfile: /var/run/nginx.pid
  9.  
  10. # Source function library.
  11. . /etc/rc.d/init.d/functions
  12.  
  13. # Source networking configuration.
  14. . /etc/sysconfig/network
  15.  
  16. # Check that networking is up.
  17. [ "$NETWORKING" = "no" ] && exit
  18.  
  19. nginx="/usr/local/nginx/sbin/nginx"
  20. prog=$(basename $nginx)
  21.  
  22. NGINX_CONF_FILE="/etc/nginx/nginx.conf"
  23.  
  24. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
  25.  
  26. lockfile=/var/lock/subsys/nginx
  27.  
  28. make_dirs() {
  29. # make required directories
  30. user=`$nginx -V >& | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
  31. if [ -n "$user" ]; then
  32. if [ -z "`grep $user /etc/passwd`" ]; then
  33. useradd -M -s /bin/nologin $user
  34. fi
  35. options=`$nginx -V >& | grep 'configure arguments:'`
  36. for opt in $options; do
  37. if [ `echo $opt | grep '.*-temp-path'` ]; then
  38. value=`echo $opt | cut -d "=" -f `
  39. if [ ! -d "$value" ]; then
  40. # echo "creating" $value
  41. mkdir -p $value && chown -R $user $value
  42. fi
  43. fi
  44. done
  45. fi
  46. }
  47.  
  48. start() {
  49. [ -x $nginx ] || exit
  50. [ -f $NGINX_CONF_FILE ] || exit
  51. make_dirs
  52. echo -n $"Starting $prog: "
  53. daemon $nginx -c $NGINX_CONF_FILE
  54. retval=$?
  55. echo
  56. [ $retval -eq ] && touch $lockfile
  57. return $retval
  58. }
  59.  
  60. stop() {
  61. echo -n $"Stopping $prog: "
  62. killproc $prog -QUIT
  63. retval=$?
  64. echo
  65. [ $retval -eq ] && rm -f $lockfile
  66. return $retval
  67. }
  68.  
  69. restart() {
  70. configtest || return $?
  71. stop
  72. sleep
  73. start
  74. }
  75.  
  76. reload() {
  77. configtest || return $?
  78. echo -n $"Reloading $prog: "
  79. killproc $nginx -HUP
  80. RETVAL=$?
  81. echo
  82. }
  83.  
  84. force_reload() {
  85. restart
  86. }
  87.  
  88. configtest() {
  89. $nginx -t -c $NGINX_CONF_FILE
  90. }
  91.  
  92. rh_status() {
  93. status $prog
  94. }
  95.  
  96. rh_status_q() {
  97. rh_status >/dev/null >&
  98. }
  99.  
  100. case "$1" in
  101. start)
  102. rh_status_q && exit
  103. $
  104. ;;
  105. stop)
  106. rh_status_q || exit
  107. $
  108. ;;
  109. restart|configtest)
  110. $
  111. ;;
  112. reload)
  113. rh_status_q || exit
  114. $
  115. ;;
  116. force-reload)
  117. force_reload
  118. ;;
  119. status)
  120. rh_status
  121. ;;
  122. condrestart|try-restart)
  123. rh_status_q || exit
  124. ;;
  125. *)
  126. echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
  127. exit
  128. esac

用法指南

  1. chmod +x /etc/init.d/nginx
  2. service nginx start #启动nginx服务
  3. chkconfig nginx on #开机启动
  4. cd ..

至此,LNMP环境已搭建完毕。

CentOS6.8 编译安装LNMP的更多相关文章

  1. centos6.6编译安装lnmp系列之mysql

    简介: 环境:虚拟机+centos6.6 Mysql版本:5.6.21 Mysql下载地址:http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.21.t ...

  2. centos6.6编译安装lnmp系列之PHP

    简介: 环境:虚拟机+centos6.6 在百度云盘里面我分享的安装软件包,包含LNMP系列软件. http://pan.baidu.com/s/1gdvnimv 1.安装前配置: 关闭selinux ...

  3. centos6.6编译安装lnmp系列之nginx

    简介: 环境:虚拟机+centos6.6 Cmake下载地址:http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz Nginx 下载地址: http:/ ...

  4. CentOS6.5 编译安装lnmp环境

    参考:http://54im.com/tag/libmcrypt http://www.educity.cn/linux/1240338.html 设置防火墙,并开启3306 80端口:vi /etc ...

  5. centos6.8 编译安装lnmp php7.2 mysql5.6 nginx1.1.4

    编译操作参考版,没有每一步详细操作,慎入 关闭selinux和防火墙 service iptables stop chkconfig iptables off vi /etc/selinux/conf ...

  6. 阿里云centos6.5实践编译安装LNMP架构web环境

    LNMP 代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. 本次测试需求: **实践centos6.5编译安装 LNMP生产环境 架构 web生产环境 使用 ngx_pa ...

  7. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

    [准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...

  8. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  9. CentOS6.3编译安装Memcached

    要用到如下源码包: /usr/local/src/memcached/libevent-2.0.21-stable.tar.gz /usr/local/src/memcached/memcached- ...

随机推荐

  1. Mina框架的学习笔记——Android客户端的实现

    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...

  2. 第二部分:Spring中配置mongodb

    一.需要引用的jar包 1.spring-data-mongodb-1.9.4.RELEASE.jar 2.spring-data-commons-1.12.11.RELEASE.jar 3.mong ...

  3. hdu 5145(莫队算法+逆元)

    NPY and girls Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  4. 在ros下使用tf

    tf真是一个好东西,把坐标变换都简化了 首先tf需要有一个broadcaster #include <ros/ros.h> #include <tf/transform_broadc ...

  5. HDU 1541.Stars-一维树状数组(详解)

    树状数组,学长很早之前讲过,最近才重视起来,enmmmm... 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据 ...

  6. (1)安装Xamarin

    ()一.安装 1.安装xamarin 2.下载jdk8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads- ...

  7. 第十四届华中科技大学程序设计竞赛 J Various Tree【数值型一维BFS/最小步数】

    链接:https://www.nowcoder.com/acm/contest/106/J 来源:牛客网 题目描述 It's universally acknowledged that there'r ...

  8. Python与数据库[2] -> 关系对象映射/ORM[4] -> sqlalchemy 的显式 ORM 访问方式

    sqlalchemy 的显式 ORM 访问方式 对于sqlalchemy,可以利用一种显式的ORM方式进行访问,这种方式无需依赖声明层,而是显式地进行操作.还有一种访问方式为声明层 ORM 访问方式. ...

  9. IOS调用WCF提供的服务方法,但是方法的参数是WCF那边自定义的对象,这样有办法调用么,如果可以IOS应该怎么传参呢?请问有了解的么,

    最近做一个项目后端使用WCF接收Android手机拍照并带其它参数保存到服务器里:刚好把最近学习的WCF利用上,本以为是个比较简单的功能应该很好实现,没想到其中碰到不少问题,在网上搜索很久一直没有想到 ...

  10. 数据块dump详解及大小表扫描过程

    http://blog.csdn.net/u013820054/article/details/40378233 http://blog.csdn.net/u013820054/article/cat ...