LNMP编译安装教程
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 ..
3.安装 Mhash 下载并安装mbash 网址:http://mhash.sourceforge.net/,下载下来之后用winscp这种工具传到linux的/usr/local/src目录下
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
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -zxvf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config
make && make install
4.准备工作完成,现在开始安装nginx!,这里添加了前面准备的库关系,注意路径!
wget http://nginx.org/download/nginx-1.9.9.tar.gz
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前要有一个冒号
然后运行:
http://127.0.0.1/l.php(这里把IP换成你自己的服务器的IP)
这里说明php可以联接mysql了。
到这里以编译的形式安装LNMP就完成了。如果由于项目的要求还需要php或是nginx一些其它的扩展,再重新编译一下php或是nginx就可以了
扩展阅读:
如果yum安装 的话,就非常简单了,可以看一下这个:https://my.oschina.net/u/872157/blog/31234
LNMP编译安装教程的更多相关文章
- lnmp编译安装
lnmp超详细编译安装教程 linux采用的是centos,软件包统一放在/usr/local/src目录下.由于 centos源比较老,而且更新起来也比较慢,此处建议你换成163源.提示:如果你真打 ...
- Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...
- 【转载】Ogre3d 2.1 源码编译安装教程
原文:Ogre3d 2.1 源码编译安装教程 今年是3D手游年,今年也是游戏引擎战争进入白热的一年. 移动游戏的红海时代,让各大端游也忍不住纷纷伸出大白腿,Unreal.CryEngine纷纷宣布自己 ...
- LNMP编译安装(centos7+nginx1.9+mysql5.6+php5.5)
LNMP编译安装 # 需先配置IP # 软件包的路径 /usr/local/src yum install -y libjpeg-devel libpng-devel freetype-devel c ...
- Linux(centos)下mysql编译安装教程
Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...
- 转 Windows+VS2013爆详细Caffe编译安装教程
1. 安装cuda Cuda是英伟达推出的GPU加速运算平台 我这里安装的是cuda7.5,已经安装过的忽略,还没有安装过的这里有安装教程.windows下面安装还是非常简单的. 点击打开链接 ...
- hadoop2.1.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- hadoop2.1.0和hadoop2.2.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- Ceph编译安装教程
Ceph官方版本目前支持的纠删码很有限,实验室这块希望能够整合我们自主开发的纠删码BRS(Binary Reed–Solomon encoding),所以需要编译Ceph环境.Ceph官方目前推荐的安 ...
随机推荐
- combobox获取值
easyui-combobox是组合框 ,既可以输入,也可以选择 获取的数据是json格式的 [{"id":"001","text":&q ...
- Cognition math based on Factor Space (2016.05)
Cognition math based on Factor Space Wang P Z1, Ouyang H2, Zhong Y X3, He H C4 1Intelligence Enginee ...
- 使用scp将文件/目录拷贝到另一台Linux主机上
如何将一台Linux主机上的文件或目录拷贝到另一台Linux主机上,scp命令可以实现该需求 前提条件:两台Linux主机处于同一网段,可以互相ping通 操作如下: 文件拷贝 ①将本地文件拷贝到远端 ...
- CodeForces #100 C 贪心+STL
题目链接:CodeForces #100 C 题意:现在给出n个snowball的半径,3个半径严格递增或递减的snowball,可以组成1个snowmen.问最多能组成多少个snowmen.并且按 ...
- Thrift编译与验证 - python
1 编译(保留了C和python语言,简化编译): # ./configure --without-java --without-cpp --without-php --without-erlang ...
- IT公司100题-25-求字符串中的最长数字串
问题描述: 实现一个函数,求出字符串中的连续最长数字串.例如输入”12345cbf3456″,输出”12345″. 函数原型为: void conti_num_max( const char * sr ...
- 从0到1---“保多多”APP的开发(一)
2015年8月份,我正式接手了公司保多多APP的开发(和另一个同事一起). 我之前并没有过从0开始创建一款APP,这次能有这样的机会,实在让我感到兴奋.因为我相信,作为这款APP的主要开发人员,在这一 ...
- bcopy函数
函数原型:void bcopy(const void *src, void *dest, int n) 头文件:#include <string.h> 函数功能:将src指针指 ...
- 2014年4月份第3周51Aspx源码发布详情
WPY净水机网站源码 2014-4-14 [VS2008]源码描述: 实现产品展示,在线留言,信息发布,在线咨询,营销网络地图. 网站基本管理:网站banner管理 管理首页滚动图片信息 网站右下部 ...
- webshell
webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下 ...