Linux(CentOS6.x)下使用yum软件管理工具安装LNMP(Nginx+PHP+Mysql)环境并配置虚拟主机vhost

 前言:之前本小生也尝试过源码安装,即在官网下载nginx,php,mysql的tar包然后手工一步一步的搭建,但是期间发现,每个软件在linux环境运行时都需要大量的依赖包,比如nginx需要gcc等,php需要pcre等,都需要逐个的去官网找安装包安装,比较麻烦和繁琐,尤其是在安装前执行配置环境变量./configure 时,稍不留神或者之前少安装了某个依赖包,那就是频繁的报错和调试了,对于有时间做研究来说是可以提高经验和熟知原理,但是在工作重心放在开发上,想要快速搭建环境来讲,还是推荐大家使用CentOS自带的yum软件管理工具来实现,比较方便快捷,下面我们来搭建环境:


1准备工作:

 关闭防火墙 (老百姓专用),执行

[plain]  view plain  copy
  1. chkconfig iptables off  

 配置CentOS 6.x 第三方yum源(CentOS默认的标准源里没有nginx软件包),第三方软件源很多,我选用的是 atomic 软件源,当然还有其他输入Adobe等很多软件源可选。

 首先安装atomic软件源的脚本,找一个下载存放的目录,我的是 /usr/local/src 执行:

[plain]  view plain  copy
  1. cd /usr/local/src  

然后下载 atomic 脚本,执行:

[plain]  view plain  copy
  1. wget http://www.atomicorp.com/installers/atomic  

下载后执行这个脚本,给yum添加 atomic 源的软件支持,执行:

[plain]  view plain  copy
  1. sh ./atomic  

执行后可以运行一下 yum check-update 来看看是否需要有更新的软件,执行:

[plain]  view plain  copy
  1. yum check-update  


执行过后,我们来安装Nginx所必要的依赖包和环境,依靠yum的话只要输入对软件名称,yum全搞定,执行:

[plain]  view plain  copy
  1. yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel  

如果你不确定你的主机是否之前装了环境,可以先卸载一下,这里给出yum卸载方法,如果是源码安装的话需要逐个卸载,yum卸载的话执行:

[plain]  view plain  copy
  1. yum remove nginx  
  2. yum remove mysql  
  3. yum remove php  

2 安装 Nginx

下面安装Nginx,由于前边已经做好准备,后边很简单的执行:

[plain]  view plain  copy
  1. yum install nginx  

一切自动安装完后,启动Nginx的服务:

[plain]  view plain  copy
  1. service nginx start  

如需系统开机启动则执行:

[plain]  view plain  copy
  1. chkconfig --levels 235 nginx on  

这里设置了linux下235级别启动


3 安装 Mysql

执行:

[plain]  view plain  copy
  1. yum install mysql mysql-server mysql-devel  

安装启动mysql

[plain]  view plain  copy
  1. service mysqld start  

设置开机启动:

[plain]  view plain  copy
  1. chkconfig --levels 235 mysqld on  

由于Mysql默认安装后的账号密码均为root,你可能需要修改密码,执行

[plain]  view plain  copy
  1. mysql -h localhost -u root  

输入默认密码root(有的没有默认密码,直接回车)


执行sql语句来修改mysql密码,也可以修改配置文件,这里修改密码的sql语句为:

[plain]  view plain  copy
  1. update mysql.user set password = PASSWORD('*********') where user='root';  
  2.   
  3. flush privileges;  

4安装PHP

首先安装PHP需要依赖的环境,依旧是直接yum安装,执行:

[plain]  view plain  copy
  1. yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap   

然后安装php,执行:

[plain]  view plain  copy
  1. yum install  php-tidy php-common php-devel php-fpm php-mysql  

安装成功后启动,执行:

[plain]  view plain  copy
  1. service php-fpm start  

这里我装的是php5.4以上的版本,所以启动fpm。


设置开机启动

[plain]  view plain  copy
  1. chkconfig --levels 235 php-fpm on  

到此,Nginx,PHP,Mysql已经都安装完毕并且开始运行了,由于yum软件管理工具都是选取列入软件的最稳定版本(注意并不是老旧的版本,软件源会更新到最新的稳定版)来安装到你的机器上,也就是说软件的版本在你安装的时候不会被选择,而是yum给你安哪个就是哪个,如果需要最新版则需要手工去更新rpm管理包,但是yum所下载的最稳定版本已经基本够线上建站,工作,学习使用了,下面我们来配置使Nginx支持PHP


首先备份一下Nginx配置文件,并使用默认的配置文件,依次执行:

[plain]  view plain  copy
  1. mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak  
  2.   
  3. cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf  

之后 修改nginx配置文件,添加fastcgi支持(使Nginx可以解析PHP脚本,有时遇到虽然路径配对了,但是不显示php页面却把页面给下载了,就是这块没起作用),执行:

[plain]  view plain  copy
  1. vim /etc/nginx/nginx.conf  

打开后在server作用域括号内找到index  index.html index.htm;这行,在后边添加上index.php,这样可以默认找到php文件的首页,之后找到被注释了的FastCGI作用域,然后把前边注释符号#去掉,类似:

[plain]  view plain  copy
  1. location ~ \.php$ {  
  2.     root           /www;  
  3.     fastcgi_pass   127.0.0.1:9000;  
  4.     fastcgi_index  index.php;  
  5.     fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;  
  6.     include        fastcgi_params;  
  7. }  

注:root参数是你网站的根目录,我设定的是根目录下的www目录

之后,最好修改一下php的系统时间,也就是差八小时那个问题,并设置一下cgi.fix_pathinfo = 1 来防止坏蛋用二进制代码通过php上传来恶意搞你,可以访问 :

[plain]  view plain  copy
  1. vi /etc/php.ini  

来设置

最后,重启Nginx和php-fpm来更新我们的配置,执行:

[plain]  view plain  copy
  1. service nginx restart && service php-fpm restart  

现在,我们就可以运行php文件了,在你的根目录下,创建一个index.php文件,里面输出phpinfo()函数,然后通过主机ip,我这里是http://10.3.130.46/index.php,访问,如果出现正确的输出,证明环境搭建完毕。


在开发和学习中,我们可能需要很多的虚拟主机来安置不同的网站和开发任务,yum安装后搭建虚拟主机的方法如下:

访问:

[plain]  view plain  copy
  1. cd /etc/nginx  

在这个文件夹下建立一个vhost文件夹,执行:

[plain]  view plain  copy
  1. mkdir vhost  

然后在这个目录内建立一个你的虚拟站点的配置文件,我这里起名叫www.test.com.conf,执行:

[plain]  view plain  copy
  1. vim vhost/www.test.com.conf  

打开后加入这个虚拟站点的基本配置,根目录(之前在/www下建好test目录)和php支持等,如下:

[plain]  view plain  copy
  1. server  
  2.         {         
  3.                 listen       80;  
  4.                 server_name www.test.com;  
  5.                 index index.php index.html;  
  6.                 root  /www/test;  
  7.                 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  
  8.                         {         
  9.                                 expires      30d;  
  10.                         }  
  11.                 location ~ .*\.(js|css)?$  
  12.                         {         
  13.                                 expires      12h;  
  14.                         }  
  15.                 location /  
  16.                 {         
  17.                         try_files $uri $uri/ /index.php$is_args$args;  
  18.                 }  
  19.                 location ~ \.php$  
  20.                 {         
  21.                         try_files $uri =404;  
  22.                         fastcgi_pass  127.0.0.1:9000;  
  23.                         fastcgi_index index.php;  
  24.                         include fcgi.conf;  
  25.                 }  
  26.                 access_log  /var/log/www.test.com.log;  
  27.         }  

保存完毕后,我们需要在nginx主配置文件nginx.conf中引入vhost内的配置文件,执行:

[plain]  view plain  copy
  1. vim /etc/nginx/nginx.conf  

在http作用域括号内,server作用域括号外,我这里选择了放在server结束大括号下边,添加

[plain]  view plain  copy
  1. include vhost/*.conf;  

保存,之后重启nginx,执行:

[plain]  view plain  copy
  1. service nginx restart  

在本机绑定了host之后,浏览器访问www.test.com查看你配置的虚拟主机,如果可以访问则成功。

猜你喜欢

转载自blog.csdn.net/angelo_gs/article/details/80602518