当前位置: 首页 > 编程日记 > 正文

CentOS6.8 编译安装LNMP

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

一、查看系统信息

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

二、具体安装

常规依赖包安装

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
View Code

安装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 ..
View Code

安装libmcrypt,mhash,mcrypt库

 1 tar zxvf libmcrypt-2.5.8.tar.gz
 2 cd libmcrypt-2.5.8
 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.8.tar.gz
12 cd mcrypt-2.6.8
13 ./configure
14 make && make install
15 cd ..
View Code

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

echo '/usr/local/lib/'>>/etc/ld.so.conf
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.2.tar.gz
2 cd cmake-3.7.2
3 ./bootstrap && make && make install
4 cd..
View Code

安装MySQL

 1 #卸载旧版本
 2 rpm -e mysql --nodeps
 3 #创建mysql用户
 4 groupadd mysql && useradd -g mysql -M mysql
 5 tar zxvf mysql-5.6.24.tar.gz
 6 cd mysql-5.6.24
 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=1 \
13 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
14 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
15 -DWITH_MEMORY_STORAGE_ENGINE=1 \
16 -DWITH_READLINE=1 \
17 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
18 -DMYSQL_TCP_PORT=3306 \
19 -DENABLED_LOCAL_INFILE=1 \
20 -DENABLE_DOWNLOADS=1 \
21 -DWITH_PARTITION_STORAGE_ENGINE=1 \
22 -DEXTRA_CHARSETS=all \
23 -DDEFAULT_CHARSET=utf8 \
24 -DDEFAULT_COLLATION=utf8_general_ci \
25 -DWITH_DEBUG=0 \
26 -DMYSQL_MAINTAINER_MODE=0 \
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 ..
View Code

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

mkdir -p /var/lib/mysqld 
chown mysql:mysql /var/lib/mysqld

安装PHP

 1 tar zxvf php-5.6.30.tar.gz
 2 cd php-5.6.30
 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
View Code

安装Nginx

tar zxvf nginx-1.10.2.tar.gz 
cd nginx-1.10.2
./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-pcre
make && make install
View Code

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

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15# description: NGINX is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx# pidfile: /var/run/nginx.pid# Source function library.
. /etc/rc.d/init.d/functions# Source networking configuration.
. /etc/sysconfig/network# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)NGINX_CONF_FILE="/etc/nginx/nginx.conf"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxmake_dirs() {# make required directoriesuser=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`if [ -n "$user" ]; thenif [ -z "`grep $user /etc/passwd`" ]; thenuseradd -M -s /bin/nologin $userfioptions=`$nginx -V 2>&1 | grep 'configure arguments:'`for opt in $options; doif [ `echo $opt | grep '.*-temp-path'` ]; thenvalue=`echo $opt | cut -d "=" -f 2`if [ ! -d "$value" ]; then# echo "creating" $valuemkdir -p $value && chown -R $user $valuefifidonefi
}start() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6make_dirsecho -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval
}stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval
}restart() {configtest || return $?stopsleep 1start
}reload() {configtest || return $?echo -n $"Reloading $prog: "killproc $nginx -HUPRETVAL=$?echo
}force_reload() {restart
}configtest() {$nginx -t -c $NGINX_CONF_FILE
}rh_status() {status $prog
}rh_status_q() {rh_status >/dev/null 2>&1
}case "$1" instart)rh_status_q && exit 0$1;;stop)rh_status_q || exit 0$1;;restart|configtest)$1;;reload)rh_status_q || exit 7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q || exit 0;;*)echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit 2
esac
View Code

用法指南

chmod +x /etc/init.d/nginx
service nginx start #启动nginx服务
chkconfig nginx on #开机启动
cd ..
View Code

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

转载于:https://www.cnblogs.com/afee666/p/6836161.html

相关文章:

js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称

1,列举对象属性的名称<script language"javascript">varobjnewObject();obj.a"您好&#xff0c;我是田洪川";obj.b"你是田洪川咋的&#xff0c;不得了啊&#xff1f;";obj.c"西西&#xff0c;哈哈&#xff0c;我是属性 c ";//上…

Matlab与数据结构 -- 对向量的排序

本图文介绍了Matlab怎样实现对向量的排序。

HashMap和HashSet原理及底层实现

HashMap底层用哈希算法实现&#xff0c;下面看一下哈希算表的整体概括&#xff1a; 当map.put(“key”,”values”);的时候&#xff0c;底层是这样的&#xff1a; static final Entry<?,?>[] EMPTY_TABLE {}; transient Entry<K,V>[] table (Entry<K,V&g…

Study on Android【三】--Intent消息传递

在前面写Android的ContentProvider时候&#xff0c;可以看到那是基于观察者模式的一个消息传递方法。每一个Cursor、ContentResolver做为一个小的注册中心&#xff0c;相关观察者可以在这个中心注册&#xff0c;更新消息由注册中心分发给各个观察者。而在MFC或Winform中&#x…

Matlab与数据结构 -- 对矩阵的排序

本图文介绍了Matlab怎样实现对矩阵的排序。

Java_中快速获取系统时间

直接调用System的currentTimeMillis()即可&#xff01; long start System.currentTimeMillis(); System.out.println("Start time : "start);

servlet必知细节(一)

servlet必知细节&#xff08;一&#xff09; 今天复习了一下servlet&#xff0c;有过一些编程经验后&#xff0c;与最初学习servlet相比&#xff0c;对servlet理解的角度不同了&#xff0c;最初只是学习了如何写一个servlet&#xff0c;api怎么用&#xff0c;现在从更深处了解了…

办公室“暧昧”的几种结局。

暧昧结局一&#xff1a;以消散结尾 外贸公司职员小雨 p: [( I J( n, i/ L( L 那是我刚来这家公司的时候&#xff0c;参加面试时我就关注到其中一个面试我的男人长得不错&#xff0c;言谈举止也都很儒雅&#xff0c;所以第一面就留下了深刻印象。等到我被录取正式上班后…

Matlab与机器学习-- 数据的归一化

本文介绍了Matlab对数据归一化的处理函数mapminmax。

ASP.NET中的母版页

ASP.NET中的母版页 添加一个"母版页",使用<asp:ContentPlaceHolder>挖坑,新建的母版页已经自动设置了两个ContentPlaceHolder创建使用母版页的具体页面,WebSite是新建"Web窗体"的时候勾选"选择模板页",WebApplication是新建"Web内容窗…

servlet必知细节(二)--servlet执行过程

servlet必知细节(二)--servlet执行过程 我们知道&#xff0c;servlet没有main函数&#xff0c;那么&#xff0c;servlet是怎么调用的呢&#xff1f;实际上&#xff0c;servlet 是由tomcat调用的&#xff0c;tomcat调用servlet程序执行。由调用栈可以看到&#xff0c;当一个请求…

workerman源码分析之启动过程

2019独角兽企业重金招聘Python工程师标准>>> http://www.cnblogs.com/CpNice/p/4714182.html 转载于:https://my.oschina.net/yonghan/blog/898076

MD5加密方法

/**//// <summary>/// 16位MD5加密方法/// </summary>/// <param name"str">原文</param>/// <returns>密文</returns>publicstaticstringgetMd5(stringstr){ MD5CryptoServiceProvider md5 new MD5CryptoServiceProvider()…

如何教计算机认识手写数字(上)

本图文介绍了一种简单的教会计算机识别手写数字的方法。

servlet必知细节(三)-- DefaultServlet

servlet必知细节&#xff08;三&#xff09;-- DefaultServlet 缺省servlet&#xff1a;org.apache.catalina.servlets.DefaultServlet&#xff0c;作用是处理其他servlet处理不到的请求 我们知道&#xff0c;在我们工程的web.xml中&#xff0c;会配置servlet映射&#xff0c…

第五篇:Visual Studio 2008 Web开发使用的新特性

第五篇&#xff1a;Visual Studio 2008 Web开发使用的新特性 本篇翻译自MSDN。 .NET Framwork 3.5与Visual Studio 2008 包含很多新特性。AJAX的Web开发人员支持与综合查询语言&#xff08;LINQ&#xff09;是其中最重要的更新。此外还包含一些新的服务器端控件以及客户端对象库…

Jenkins使用Publish Over FTP Plugin插件上传FTP详解

一、安装插件【Publish Over FTP】 二、在【系统管理】->【系统设置】->【Publish over FTP】->点击【增加】按钮&#xff0c;增加一个要连接的FTP&#xff1a; FTP Server Name&#xff1a;FTP名字 Hostname&#xff1a;主机IP或者域名 Username&#xff1a;ftp登陆用…

Matlab与数据结构 -- 求向量或矩阵的最大值

本图文介绍了Matlab中求向量或矩阵最大值的方法。

web应用的绝对路径和相对路径

经常写web工程&#xff0c;就会涉及很多路径问题&#xff0c;今天复习下绝对路径和相对路径&#xff0c;以提醒自己下次不要以为路径问题头疼。 1.绝对路径和相对路径 相对路径&#xff1a;helloworld ./helloworld ../helloworld 这样的都是相对路径绝对路径&…

IE7外觀優化

众所周知&#xff0c;在Windows Vista的默认设置中&#xff0c;传统的文件菜单消失了&#xff0c;大部分过去通过菜单执行的任务如今由工具栏提供&#xff0c;或者在相应选择项的右键属性里。尽管这种改变使页面布局更简洁&#xff0c;但似乎许多用户并不认可或者至少说并不习惯…

使用GPUImageView录制视频保存后出现绿边

2019独角兽企业重金招聘Python工程师标准>>> 最近在使用GPUimageView做视频录制功能&#xff0c;录完后发现保存的视频右边有绿边&#xff0c;觉得好奇怪呀&#xff0c;为什么会这样呢&#xff1f;于是上网找资料&#xff0c;发现了这么一个说法&#xff1a;GPU和视…

Matlab与数据结构 -- 搜索向量或矩阵中非零元素的位置

本图文介绍了Matlab中搜索向量或矩阵中非零元素位置的方法。

jdk7新特性学习笔记

jdk7新特性学习笔记 从网络down了视频看&#xff0c;记录下学过的东西。1.二进制字面量 JDK7开始,可以用二进制来表示整数&#xff08;byte,short,int和long&#xff09;&#xff0c;语法&#xff1a;在二进制数值前面加 0b或者0B例如&#xff1a;int x 0b11112.数字字面量可以…

2008开年大礼:《Application = Code + Markup》中文版面世

Charles Petzold的又一部经典力作《Application Code Markup》中文版终于要面世了。成为2008 开年大礼。相信有很多对WPF有兴趣&#xff0c;但又苦于没有经典书籍来支撑的朋友都一直在期待着这本书的中文版上市&#xff0c;博文视点让这一期待成为现实。 与大家一样都很兴奋。…

近一个月的学习总结(4.8—5.12)

Java-se基础知识的学习已经告一段落&#xff0c;对自己这一个月的知识体系做一个大致的总结&#xff1a; 1.Java语言基础&#xff08;基础完成&#xff09; 2.面向对象基础&#xff08;封装、继承、多态&#xff09;&#xff08;基础完成&#xff09; 3.抽象类、接口&#xff0…

利用BP神经网络教计算机识别语音特征信号(代码部分SS)

本图文已经更新&#xff0c;详细地址如下&#xff1a; http://blog.csdn.net/lsgo_myp/article/details/54094884

springmvc配置DispatcherServlet拦截url注意事项

<!-- 前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 加载springmvc配置 --><init-param><param-name>contex…

sql server面试题

本面试题由2344095 (有心人)整理, 由ashzs((可以包含中文字符)) 解答,感谢二位!1.磁盘柜上有14块73G的磁盘&#xff0c; 数据库为200G 大小包括日志文件&#xff0c;如何设置磁盘&#xff08;要说明这14磁盘是怎么用的&#xff09;&#xff1f;2.有两服务器群集&#xff0c;分别…

利用BP神经网络教计算机识别语音特征信号(代码部分SSR)

本图文已经更新&#xff0c;详细地址如下&#xff1a; http://blog.csdn.net/lsgo_myp/article/details/54094884

JDBC使用步骤

JDBC编程步骤&#xff1a; 一、注冊载入JDBC驱动程序&#xff1b; 注冊载入驱动driver。也就是强制类载入&#xff1a;其注冊载入JDBC驱动有三种方法&#xff1a; 方法一&#xff1a;Class.forName(DriverName)&#xff1b; 当中DriverNameDriver包名。Driver类名&#xff1b;…