LNMP源码编译

编译安装之前把开发包组安装了

[root@tiandong63 ~]# yum groupinstall "Development Tools" "Development Libraries" -y

[root@tiandong63 ~]# yum install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* -y

Zlib:Nginx提供gzip模块,需要zlib的支持

Openssl:Nginx提供SSL的功能

[root@tiandong63 ~]# tar -xf pcre-8.37.tar.bz2 -C /usr/local/src/

pcre不需要安装,把他解压一下就可以了,等会编译nginx的时候指定目录就可以读到

[root@tiandong63 ~]# tar xf nginx-1.8.0.tar.gz -C /usr/local/src/

[root@tiandong63 ~]# cd !$

cd /usr/local/src/

[root@tiandong63 src]# cd nginx-1.8.0/

[root@tiandong63 nginx-1.8.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37

参数解释:

--with-http_dav_module                  #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)

默认关闭,需要编译开启

--with-http_stub_status_module    #启用支持(获取Nginx上次启动以来的工作状态)

--with-http_addition_module         #启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求)

--with-http_sub_module                 #启用支持(允许一些其他文本替换Nginx相应中的一些文本)

--with-http_flv_module                   #启用支持(提供支持flv视频文件支持)

--with-http_mp4_module                      #启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持)

--with-pcre=/usr/local/src/pcre-8.37   #需要注意,这里指的是源码,用#./configure --help |grep pcre查看帮助

[root@tiandong63 nginx-1.8.0]# make -j 3 && make install

[root@tiandong63 ~]# useradd -M -u 8001 -s /sbin/nologin nginx  添加用于运行nginx的用户

[root@tiandong63 ~]# ll /usr/local/nginx/    nginx目录结构

total 16

drwxr-xr-x. 2 root root 4096 Jan  9 03:26 conf    nginx相关配置文件

drwxr-xr-x. 2 root root 4096 Jan  9 03:26 html    网站根目录

drwxr-xr-x. 2 root root 4096 Jan  9 03:26 logs     日志文件

drwxr-xr-x. 2 root root 4096 Jan  9 03:26 sbin     nginx启动脚本

[root@tiandong63 ~]# vim /usr/local/nginx/conf/nginx.conf

[root@tiandong63 ~]# /usr/local/nginx/sbin/nginx    启动nginx服务

[root@tiandong63 ~]# netstat -tlunp |grep nginx     查看服务是否启动

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      31599/nginx

测试一下:

nginx相关维护命令:

[root@tiandong63 ~]# /usr/local/nginx/sbin/nginx -t   检查配置文件语法是否有错误

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@tiandong63 ~]# /usr/local/nginx/sbin/nginx -s reload  重新加载配置文件

[root@tiandong63 ~]# ln -s /usr/local/nginx/sbin/nginx /bin/  加上此软连接在根目录下也可 以执行nginx的相关命令。

编译安装MySQL

安装之前使用 yum remove mysql  确保没有安装MySQL

[root@tiandong63 ~]# yum install -y cmake  ncurses-devel

[root@tiandong63 ~]# tar xf mysql-5.6.26.tar.gz -C /usr/local/src/

[root@ tiandong63 mysql-5.6.26]# useradd -M -s /sbin/nologin mysql           创建mysql运行用户

[root@ tiandong63 mysql-5.6.26]# cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_MYISAM_STORAGE_ENGINE=1\

-DWITH_INNOBASE_STORAGE_ENGINE=1\

-DWITH_MEMORY_STORAGE_ENGINE=1\

-DWITH_READLINE=1\

-DENABLED_LOCAL_INFILE=1\

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL-USER=mysql

***********************************参数解释******************************************************************************

DCMAKE_INSTALL_PREFIX                                      #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置

DMYSQL_UNIX_ADDR                                           #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变

DDEFAULT_CHARSET                        #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集

DDEFAULT_COLLATION                           #默认字符校对

DWITH_EXTRA_CHARSETS                  #制定mysql拓展字符集,默认值也是all支持所有的字符集

DWITH_MYISAM_STORAGE_ENGINE

DWITH_INNOBASE_STORAGE_ENGINE

DWITH_MEMORY_STORAGE_ENGINE

#静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务 器,这样MYSQL就支持这三种存储引擎

DWITH_READLINE                    #支持readline库

DENABLED_LOCAL_INFILE                    #允许本地倒入数据,启用加载本地数据

DMYSQL_DATADIR                                #mysql数据库存放路径

DMYSQL-USER                                    #运行mysql的用户

[root@xuegod63 mysql-5.6.26]# make -j 4 && make install

[root@tiandong63 mysql-5.6.26]# chown -R mysql.mysql /usr/local/mysql/

[root@tiandong63 mysql-5.6.26]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

cp: overwrite `/etc/my.cnf'? y

[root@tiandong63-mysql-5.6.26]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@tiandong63 mysql-5.6.26]# vim /etc/init.d/mysqld

basedir= /usr/local/mysql

datadir= /usr/local/mysql/data

[root@tiandong63 mysql-5.6.26]# chkconfig mysqld on

初始化数据库:

[root@tiandong63 mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

[root@tiandong63 ~]# ll /usr/local/mysql/data/

total 110604

-rw-rw----. 1 mysql mysql 12582912 Jan  9 03:26 ibdata1

-rw-rw----. 1 mysql mysql 50331648 Jan  9 03:26 ib_logfile0

-rw-rw----. 1 mysql mysql 50331648 Jan  9 03:26 ib_logfile1

drwx------. 2 mysql mysql     4096 Jan  9 03:26 mysql

drwx------. 2 mysql mysql     4096 Jan  9 03:26 performance_schema

drwxr-xr-x. 2 mysql mysql     4096 Jan  9 03:13 test

[root@tiandong63 ~]# ln -s /usr/local/mysql/bin/* /bin/

[root@tiandong63 ~]# /etc/init.d/mysqld start

[root@tiandong63 ~]# mysql_secure_installation

PHP:

首先解决依赖关系:

[root@tiandong63 ~]# yum install php-pear -y

//pear按照一定的分类来管理pear应用代码库,你

的pear代码可以组织到其中适当的目录中,其他人可以方便的检索并分享到你的成果;pear不仅仅是一个代码仓库,它同时也是一个标准,使用这个标准来书写你的php代码,将会增强你的程序的可读性,复用性,减少出错的几率;Pear通过两个类为你搭建了一个框架,实现了诸如析构函数,错误捕获功能,你通过继承就可以使用这些功能

[root@tiandong63 ~]# tar -xf libmcrypt-2.5.8.tar.bz2 -C /usr/local/src/

[root@tiandong63 libmcrypt-2.5.8]# pwd

/usr/local/src/libmcrypt-2.5.8

[root@tiandong63 libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt && make && make install

除开上面的依赖解决之外,还需要安装图片,xml,字体支持基本库,使用yum去安装,安装的时候,这些软件包自

身也有依赖!

[root@tiandong63 ~]# yum install -y libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype freetype-devel

需要添加到库文件路径,由于系统默认规定只在/lib、/lib64、/lib/lib64下面找库文件,所以我们需要手动添加进去。

[root@tiandong63 ~]# vim /etc/ld.so.conf

1 include ld.so.conf.d/*.conf

2 /usr/local/libmcrypt/lib

3 /usr/local/mysql/lib

[root@tiandong63 ~]# ldconfig

[root@tiandong63 ~]# echo 'ldconfig' >> /etc/rc.local   设为开机自启动

[root@tiandong63 php-5.6.13]# pwd

/usr/local/src/php-5.6.13

[root@tiandong63 ~]# tar xf php-5.6.13.tar.bz2 -C /usr/local/src/

[root@tiandong63 php-5.6.13]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/libmcrypt

参数解释:

--with-config-file-path                         #设置 php.ini 的搜索路径。默认为 PREFIX/lib

--with-mysql                        #mysql安装目录,对mysql的支持

--with-mysqli                         #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。是一个数据库驱动

--with-iconv-dir                      #种字符集间的转换

--with-freetype-dir                  #打开对freetype字体库的支持

--with-jpeg-dir                      #打开对jpeg图片的支持

--with-png-dir                          #打开对png图片的支持

--with-zlib                        #打开zlib库的支持,实现GZIP压缩输出

--with-libxml-dir=/usr                     #打开libxml2库的支持,libxml是一个用来解析XML文档的函数库

--enable-xml                        #支持xml文档

--disable-rpath                         #关闭额外的运行库文件

--enable-bcmath                      #打开图片大小调整,用到zabbix监控的时候用到了这个模块

--enable-shmop                       #shmop共享内存操作函数,可以与c/c++通讯

--enable-sysvsem  #加上上面shmop,这样就使得你的PHP系统可以处理相关的IPC函数(活动在内核级别)。

--enable-inline-optimization       #优化线程

--with-curl                            #打开curl浏览工具的支持

--with-curlwrappers                    #运用curl工具打开url流 ,新版PHP5.6已弃用

--enable-mbregex                    #支持多字节正则表达式

--enable-fpm                       #CGI方式安装的启动程序,PHP-FPM服务

--enable-mbstring                     #多字节,字符串的支持

--with-gd                             #打开gd库的支持,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

--enable-gd-native-ttf                    #支持TrueType字符串函数库

--with-openssl                          #打开ssl支持

--with-mhash                       #支持mhash算法扩展

--enable-pcntl                          #freeTDS需要用到的,pcntl扩展可以支持php的多线程操作

--enable-sockets                       #打开 sockets 支持

--with-xmlrpc                       #打开xml-rpc的c语言

--enable-zip                         #打开对zip的支持

--enable-soap                          #扩展库通过soap协议实现了客服端与服务器端的数据交互操作

--with-mcrypt                       #mcrypt算法扩展

[root@tiandong63 php-5.6.13]# make -j 3 && make install

配置php和php-fpm

php配置文件:

[root@tiandong63 php-5.6.13]# cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini

php-fpm配置文件:

[root@tiandong63 php-5.6.13]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

[root@tiandong63 php-5.6.13]# vim /usr/local/php/etc/php-fpm.conf

[root@tiandong63 php-5.6.13]# cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@tiandong63 php-5.6.13]# chmod +x /etc/init.d/php-fpm

[root@tiandong63 php-5.6.13]# chkconfig php-fpm on

[root@tiandong63 php-5.6.13]# /etc/init.d/php-fpm start

Starting php-fpm  done

[root@tiandong63 php-5.6.13]# netstat -tlunp|grep 9000

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      77366/php-fpm

[root@tiandong63 ~]# vim /usr/local/nginx/html/index.php

<?php

phpinfo();

?>

测试:

LNMP源码编译的更多相关文章

  1. HAProxy与LVS综合----搭建LNMP源码编译结合HAProxy或LVS负载均衡

    实战一:实现LNMP与Keepalived.HAProxy做反向代理 框架图: 实现原理: 1.当A用户访问网站时,此时需要经过防火墙,防火墙将用户访问的IP地址处理后,如果允许访问,则就访问到HAr ...

  2. LNMP源码编译安装(centos7+nginx1.9+mysql5.6+php7)

    1.准备工作: 1)把所有的软件安装在/Data/apps/,源码包放在/Data/tgz/,数据放在/Data/data,日志文件放在/Data/logs,项目放在/Data/webapps, mk ...

  3. LNMP源码编译安装

    思路:根据Linux系统以及公司网站系统的信息,选择合适的安装包进行安装 一.查看系统信息 # uname -a                        # 查看内核/操作系统/CPU信息 # ...

  4. Lnmp 源码编译安装、常见错误整理

    简介: Lnmp 环境的搭建还是非常简单的,之前由于博客迁移等原因,导致丢失了好多博文,这次重新整理记录一下. Lnmp 即:Linux .Nginx .Mysql .PHP Lnmp 是一套 Web ...

  5. lnmp源码编译安装zabbix

    软件安装 Mysql 安装 tar xf mysql-5.7.13-1.el6.x86_64.rpm-bundle.tar -C mysql rpm -e --nodeps  mysql-libs-5 ...

  6. 源码编译搭建LNMP环境

    LNMP源码编译 1.LNMP介绍 LNMP=Linux Nginx Mysql PHP Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器.Ng ...

  7. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  8. 源码编译配置lnmp部署zabbix

    环境说明: [root@wcy ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@wcy ~]# uname -a Linux ...

  9. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

随机推荐

  1. js对象的 两种访问方式

    来对象访问属性有两种方式.有一个对象Obj = {"Name":"Langshen","AGE":"28"} 用点访问, ...

  2. 解决FileInputStream 读取文件中文乱码问题(转)

    当Java中使用 FileInputStream 读取txt等文档时,中文会产生乱码,解决方法如下: try { fis = new FileInputStream(file); InputStrea ...

  3. java中的接口和php的接口的区别

    php: 规范: 接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量. 在接口中的抽象方法只能是public的,默认也是public权限. abstract和final修饰符也不能修饰接口中 ...

  4. devXpress ribbonForm处理

    1.图标处理 这个图标是通过 Element Ribbon API

  5. JS-逻辑运算符的与,或,非

    JS-逻辑运算符的与,或,非 1.非 所谓非,就是取反,非真即假,非假即真. 非运算符不仅仅只能用于布尔值,其他数据类型也是可以的,如下: 1.如果操作数是一个对象,返回false 2.如果操作数是一 ...

  6. php打包下载以及断点续传

    php下载单文件 以及 多文件打包下载,支持断点续传 断点续传的功能未经验证 需要nginx或者apache服务器指定静态文件,png, mp4, zip等后缀文件的目录, 直接实例化并调用 down ...

  7. 【ios bug解决】 输入框聚焦时光标不显示

    解决办法:重写user-select样式 css:   user-select: text;-webkit-user-select:text;

  8. unzip解压3G或者4G以上文件失败的解决方法

    Linux下,使用unzip解压时,报错:End-of-central-directory signature not found.  Either this file is nota zipfile ...

  9. Optimization Algorithms

    1. Stochastic Gradient Descent 2. SGD With Momentum Stochastic gradient descent with momentum rememb ...

  10. netty-2.客户端与服务端互发消息

    (原) 第二篇,客户端与服务端互发消息 与第一篇的例子类似,这里服务端需要三个类,客户端也需要三个类. 服务端关键代码如下:MyServer与上一个例子中的TestServer 差多,这里只列举不同的 ...