一、lnmp简介
LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
二、安装配置
1、安装环境
Centos6.4-64位操作系统最小化安装,
需要的软件包有mysql,nginx,php,还有一些额外添加支持功能的软件包。
2、安装mysql
因为在centos6.4上在安装系统时,就自动安装系统自带的mysql服务,所以我们要安装新版本的,所以还是将系统上现有的卸载就可以了。
[root@ahao yum.repos.d]# yum remove mysql-server
[root@ahao ~]# tar -zxvfmysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@ahao ~]# groupadd mysql //组合用户应该已经存在
[root@ahao ~]# useradd -r -g mysql mysql
[root@ahao ~]# cd /usr/local/
[root@ahao local]# ln -s mysql-5.6.15-linux-glibc2.5-x86_64/ mysql
[root@ahao local]# cd mysql
[root@ahao mysql]# chown -R mysql .
[root@ahao mysql]# chgrp -R mysql .
[root@ahao mysql]# scripts/mysql_install_db --user=mysql //这里会出现错误,缺少libaio.so文件,需要安装:
[root@ahao mysql]# yum install libaio-devel
安装之后再次执行scripts/mysql_install_db --user=mysql
[root@ahao mysql]# ll data/ //查看是否生成了数据库文件
[root@ahaomysql]# chown -R root .
[root@ahao mysql]# chown -R mysql data //将权限更改过来
[root@ahaomysql]# cp support-files/mysql.server /etc/init.d/mysqld //生成控制脚本
[root@ahaomysql]# chmod a+x /etc/init.d/mysqld
[root@ahao mysql]# cp my.cnf /etc //将配置文件放到etc目录下
[root@ahao mysql]# chkconfig --add mysqld
[root@ahao mysql]# chkconfig mysqld on
//在原先mysql服务中客户端已经生成,这里还需要客户端,删除原有的会牵扯太多软件的依赖,所以我们还是只卸载mysql工具,和mysqladmin 就可以了
[root@ahao mysql]# rm /usr/bin/mysqladmin
[root@ahao mysql]# rm /usr/bin/mysql
[root@ahao mysql]# vim /etc/profile //将bin文件放到系统变量中去
PATH=$PATH:/usr/local/mysql/bin
[root@ahao mysql]# . /etc/profile //重新读取环境变量
[root@ahao mysql]# mysqladmin -u root -p password -p '123' //指定mysql管机员
[root@ahao mysql]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib //将mysql的lib文件放到系统环境中去,便于系统的调用
[root@ahao mysql]# vim /etc/man.config //将手册放到系统环境中
MANPATH /usr/local/mysql/man
3、安装nginx
在安装nginx之前,我们要先安装pcre(正则表达式的库)和,libevent事件库。
[root@ahao mysql]# yum install pcre-devel
[root@ahao ~]# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src
[root@ahao ~]# cd /usr/local/src/libevent-2.0.16-stable/
[root@ahao libevent-2.0.16-stable]# ./configure --prefix=/usr/local/libevent
[root@ahao libevent-2.0.16-stable]# make && make install
[[email protected]]# cd /usr/local/libevent/
[root@ahao libevent]# vim /etc/ld.so.conf.d/libevevt.conf//将libevent的lib文件添加系统环境中去
/usr/local/libevent/lib
[root@ahaolibevent]# ldconfig
[root@ahao libevent]# ldconfig -pv | grep libevent //查看是否可以查看到lib文件
安装nginx
[root@ahao~]# groupadd -r nginx
[root@ahao ~]# useradd -r -g nginx -s /sbin/nologin -M nginx
[root@ahao ~]# tar -zxvf nginx-1.4.4.tar.gz -C /usr/local/src
[root@ahao ~]# cd /usr/local/src/nginx-1.4.4/
[[email protected]]# ./configure \
--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/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/\
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\
--with-pcre
这里会出现缺少openssl的库,也还是需要我们安装的
[root@ahao nginx-1.4.4]# yum install openssl-devel
//安装之后,再次运行上步操作
[root@ahao nginx-1.4.4]# mkdir -pv/var/tmp/nginx/client/ //这些要生成的临时目录,为了便于后续操作,还是手动建立为好
[[email protected]]# mkdir -pv /var/tmp/nginx/fcgi/
[root@ahao nginx-1.4.4]# mkdir -pv /var/tmp/nginx/proxy/
[root@ahao nginx-1.4.4]# make && make install
[root@ahao nginx-1.4.4]# cd /usr/local/nginx/sbin
[root@ahaosbin]# ./nginx –t //测试你的配置是否有错
nginx:the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfu
[root@ahaosbin]# cd /etc/init.d/
[[email protected]]# touch nginx //创建控制脚本
[root@ahao init.d]# chmod a+x nginx
脚本如下:
#!/bin/bash
# ./etc/init.d/functions
prog=/usr/local/nginx/sbin/nginx
lockfile=/var/lock/nginx.lock
start (){
if [ -e $lockfile ];then
echo "the nginx server isstarted"
else
echo -n "the nginx server isstarting......"
sleep 1
$prog && echo -e"[\033[32mOK\033[0m] " && touch $lockfile ||echo"failer"
fi
}
stop () {
if [ ! -e $lockfile ];then
echo "the nginx server isstoped"
else
echo-n "the nginx server is stoping......"
sleep 1
$prog -s stop && echo "OK" && rm-rf $lockfile || echo "failer"
fi
}
restart(){
if [ -e $lockfile ]; then
echo -n "the nginx isstoping..."
$prog -s stop && echo "OK" && rm -rf $lockfile ||echo "failer"
echo -n "the nginx isstarting..."
$prog && echo "OK"&& touch $lockfile ||echo "failer"
fi
}
case"$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo"USAGE:start|stop|restart"
esac
测试启动nginx
[root@ahao sbin]# service nginx start
the nginx server is starting......[OK]
[root@ahaosbin]# netstat -tupln | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11426/nginx
证明是可以正常启动的。
[root@ahao sbin]# vim /etc/init.d/nginx //将nginx加入chkconfig的管理
加入配置:# chkconfig:2345 88 44
# description: the web server
[root@ahaosbin]# chkconfig --add nginx
[root@ahaosbin]# chkconfig --list |grep nginx
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off //已经成功加入
4、安装php5.5.8
[root@ahao ~]# tar -jxvf php-5.5.8.tar.bz2 -C/usr/local/src
[root@ahao ~]# cd /usr/local/src/php-5.5.8/
[root@ahao php-5.5.8]# mkdir /etc/php /etc/php5.d
这两个目录是php与nginx配合使用一定要有的目录,我们先建立起来,以免后续出错。
[root@ahao php-5.5.8]# ./configure --prefix=/usr/local/php --enable-fpm --enable-sockets--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring --enable-xml --with-png-dir --with-jpeg-dir --with-zlib--with-freetype-dir --with-config-file-path=/etc/php--with-config-file-scan-dir=/etc/php5.d
但是这样的安装还是会有错误:
configure: error: xml2-config not found. Please check yourlibxml2 installation.
//缺少libxml2还是需要我们安装,其实这样的软件包有时候已经安装,缺少都是devel包,所以我们只需要安装devel包就可以了
[root@ahao php-5.5.8]# yum install libxml2-devel
安装之后继续执行上步操作。
执行成功之后:
[root@ahao php-5.5.8]# make && make install //时间很长请耐心等待,只要不出现错误即可
[root@ahao php-5.5.8]# cp php.ini-development /etc/php/php.ini
[root@ahao fpm]# chmod 744 /etc/init.d/php-fpm //更改权限
[root@ahao php-5.5.8]# cp sapi/fpm/php-fpm.conf/usr/local/php/etc/ //产生php-fpm配置文件
[root@ahao php-5.5.8]# service php-fpm start //测试启动是可以的
Starting php-fpm done
[root@ahao php-5.5.8]# netstat -tupln | grep fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 59253/php-fpm
[root@ahao php-5.5.8]# chkconfig --add php-fpm //加入chkconfig的管理
成功之后,我们可以做个测试页面:
[root@ahao php-5.5.8]# cd /usr/local/nginx/html/
[root@ahao html]# vim index.php
在里面添加:
Phpinfo();
?>
[root@ahao html]# vim /etc/nginx/nginx.conf //配置测试页面的要求
测试一下:
5、测试
安装phpmyadmin
[root@ahao ~]# unzip phpMyAdmin-4.1.5-all-languages.zip
[root@ahao ~]# mv phpMyAdmin-4.1.5-all-languages phpmyadmin
[root@ahao ~]# mv phpmyadmin/ /usr/local/nginx/html/
测试:
证明是可以正常访问的
或者我们还可以安装一个php加速器(Xcache)来测试:
[root@ahao ~]# tar -zxvf xcache-3.1.0.tar.gz -C /usr/local/src
[root@ahao xcache-3.1.0]# /usr/local/php/bin/phpize //phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
[[email protected]]#./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config
[root@ahao xcache-3.1.0]# make && make install
[root@ahao xcache-3.1.0]# cp xcache.ini /etc/php5.d/
[root@ahao ~]# vim /etc/php5.d/xcache.ini
[root@ahao xcache-3.1.0]# cp -r htdocs/ /usr/local/nginx/html/xcacheadmin 将xcache的管理页面放到nginx的主站点目录下
//在文件中更改配置
[root@ahao ~]# service php-fpm restart
我们可以测试访问web服务,在页面内搜索xcache就可以知道是否xcache启动了。
查看进入管理页面:
实现到这里我们的lnmp环境就已经搭建起来了,已经可以支持php动态页面。