LNMP环境搭建
环境准备:
RHEL6.5
安装依赖
yum install -y gcc* pcre-devel zlib-devel openssl*
pcre为nginx提供正则支持
zlib为nginx提供文件压缩支持
软件包准备:
nginx-1.0.8.tar.gz
mysql-5.1.55.tar.gz
php-5.3.6.tar.gz
第一步:安装nginx
添加nginx系统用户
1 useradd -M -s /sbin/nologin nginx 2 3 tar -zxf nginx-1.0.8.tar.gz 4 5 cd nginx-1.0.8 6 7 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_stub_status_module 8 --with-http_ssl_module --user=nginx --group=nginx 9 10 make && make install 11 12 ln -sv /usr/local/nginx/sbin/nginx /usr/local/bin
检测nginx配置文件
1 nginx -t -c /usr/local/nginx/conf/nginx.conf
启动nginx服务器访问测试
1 nginx
浏览器访问如图所示:
如果不能访问,修改防火墙规则或关闭防火墙试试
1 iptables -I INPUT -p tcp --dport 80 -j ACCEPT
1 查看nginx进程号 2 cat /usr/local/nginx/logs/nginx.pid 3 关闭nginx进程 4 killall -9 nginx
如图所示
编写nginx服务脚本
1 #!/bin/bash 2 # chkconfig: 2345 99 20 3 # description:Nginx service script 4 5 PLOC="/usr/local/nginx/sbin/nginx" 6 PIDF="/usr/local/nginx/logs/nginx.pid" 7 8 case "$1" in 9 start) 10 $PLOC -t & > /dev/null 11 if [ $? -eq 0 ] ; then 12 $PLOC 13 echo "nginx service start success." 14 else 15 $PLOC -t 16 if 17 ;; 18 19 stop) 20 kill -s QUIT $(cat $PIDF) 21 echo "nginx service stop success." 22 ;; 23 24 restart) 25 $0 stop 26 $0 start 27 ;; 28 29 reload) 30 $PLOC -t &> /dev/null 31 if [ $? -eq 0 ] ; then 32 kill -s HUP $(cat $PIDF) 33 echo "reload nginx config success." 34 else 35 $PLOC -t 36 fi 37 ;; 38 39 *) 40 echo "Usage: $0{start|stop|restart|reload}" 41 exit 1 42 esac
保存退出
1 chmod +x /etc/init.d/nginx 2 3 chkconfig --add nginx
使用脚本启动nginx
1 service nginx start
效果如图所示
第二步MySQL的安装
1 添加mysql系统用户 2 useradd -M -s /sbin/nologin mysql 3 4 tar -zxf mysql-5.1.55.tar.gz 5 6 cd mysql-5.1.55 7 8 ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312 9 10 make && make install 11 12 13 cp ./support-files/my-medium.cnf /etc/my.cnf 14 15 cp ./support-files/mysql.server /etc/init.d/mysqld 16 17 chmod a+x /etc/init.d/mysqld
将mysql服务添加到系统服务列表
1 chkconfig --add mysqld
初始化mysql
1 /usr/local/mysql/bin/mysql_install_db --user=mysql 2 3 chown -R root.mysql /usr/local/mysql/ 4 5 chown -R mysql /usr/local/mysql/var
将mysql库文件添加到系统库文件路径,方便其他程序调用
1 ln -sv /usr/local/mysql/bin/* /usr/local/bin/ 2 3 ln -sv /usr/local/mysql/lib/mysql/* /usr/lib/ 4 5 ln -sv /usr/local/mysql/include/mysql/* /usr/include/
启动mysql服务,为root用户修改密码
1 service mysqld start 2 3 /usr/local/mysql/bin/mysqladmin -uroot password 123456 4 5 /usr/local/mysql/bin/mysql -uroot -p
连接mysql服务器,如图所示
第三步安装php
1 tar -zxf php-5.3.6.tar.gz 2 3 cd php-5.3.6 4 5 ./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=/usr/local/mysql 6 --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm
这里报错
configure: error: libpng.(a|so) not found.
但是使用rpm -qi | grep libpng显示已安装
使用locate libpng.so查找libpng.so相关位置
我的是64位的系统,libpng.so相关的文件都在/usr/lib64/这个目录下,所以需要拷贝到/usr/lib/目录下
cp /usr/lib64/libpng* /usr/lib/
再执行./configure.
1 make && make install
给php添加配置文件php.ini
1 cp ./php.ini-development /usr/local/php/php.ini
将php执行文件添加到系统路径中
1 ln -sv /usr/local/php/bin/* /usr/local/bin/ 2 ln -sv /usr/local/php/sbin/* /usr/local/sbin/
添加php-fpm配置文件
1 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
编辑php-fpm.conf文件
1 vim /usr/local/php/etc/php-fpm.conf 2 显示行号,去掉25,157,162,167前的; 3 将122,123行改为如下所示 4 user=nginx 5 group=nginx
启动php-fpm进程
1 php-fpm 2 netstat -anpt | grep php-fpm
如下图所示
修改上面编写的nginx服务脚本,让nginx和php-fpm进程能够同时启动和关闭
1 vim /etc/init.d/nginx
如下图所示,添加4行代码即可
第四步LNMP环境测试
1 mkdir /var/www/
编辑nginx配置文件,让nginx能够找到php-fpm进程,添加一个虚拟主机
1 vim /usr/local/nginx/conf/nginx.conf 2 3 user nginx; 4 worker_processes 1; 5 6 events { 7 worker_connections 1024; 8 } 9 10 11 http { 12 include mime.types; 13 default_type application/octet-stream; 14 15 sendfile on; 16 17 keepalive_timeout 65; 18 19 server { 20 listen 80; 21 server_name www.nginxtest.com; 22 23 location ~ \.php$ { 24 root /var/www/test; 25 fastcgi_pass 127.0.0.1:9000; 26 fastcgi_index index.php; 27 fastcgi_param SCRIPT_FILENAME /var/www/test/$fastcgi_script_name; 28 include fastcgi_params; 29 } 30 } 31 32 }
保存退出
创建目录
1 mkdir /var/www/test
编辑一个测试脚本
1 vim /var/www/test/index.php
添加内容如下:
1 <?php 2 phpinfo();
如下图所示
测试mysql和php能否正常工作
1 vim /var/www/test/mysql.php
添加内容如下
1 <?php 2 3 $link = mysql_connect('localhost','root','123456'); 4 5 var_dump($link);
如下图所示