您的位置:首页 > 其它

lnmp的环境的搭建及应用(源码)

2013-10-03 21:40 316 查看
lnmp与lamp的安装上基本上相同,我们只是将用以实现web功能的apache软件换成了nginx,至于lamp与nginx的相关的内容,当然你们可以参考kunjiang的其他的博客,这里就不再次敖述了。这里只简单介绍一下apache和nginx与php的结合方式:在httpd-2.4版本以前,httpd与php的结合靠的是模块,安装了php之后,php自动形成httpd的一个模块,但是httpd-2.4版本以后,httpd与php的结合不仅可以使用模块进行结合而且可以支持fastcgi的方式;nginx与php的结合靠的是fastcgi,fastcgi作为一个单独的程序并且会开启9000端口来调用php。
环境:rhel 5.4所需源码包:cmake-2.8.10.2.tar.gzlibevent-2.0.16-stable.tar.gzmysql-5.6.10.tar.gznginx-1.5.4.tar.gzphp-5.4.13.tar.bz2phpMyAdmin-3.5.8-all-languages.zipDiscuz_X3.0_SC_GBK.zip首先将以上源代包拆解到/usr/local/src目录下:tar –zxvf cmake-2.8.10.2.tar.gz –C/usr/local/src/tar –zxvf libevent-2.0.16-stable.tar.gz–C /usr/local/src/tar –zxvf mysql-5.6.10.tar.gz–C /usr/local/src/tar –zxvf nginx-1.5.4.tar.gz–C /usr/local/src/tar –jxvf php-5.4.13.tar.bz2 –C/usr/local/src/

拆解完成后就进入具体的安装:我们首先进行mysql的安装,由于mysql的源码需要cmake进行配置和编译,在安装mysql之前需要预先安装cmake编译工具:[root@localhost~]# cd /usr/local/src/cmake-2.8.10.2/[root@localhostcmake-2.8.10.2]# ./configure --prefix=/usr/local/cmake[root@localhostcmake-2.8.10.2]#make && make install为了任何人在任何位置都能使用cmake工具,需要修改环境文件/etc/profile,内容如下图:


重新读取环境文件. /etc/profile,为了使得用户能够使用man命令查看帮助,需要在/etc/man.config的文件内增加cmake的man手册所在的路径:


Cmake工具到此安装完成,现在安装mysql,首先系统运行服务需要运行者,首先建立数据库的运行者mysql,其所属组也为mysql,为系统账户:[root@localhostsrc]# ln -s /usr/local/src/mysql-5.6.10 /usr/local/src/mysql[root@localhostsrc]# groupadd mysql[root@localhostsrc]# useradd -r -g mysql mysql -s/sbin/nologin[root@localhostsrc]#cd mysql[root@localhostmysql]# cmake .[root@localhostmysql]# make && make install安装完成后,系统会自动在/usr/local/目录下创建存放mysql数据库相关文件的mysql目录,切换mysql安装目录:


此时,我们为了任何用户能在任何环境下使用mysql的相关工具、调用mysql的头文件和库文件以及使用man手,我们需要对mysql的bin、include、lib、man目录做以下操作:
修改/etc/profile文件,在里面如下图所示的地方加入mysql的bin路径,然后重新读取环境文件(. /etc/profile):


将mysql的头文件在/usr/include下做成mysql的链接:


在/etc/ld.so.conf.d/创建一个名为mysql.conf的文件内容如下:

然后使用ldconfig刷新缓存,在使用ldconfig -pv查看相关的库文件。
修改/etc/man.conf文件,加入mysql man手册的路径:

我们需要产生mysql的初始化数据库,但是在安装前,首先改变所有文件的用户名和组:[root@localhostmysql]# chown -R mysql :mysql . 改变mysql安装目录下所有文件及文件夹的用户和组[root@localhostmysql]# scripts/mysql_install_db 安装mysql的初始化数据库[root@localhostmysql]# chown -R root . 改变所有文件及文件夹用户[root@localhostmysql]# chown -R mysql data 修改data的用户为mysql

接下来产生mysql的配置脚本和服务的控制脚本:[root@localhostmysql]# cp support-files/my-default.cnf /etc/my.cnf[root@localhostmysql]# cp support-files/mysql.server /etc/init.d/mysqld[root@localhostmysql]# service mysqld start[root@localhostmysql]# chkconfig --add mysqld 加入chkconfig管理[root@localhostmysql]# chkconfig mysqld on 修改为开机自启动为了数据库的安全,我们需要给数据库设置用户和用户口令:[root@localhostmysql]# mysqladmin -u root -p password '123'现在我们使用mysql命令来访问mysql数据库了:

至此数据库的安装就完成了。下面是nginx的安装,由于nginx采用的是epoll事件触发机制,要很好的支持触发我们需要安装libevent事件库:[root@localhost~]# cd /usr/local/src/libevent-2.0.16-stable/[root@localhostlibevent-2.0.16-stable]# ./configure--prefix=/usr/local/libevent[root@localhostlibevent-2.0.16-stable]# make && make install切换到libevent的安装目录,同样对该目录下的bin、include、lib做同mysql一样的操作,这里就不再写出了(注意:只要是源码安装,都要对bin、include、lib、man进行操作,当然如果没有该目录的话除外,下面的其他源码的安装就不再提示了!)由于nginx的安装需要正则表达式的支持,此时我们还需要安装pcre(挂载光盘安装pcre的rpm包):rpm -ivh /mnt/cdrom/Server/pcre-devel-6.6-2.el5_1.7.i386.rpm
现在进行nginx的安装,由于nginx是系统服务需要系统账户,所以我们创建系统账户:[root@localhostnginx-1.5.4]# groupadd -r nginx 创建nginx的组[root@localhostnginx-1.5.4]# useradd -r -g nginx -s /bin/false -M nginx 创建nginx用户并加入到nginx的组中[root@localhost~]# cd /usr/local/src/nginx-1.5.4/[root@localhostnginx-1.5.4]# ./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[root@localhostnginx-1.5.4]# make && make install
安装完成,会在安装目录产生两个目录:

接着去创建/var/tmp/nginx/client、/var/tmp/nginx/proxy、/var/tmp/nginx/fcgi目录:[root@localhost~]# mkdir -pv /var/tmp/nginx/client[root@localhost~]# mkdir -pv /var/tmp/nginx/proxy [root@localhost~]# mkdir -pv /var/tmp/nginx/fcgi 然后修改/etc/profile环境文件加入下面一句话,后并使用 . /etc/profile 命令重新读取环境文件使得修改后的内容生效:

接着为了方便我们管理,我们需要写nginx的控制脚本,一般程序的控制脚本存放在/etc/init.d/目录下,所以我们在此目录下创建nginx文件并且修改其权限为可执行,nginx的内容如下:#!/bin/bash
# chkconfig:2345 65 45
# description:nginx server daemon
prog=/usr/local/nginx/sbin/nginx
lockfile=/var/lock/nginx.lock
pidfile=/var/run/nginx/nginx.pid
space=`echo"\t\t\t\t\t\t"`
start(){
[ -f $lockfile ] && echo"nginx is started." && exit
echo -n "nginx is starting.."
sleep 1 && echo -n"."
$prog && echo -e "$space[\033[32m OK\033[0m]" && touch $lockfile || echo -e "$space[\033[31m failed\033[0m]"
}
stop(){
[ ! -f $lockfile ] && echo"nginx is stopped." && exit
echo -n "nginx is stopping.."
sleep 1 && echo -n"."
$prog -s stop && echo -e "$space[\033[32m OK \033[0m]"&& rm -f $lockfile || echo -e"$space[\033[31m failed \033[0m]"
}
status(){
[ ! -f $pidfile ] && echo"nginx is stoped" || echo "`cat $pidfile`,nginx is running"
}

case"$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "UASGE IS:start|stop|restart|status"
;;
esac
现在可以执行chkconfig –add nginx来实现chkconfig管理,也可以使用chkconfig –list nginx查看nginx服务在何种级别的开启与关闭的状态。


现在nginx的安装也已经实现了。
接着安装我们的php,切换至php的拆解目录:[root@localhostinit.d]# cd /usr/local/src/php-5.4.13/[root@localhostphp-5.4.13]# ./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 \ 指定php的初始化文件的所在的路径>--with-config-file-scan-dir=/etc/php5.d \ 指定php的额外配置文件所在的路径[root@localhostphp-5.4.13]# make && make install[root@localhostphp]# mkdir /etc/php /etc/php5.d 创建这样两个目录然后切换到php拆解的目录:产生php的初始化文件,由于fpm也是一种服务,所以也有相应的配置文件与控制脚本,产生php-fpm的配置文件及控制脚本:[root@localhostphp-5.4.13]# cp php.ini-production /etc/php/php.ini php的初始化文件[root@localhostphp-5.4.13]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm fpm服务的控制脚本[root@localhostphp-5.4.13]# chmod a+x /etc/init.d/php-fpm[root@localhostphp-5.4.13]# cd /usr/local/php/etc/ 进入php的安装目录[root@localhostetc]# cp php-fpm.conf.default php-fpm.conf fpm的配置文件现在我们启动php-fpm服务,并且加入chkconfig管理:


为了在用户访问我们的站点时能够调用php,我们需要修改nginx的配置文件,修改内容如下:

为了能够访问php网页,还需要修改nginx的配置文件:

重启nginx的服务。
下面进入测试阶段,进入/usr/local/nginx/html/目录新建index.php的网页,内容如下:

由于我的服务器的ip地址是192.168.2.100,所以访问http://192.168.2.100。出现以下的界面说明nginx采用fastcgi成功调用php:


接着测试mysql与php的结合是否成功,需要修改index.php的内容如下:


再次访问http://192.168.2.100。出现如下界面ok,停止mysql服务,出现not,说明mysql与php的结合也是正常的。



lnmp的环境搭建到此就已经完成,接下来我们可以做一些应用了。

为了管理mysql直接方便,我们采用phpmyadmin工具以web方式管理mysql数据库。[root@localhost~]# unzip phpMyAdmin-3.5.8-all-languages.zip[root@localhost~]# mv phpMyAdmin-3.5.8-all-languages /usr/local/nginx/html/phpmyadmin[root@localhost~]# cd /usr/local/nginx/html/phpmyadmin/[root@localhostphpmyadmin]# cp -p config.sample.inc.php config.inc.php现在我们可以基于物理目录来访问我们的phpmyadmin了,http://192.168.2.100/phpmyadmin

正确输入用户名和口令进入phpmyadmin的管理界面:


我们基于我们的环境搭建discuz论坛:

将upload上传到/usr/local/nginx/html/discuz目录:

现在访问http://192.168.2.100/discuz,进行论坛的安装,你会首先看到下面的界面。当然你要选择同意,不然怎么能进行下面这步呢:

接着会进入下面的界面,你只需修改对应目录的权限即可:

修改完权限后,刷新页面单击下一步,便进入下一步安装:





设置完成后,继续下一步完成discuz的安装吧:

安装完成的后:

现在discuz的安装也已经完成,我们可以访问http://192.168.2.100/discuz。 直接访问我的站点首页:

也可以直接访问http://192.168.2.100/discuz/admin.php,进行后台的访问:







在后台你可以做多种操作:添加板块,应用,用户管理等等,这里我就不再操作了,想玩的话可以去互联网上搜嘛!现在是互联网的时代,无论你需要什么,互联网都能找到的。

本文出自 “夜风” 博客,请务必保留此出处http://jiangkun08.blog.51cto.com/6266992/1304444
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: