开源高效之LNMP环境搭建
LNMP是一个缩写,指的是一组一起使用来运行动态网站或者服务器的自由软件:包括Linux操作系统、Nginx网络服务器、MySQL数据库和PHP、Perl或者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(你要将安装的源码包上传到服务器上( ⊙ o ⊙ )!)
先安装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
在客户端测试一下:
好了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设置密码,加强安全
mysqladmin -u root -p password "love123"
指定库路径
在/etc/ld.so.conf.d/目录下新建一个mysql.conf文件添加mysql的库路径入下一句话:
/usr/local/mysql/lib/
在执行命令ldconfig 重新让系统加载
ldconfig -pv |grep mysql 查看是否加载
指定头文件
建立一个软连接即可
ln -s /usr/local/mysql/include/ /usr/include/mysql
设置开机启动
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文件如下:
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配置文件如下:
重启nginx
pkill nginx 杀死进程
nginx 启动 也也已直接使用一条命令pkill -1 nginx
8、测试
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php 一个小的php代码调用php
编辑index.php如下:
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环境已经搭建好了。。。。