您的位置:首页 > 其它

LNMP环境的源码搭建

2013-01-23 19:44 316 查看
LNMP环境的搭建是每个linux运维人员必会的基本技能,我习惯根据我的需求来进行精简安装,下面我来贴出我的搭建步骤:(linux系统就的安装步骤就不在此叙述,略)
mysql源码包下载地址:http://mysql.mirror.kangaroot.net/Downloads/
cmake源码包下载地址:http://www.cmake.org/files/
步骤一:安装nginx
在安装nginx之前,我们需要检查本机linux系统内是否已经安装gcc、pcre、pcre-devel,如果没安装请执行 yum install gcc pcre pcre-devel。完成后我们继续:
将nginx下载在/usr/local/src目录下:
[root@localhost ~]#cd /usr/local/src/
[root@localhost src]#wget http://nginx.org/download/nginx-1.2.6.tar.gz 下载完成后进行解压安装:
[root@localhost src]#tar zxvf nginx-1.2.6.tar.gz
[root@localhost src]#cd nginx-1.2.6
[root@localhost nginx-1.2.6]#./configure --prefix=/usr/local/nginx (这里需要指定pcre库的路径:--with-pcre=【path】因为我们yum安装的pcre及pcre-devel所以可以不用添加该参数,但如果我们采用的是tar包安装,我们需指定pcre路径,尤其注意为源码的路径,不是安装路径。还有很多参数,因为我的没什么其他需求,所以一切从简,这里就略去)
[root@localhost nginx-1.2.6]#make ;make install
若整个安装过程中无报错,那么我们安装的就基本ok了;

[root@localhost nginx-1.2.6]#cd /usr/local/nginx
[root@localhost nginx]#ls
client_body_temp fastcgi_temp logs sbin uwsgi_temp
conf html proxy_temp scgi_temp
下面我们可以检测一下nginx的启动配置文件,若无报错就可以启动nginx;root@localhost nginx]#sbin/nginx -t [root@localhost ~]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful (ok成功了)[root@localhost nginx]# sbin/nginx (直接用脚本执行启动nginx,很多朋友习惯在/etc/rc.d/init.d/下做一个启动脚本,然后用chkconfig nginx on把它设置为开机启动。我习惯直接在/etc/rc.d/rc.local文件下直接添加nginx的启动脚本,其实效果也一样)[root@localhost nginx]#ps -ef |grep nginx (查进程看nginx是否启动成功)root 5736 1 0 13:48 ? 00:00:00 nginx: master process sbin/nginxnobody 20277 5736 0 15:06 ? 00:00:00 nginx: worker process(启动成功)查看nginx的端口: [root@localhost nginx]#netstat -nutpl |grep nginx |grep -v greptcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5736/nginx (nginx启动端口为80)nginx启动成功后,我们在浏览器里面输入 该虚拟机ip


这样,我们的nginx就安装ok了。步骤二:安装mysql首先我们先新建用户mysql及用户所属组mysql[root@localhost nginx]#groupadd mysql[root@localhost nginx]#useradd mysql -s /sbin/nologin -g mysql下载mysql在/usr/local/src/下并进行解压安装:[root@localhost nginx]#cd /usr/local/src/[root@localhost src]#wget http://download.chinaunix.net/down.php?id=34728&ResourceID=7159&site=1 (mysql官网上面的mysql企业版现在都要收费,社区版为rpm包;在www.chinauninx.net上有mysql的tar包,我们选择tar安装。)[root@localhost src]#ls mysql-5.0.88.tar.gz nginx-1.2.6.tar.gz[root@localhost src]#tar zxvf mysql-5.0.88[root@localhost src]#cd mysql-5.0.88[root@localhost mysql-5.0.88]#./configure --prefix=/usr/local/mysql[root@localhost mysql-5.0.88]#make ;make install安装若无报错,完成后执行:[root@localhost mysql-5.0.88]#cd /usr/local/mysql/[root@localhost mysql]#chown -R mysql:mysql .[root@localhost mysql]#/usr/local/mysql/bin/mysql_intall_db --user=mysql执行完成该步骤,会有不少提示,如执行/usr/local/bin/mysqld_safe & 来启动mysql进程,/usr/local/mysql/mysqladmin -uroot password '新密码'等;但在我们执行/usr/local/mysql/bin/mysql_intall_db --user=mysql后,在/usr/local/mysql下会自动生成一个var目录,该目录的属主及所属组为root,所以我们得首先执行:[root@localhost mysql]#chown -R mysql:mysql .[root@localhost mysql]#bin/mysqld_safe & (注意,如果我们已经用yum安装过mysql,又害怕用yum remove mysql卸载会卸载多余的包,我们需要先确认mysql进程没有启动,并且将/etc/my.conf移除,不然会报错,无法启动mysql。)查看mysql进程及启动端口是否为3306,来确认mysql是否启动成功:[root@localhost mysql]#ps -ef |grep mysql |grep -v mysqlroot 349 2865 0 13:21 pts/1 00:00:00 /bin/sh bin/mysqld_safemysql 367 349 0 13:21 pts/1 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/localhost.localdomain.pid --skip-external-locking进程确认已经启动[root@localhost mysql]# netstat -nutpl |grep mysqltcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 367/mysqld 端口确认为3306,这样,我们的mysql安装成功。

有时候mysql启动不了,报错如下:


有时候我们安装的mysql不会再安装路径下生成var目录,而会在/var/lib/目录下面生成mysql目录,/var/lib/mysql/ 所以当我们启动的时候会报错,提示没有/tmp/mysql/mysql.sock 。此时我们做一个软连接即可:ln –s /var/lib/mysql/mysql.sock /tmp/mysql/mysql.sock

步骤三:安装php并整合mysql及nginx
将php源码包下载在/usr/local/src/下并进行解压安装[root@localhost mysql]#cd /usr/local/src/[root@localhost src]#wget http://cn2.php.net/get/php-5.4.11.tar.bz2/from/this/mirror[root@localhost src]#tar zxvf php-5.4.11.tar.gz[root@localhost src]#cd php-5.4.11[root@localhost php-5.4.11]#./configure --prefix=/usr/local/php\--enable-fpm\(必须制定这个参数,执行后会生成可执行的fpm ATPI)--with-mysql=/usr/local/mysql/\ --with-mysqli=/usr/local/mysql/bin/mysql_config\(这俩个关于mysql的参数是为了整合mysql)
--with-gd (php连接gd库,要确认系统已安装libpng跟libpng-devel包)
执行完成后,在etc目录下午php-fpm.conf配置文件,但有一个php-fpm.conf.default配置文件,我们将其拷贝或者改名成为php-fpm.conf,一般选择拷贝,留default做备份文件;[root@localhost php-5.4.11]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf完成后我们可以启动php服务,启动服务用/usr/local/php/sbin/php-fpm 查看进程及端口就不在叙述,接下来我们整合nginx:nginx整合php其实很简单,在nginx的配置文件nginx.conf里面子带有加载php的内容,如下: #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; #}我们将该段内容前端的#注释掉,及 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;处指定一下php程序的放置目录即可: location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; }然后,我们在我们指定的php程序的放置目录/usr/local/nginx/html/下新建一个简单的php程序;[root@localhost php-5.4.11]#vim /usr/local/nginx/html/phpinfo.php<?phpphpinfo ();?>保存退出后,先检查nginx的配置有无问题,无报错即重新加载nginx:[root@localhost php-5.4.11]#/usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfulok,无报错;[root@localhost php-5.4.11]#/usr/local/nginx/sbin/nginx -s reload再次查看nginx进程及端口是否正常,确认防火墙及selinux在停止状态,然后再我们的浏览器里面输入我们linux的ip/phpinfo.php进行访问:


测试能否连接上Mysql编辑/usr/local/nginx/html/index.php,添加如下内容:<?php$link=mysql_connect('localhost','root','');if ($link) echo "Successfuly";else echo "Faile";mysql_close();?>保存退出。在浏览器中输入 linux主机的ip/index.php,若出现以下内容,则说明我们的php可以连接到mysql上。




ok,我们的LNMP环境的简单搭建告一段落。

如有不足望指正,万分感谢。

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