开源高效之LNMP环境搭建

LNMP是一个缩写,指的是一组一起使用来运行动态网站或者服务器的自由软件:包括Linux操作系统、Nginx网络服务器、MySQL数据库和PHPPerl或者Python。由于它们的开源廉价,这个组合开始流行,LNMP正在进军主流计算机市场。 

Nginx是一个小巧而高效的Linux下的Web服务器软件,它占用资源少,支持并发连接数多,及相当稳定,尤其作为反向代理服务器性能最佳, Nginx 同时也是一个非常优秀的邮件代理服务器及在CDN网络架构中的分发装置来实现负载均衡,官网http://nginx.org

MySQL是一个小型关系型数据库管理系统,它的体积小、速度快、成本低,称为中小型企业的首选。官网http://www.mysql.com/

PHP是一种HTML内嵌式的语言,它是开源、免费的,并且使用非常广泛。PHP 无疑是一种高效率的选择

好了,下面开始LAMP的搭建之旅

1、准备好所需的源码包如下:

nginx-1.0.11.tar.gz

mysql-5.5.15-linux2.6-i686.tar.gz

php-5.3.7.tar.bz2

phpMyAdmin-2.11.10.1-all-languages.zip

你可以分别到他们的官网去下载最新版本如果需要

2、必须查看linux系统的预编译环境命令yum grouplist

Legacy Software Development  传统的软件开发

Development Libraries   开发库

Development Tools   开发工具

X Software Development   X图形界面下的开发或者使用Gnome或是Kde图形界面

以上四个组安装了就会省去安装很多依赖。

如果没安装,用yum groupinstall  "Legacy Software Development" 命令来一一进行安装

3、开始安装nginx(你要将安装的源码包上传到服务器上⊙ ⊙ )!)

       先安装pcre-devel  及建立nginx服务的指定组及用户

       yum -y install pcre-devel 

       groupadd -r nginx

       useradd -r -g nginx -s /bin/false -M nginx

     下面安装nginx-1.0.11.tar.gz

     tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src   解压缩到/usr/local/src/

      cd /usr/local/src/nginx-1.0.11/   切换到解压缩的目录

      ./configure    \            由于参数比较多加一个'"\" 换行输入参数

      --prefix=/usr/local/nginx  \   指定安装目录

      --sbin-path=/usr/sbin/nginx \ 

      --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    支持正则表达式,很重要

   编译安装

make

make  install

   启动nginx服务器并查看端口

   nginx   启动nginx命令

   netstat -tupln |grep nginx

  tcp       0     0 0.0.0.0:80    0.0.0.0:*         LISTEN      10201/nginx: master 

   在客户端测试一下:

开源高效之LNMP环境搭建_LNMP

好了nginx已经开始工作了,为了启动方便,你可以下载一个nginx启动脚本,并添加一下开机启动会更好。

4、安装Mysql 

tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/mysql/     声明一下:这个包是一个已经编译好的绿色包,只需要配置一下就可以,节省时间。。。。

cd /usr/local/mysql/

groupadd -r mysql    建立mysql

useradd -r -g mysql -s /sbin/nologin -M mysql  建一个mysql自己的用户

cd /usr/local/mysql/ 切换到mysql目录

chown -R mysql.mysql .   .”表示当前目录

scripts/mysql_install_db --user=mysql  初始化mysql数据库

chown -R root .         改回以前的root用户              

chown -R mysql data

cp support-files/my-medium.cnf /etc/my.cnf  mysql的内存文件

cp support-files/mysql.server /etc/init.d/mysqld  mysql的启动脚本

service mysqld start  启动mysql

[root@localhwsm mysql]# netstat -tupln |grep mysql  查看端口

tcp        0      0 :::3306            :::*         LISTEN      10736/mysqld 

编辑/etc/profile文件,加入一下内容

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

执行source  /etc/profile命令 使之立即生效

登录mysql,查看数据库开源高效之LNMP环境搭建_LNMP环境的搭建_02

 

mysql设置密码,加强安全

mysqladmin -u root -p password "love123" 

指定库路径 

/etc/ld.so.conf.d/目录下新建一个mysql.conf文件添加mysql的库路径入下一句话:

/usr/local/mysql/lib/

在执行命令ldconfig  重新让系统加载

ldconfig -pv |grep mysql 查看是否加载

开源高效之LNMP环境搭建_LNMP环境_03

指定头文件

建立一个软连接即可

ln -s /usr/local/mysql/include/ /usr/include/mysql

设置开机启动

开源高效之LNMP环境搭建_LNMP环境的搭建_04 

5、安装PHP

先安装 libmcrypt-2.5.8.tar.gz mhash-0.9.9.9.tar.gz、 mcrypt-2.6.8.tar.gz这三个依赖

tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/local/src 

/usr/local/src/libmcrypt-2.5.8

Cd  /usr/local/src/libmcrypt-2.5.8

./configure

Make

Make install

tar -zxvf mhash-0.9.9.9.tar.gz -C /usr/local/src

cd /usr/local/src/mhash-0.9.9.9/

./configure

Make

Make install

为上面两个建立一个到/usr/lib的软连接解决mcrypt的依赖

ln -s /usr/local/lib/libmcrypt* /usr/lib 

ln -s /usr/local/lib/libmhash.* /usr/lib/

tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/local/src/

Cd  /usr/local/src/mcrypt-2.6.8

./configure

Make

Make install

 tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src  解压缩到/usr/local/src/目录下

 cd /usr/local/src/php-5.3.7/   

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop  --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap --enable-mbstring

make     //编译

make install   //安装

cp  /usr/local/src/php-5.3.7  php.ini-development  /usr/local/php/php.ini  将php的配置文件拷贝到php的安装目录 

ln -s /usr/local/php/bin/php /usr/bin/

    这里使用nginx调用php的时候使用fpm的方式,我所用的php 5.3.7加入了对php-fpm的支持了,不需要额外安装了

[root@localhwsm php]# cp etc/php-fpm.conf.default  etc/php-fpm.conf  在php安装目录下

编辑php-fpm.conf文件如下:

开源高效之LNMP环境搭建_LNMP_05

mkdir /var/run/php-fpm

/usr/local/php/sbin/php-fpm    启动php-fpm
启动错误解决:
ALERT: [pool www] pm.min_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.min_spare_servers 去除;,注意非注释内容pm.min_spare_servers
ALERT: [pool www] pm.max_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.max_spare_servers 去除;,同样非注释内容pm.max_spare_servers
WARNING: [pool www] pm.start_servers is not set. It's been set to 20.
编辑php-fpm.conf找到pm.start_servers 去除;,同样非注释内容pm.start_servers
ERROR: bind() for address '127.0.0.1:9000' failed: Address already in use (98)
# netstat -ntlpps -ef|grep php查看进程,N多进程
nobody 26152 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26153 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26154 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26155 26151 0 15:45 ? 00:00:00 php-fpm: pool www
...........................
#killall php-fpm 结束所有php-fpm进程
再启动php-fpm
#/usr/local/php/sbin/php-fpm
成功   

7、修改nginx.conf配置文件如下: 

开源高效之LNMP环境搭建_LNMP_06 

重启nginx 

pkill  nginx     杀死进程

nginx           启动 也也已直接使用一条命令pkill -1 nginx 

8、测试

echo "<?php phpinfo();  ?>" > /usr/local/nginx/html/index.php  一个小的php代码调用php

开源高效之LNMP环境搭建_LNMP_07

编辑index.php如下:

开源高效之LNMP环境搭建_LNMP环境_08

开源高效之LNMP环境搭建_LNMP环境的搭建_09

9、安装phpmyadmin

unzip phpMyAdmin-2.11.10.1-all-languages.zip  解压缩

mv phpMyAdmin-2.11.10.1-all-languages /usr/local/nginx/html/phpmyadmin   转移到html目录下并改名phpmyadmin

 cd /usr/local/nginx/html/phpmyadmin/  切换到该目录下

 cp config.sample.inc.php config.inc.php

 vim config.inc.php 如下:

开源高效之LNMP环境搭建_LNMP_10

在客户端访问

开源高效之LNMP环境搭建_LNMP环境_11

输入用户名密码即可,至此基本的LNMP环境已经搭建好了。。。。