LNMP编译安装教程

此次安装在Centos上,我采用的CentOS的版本是:CentOS release 6.5 (Final)

可以通过以下命令查看:lsb_release -a

一.准备工作:

清理已安装的软件包

1、检查是否安装了mysql

rpm -qa|grep mysql

强制卸载

rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps

2、清理httpd:yum -y remove httpd

3、清理mysql:yum -y remove mysql

我这里是没有安装过mysql

4、清理PHP:yum -y remove php

我这里没有安装php

二、安装必备工具

我把所有的安装包都放在了/usr/local/src下面,如果没有可自行创建,进入目录:

cd /usr/local/src/

yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof

安装完成之后会出现下图(这个时间大约在1分钟):

三、安装PHP依赖关系:

1.安装libiconv

cd /usr/local/src

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar zxvf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv

make && make install

cd ..

2.安装libmcrypt

wget http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure

make && make install

cd ..

tar zxvf mhash-0.9.9.9.tar.gz

./configure

make && make install

cd ..

4.安装Mcrypt

wget http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

#注意一下这步运行下,不然下面可能报错

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

./configure

make && make install

cd ..

编译mcrypt可能会报错:configure: error: *** libmcrypt was not found

vi  /etc/ld.so.conf

最后一行添加

/usr/local/lib/

保存并退出::wq!

执行载入命令:

ldconfig

四、安装mysql5.6.17

1.按照标准需要给mysql创建所属用户和用户组

创建用户组

groupadd mysql

创建一个用户,不允许登陆和不创主目录

useradd -s /sbin/nologin -g mysql -M mysql

检查创建用户

tail -1 /etc/passwd

注:MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。 因此,我们首先要在系统中源码编译安装cmake工具。

wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz

tar zxvf cmake-2.8.12.2.tar.gz

cd cmake-2.8.12.2

./configure

make && make install

2.使用cmake来编译安装mysql5.6.17,初次编译mysql的时候时间比较长,请耐心等待

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

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

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_USER=mysql \

-DWITH_DEBUG=0 \

-DWITH_SSL=system

make && make install

到这里mysql5.6.17就安装好了,接下来就是配置一些mysql相关的东西:

3.修改/usr/local/mysql权限

chmod +w /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql

4.关于my.cnf配置文件:

在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索”$basedir/my.cnf” 就是安装目录下 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置! 注意:在CentOS 6.x版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字。 如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。 由于我们已经卸载了最小安装完成后的mysq库所以,就没必要操作了。

5.cp my-default.cnf /etc/my.cnf

执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径:

命令如下:

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

6.拷贝mysql安装目录下support-files服务脚本到init.d目录

拷贝脚本:cp support-files/mysql.server /etc/init.d/mysqld

赋予权限:hmod +x /etc/init.d/mysqld

设置开机启动 这步可以不操作:chkconfig mysqld on

启动MySQL:ervice mysqld start

或者:/etc/init.d/mysql start

7.MySQL5.6.x启动成功后,root默认没有密码,我们需要设置root密码。 设置之前,我们需要先设置PATH,要不,不能直接调用mysql,操作如下:

修改/etc/profile文件

vi /etc/profile

在文件末尾添加

PATH=/usr/local/mysql/bin:$PATH

export PATH

让配置立即生效

source /etc/profile

8.登陆测试,默认是没有密码,直接回车就可进入

9.设置mysql密码(这一步可以先不设置),命令如下:

/usr/local/mysql/bin/mysqladmin -uroot -p password '你的密码'

10.验证mysql安装路径

ls -ld /usr/local/mysql/

到此为止mysql已安装完成了,接下来安装nginx

五、安装nginx1.7

nginx所需的依赖关系,一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。如果系统已经yum 安装了这些库也没关系,无需卸载。直接编译安装最新的就可以了。为了一次性完成编译,先准备编译下面的依赖关系!

1.安装PCRE库

http://ncu.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz

tar -zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure

make && make install

2.安装zlib库

wget http://zlib.net/zlib-1.2.8.tar.gz

tar -zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make && make install

3.安装openssl

tar -zxvf openssl-1.0.1g.tar.gz

cd openssl-1.0.1g

./config

make && make install

4.准备工作完成,现在开始安装nginx!,这里添加了前面准备的库关系,注意路径!

tar -zxvf nginx-1.9.9.tar.gz

cd nginx-1.9.9

./configure \

--user=www \

--group=www \

--prefix=/usr/local/nginx \

--with-http_stub_status_module \

--with-http_ssl_module \

--with-http_gzip_static_module \

--with-pcre=/usr/local/src/pcre-8.39 \

--with-zlib=/usr/local/src/zlib-1.2.8 \

--with-openssl=/usr/local/src/openssl-1.0.1g

make && make install

useradd -M -s /sbin/nologin nginx

#修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

把#user nobody 改成 user nginx;

#测试一下nginx配置文件

/usr/local/nginx/sbin/nginx -t

#启动nginx

/usr/local/nginx/sbin/nginx

#一般来说在nginx的配置文件修改后进行如下操作,

/usr/local/nginx/sbin/nginx -t检测一下配置文件是否正确,如果正确的话

再使用/usr/local/nginx/sbin/nginx -s reload 使nginx平滑启动

六、安装php 5.6.6

1.下载安装包及编译安装

wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz

tar -zxvf php-5.6.6.tar.gz

cd php-5.6.6

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --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-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts

make test

make && make install

2.修改fpm配置php-fpm.conf.default文件名称

mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

3.复制php.ini配置文件

cp php.ini-production /usr/local/php/etc/php.ini

4.复制php-fpm启动脚本到init.d

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

5.赋予执行权限

chmod +x /etc/init.d/php-fpm

6.添加为启动项

chkconfig --add php-fpm

7.设置开机启动

chkconfig php-fpm on

8.按照标准,给php-fpm创建一个指定的用户和组

创建群组:groupadd www

创建一个用户,不允许登陆和不创主目录 :useradd -s /sbin/nologin -g www -M www

9.立即启动php-fpm

service php-fpm start

#或者

/etc/init.d/php-fpm start

10.修改nginx配置文件使之支持php

vim /usr/local/nginx/conf/nginx.conf

找到下面的这段,把其

#location ~ \.php$ {

#    root           html;

#    fastcgi_pass   127.0.0.1:9000;

#    fastcgi_index  index.php;

#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

#    include        fastcgi_params;

#}

修改为

location ~ \.php$ {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

include        fastcgi_params;

}

修改完配置之后

测试一下是否有错:/usr/local/nginx/sbin/nginx -t

平滑重启:/usr/local/nginx/sbin/nginx -s reload

七、测试php和nginx和mysql

1.进入nginx的服务器目录,这一步是在nginx.conf里的root中配置的,可以自行修改。

cd /usr/local/nginx/html

2.新建一个php文件:vim l.php

其内容为<?php phpinfo();?>

保存并退出::wq! 注:字母w前要有一个冒号

然后运行:

http://127.0.0.1/l.php(这里把IP换成你自己的服务器的IP)

出现上面的图就说明PHP和NGINX安装成功了。

3.测试mysql

打开刚才新建的那个文件:

vim l.php,输入第三行-第10行代码,代码是测试php是否可以联接mysql。

保存并退出::wq! 注:字母w前要有一个冒号

然后运行:

这里说明php可以联接mysql了。

到这里以编译的形式安装LNMP就完成了。如果由于项目的要求还需要php或是nginx一些其它的扩展,再重新编译一下php或是nginx就可以了

扩展阅读:

如果yum安装 的话,就非常简单了,可以看一下这个:https://my.oschina.net/u/872157/blog/31234

lnmp编译安装mysql_LNMP编译安装教程相关推荐

  1. lnmp编译安装mysql_LNMP一键包不安装mysql | 厘米天空

    军哥的一键LNMP安装包默认是Mysql的,无法选择不安装数据库.不过军哥也给出了解决办法,在安装脚本里改两行就行了.以新版1.3为例 登陆后运行:screen -S lnmp,如果没有screen先 ...

  2. LNMP和LAMP的编译安装

    为什么80%的码农都做不了架构师?>>>    在编译这些源码包之前,我们需要确认系统中有gcc,gcc-c++,make编译器,一般系统都自带了gcc和make编译器,所以我们只要 ...

  3. caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)

    caffe是一个非常清晰且高效的深度学习框架,目前有着不少的用户,也渐渐的形成了自己的社区,社区上可以讨论相关的问题. 我从开始看深度学习的相关内容到能够用caffe训练测试自己的数据,看了不少网站, ...

  4. centos7安装详细图解_CentOS7编译安装PHP7的详细教程(图文)

    本篇文章给大家带来的内容是关于CentOS7编译安装PHP7的详细教程(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用编译的方式来安装 PHP 7. 安装编译工具.依赖包 ...

  5. centos 编译安装 mysql_CentOS7编译安装MySQL5.7.24的教程详解

    安装依赖 (1)cmake是新版MySQL的编译工具 sudo yum install gcc gcc-c++ pcre pcre-devel openssl openssl-devel sudo y ...

  6. Typescript系列(一):TS入门教程之简介、安装、编译、监听

    一个比java更script的语言,它是js的超集,它是Typescript. 一.typescript是什么? Typescript是javascript的一个超集,主要提供了类型系统和对ES6的支 ...

  7. python编译安装详解_linux 编译安装python3.6的教程详解

    不要下载 " XZ compressed source tarball " ,目前 python3.6 最新版压缩包名字是:Python-3.6.7.tgz. 把下载的压缩包随便放 ...

  8. Thingsboard入门教程:本地环境搭建和源码编译安装,献给thingsboard编译失败的同学,教程不断完善中,文章最后是thingsboard常见编译失败的问题总结

    欢迎加入ThingsBoard技术交流群 这里可复制Q群号:69998183 关注"云腾五洲":获取二开ThingsBoard物联网平台演示 交流社区:ThingsKit-Thin ...

  9. lnmp全能环境(编译安装多版本php)

    CentOS 8.x编译安装Nginx1.16+MySQL8.0+PHP7.4/7.3/ 7.2/ 7.1/ 7.0/ 5.6/ 5.5/ 5.3 全能环境 配置防火墙 关闭firewalld 安装配 ...

最新文章

  1. 聊聊flink的StateTtlConfig
  2. sparkContext之一:sparkContext的初始化分析
  3. canny算子的运用
  4. python中operator.itemgetter函数
  5. POJ 1449 amp; ZOJ 1036 Enigma(简单枚举)
  6. 光流 | 视频中物体检测的研究现状
  7. DataSet存储数据和结构到XML
  8. EFCore Lazy Loading + Inheritance = 干净的数据表 (一)
  9. armbian nginx 部署博客_通过Git将Hexo博客部署到服务器
  10. Java类类getDeclaredMethod()方法及示例
  11. 微软账号 被阻止登录会自动解锁码_WPS Office 13.2.0 国际解锁高级版 清爽无广告...
  12. 游戏玩家都不爱 Windows 11?网友:没必要,Windows 10 足矣
  13. jQuery 集合 搜索操作(父辈元素搜索、同辈元素搜索、子元素搜索)
  14. visual studio安装vsix插件
  15. 直播教学系统16项功能
  16. android 日记 app推荐,有什么写日记的软件?这4个app推荐给大家!
  17. Manjaro 开发环境配置和使用技巧
  18. 半次元收藏夹爬虫(残疾版,不喜勿喷)
  19. 计算两个时间的间隔时长
  20. java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字_灵思致远Leansmall的博客-CSDN博客_java判断字符串只包含数字字母

热门文章

  1. java 定时还款 技术_详解java定时任务
  2. if condition 大于_西门子进一步扩展Sinumerik Edge 平台的应用程序AnalyzeMyMachine/Condition...
  3. linux虚拟化技术 教程,Linux上实现虚拟化技术的优势
  4. Codeforces - 474D - Flowers - 构造 - 简单dp
  5. JS复制文本到剪切板
  6. python-函数入门(二)
  7. android自动化必备之界面元素
  8. sql 执行 delete 的时候,结合子查询 exists ,怎样支持别名呢?
  9. 让div垂直居中的5种方法
  10. Android 对话框用法