代码说

code is poetry

代码说    
碎碎念:和我一起翱翔在那片无边的天际,一起看见那许多命运惊奇和神秘般的人生绮丽 --- 街角的蔷薇。  换一换

虚拟机下安装centos及部署LNMP环境

作者:coderzheng 发布于:2014-9-11 21:30 Thursday 分类:other  阅读模式

  1. 前言
  2. 安装virtual box
  3. 安装centos
  4. 安装nginx
  5. 安装mysql
  6. 安装php-fpm
 

一、前言

工作环境下,我们一般使用windows系统,因为需要使用qq、foxmail或者outlook等常用办公软件。因此,要部署一个lnmp环境一般都是先安装虚拟机,然后再在虚拟机中安装linux操作系统以及相关开发环境。当然你也可以安装双系统,即将整个硬盘多分出一个分区,用这个分区来安装另一个操作系统。但是这种情况下,你只能一次进一个系统。所以工作状态下,想要两者兼得只能选择安装虚拟机。
 

二、安装virtual box

在这个页面:https://www.virtualbox.org/wiki/Downloads下载相应的安装程序,安装即可。
 

三、安装centos

这里需要先准备一个centos的镜像文件(去下载或者别的地方copy),文件比较大下载需耐心,^^。下载完成后我们开始在虚拟机中安装centos了: 打开virtual box后点击新建,如下图:

需要特别注意的是:在第二张图,之所以设置内存为800M,是因为如果内存太小,centos启动之后只能进入文字模式(无法以图形界面的方式启动)。 之后的几个步骤一路点击Next按钮即可。
设置完成之后,点击菜单栏中的启动,之后会弹出一个窗口让你选择下载好的镜像文件。如下图:

选择好之后按启动按钮即可完成centos的安装。关于centos的安装过程我们就不多说了,请直接google。

在虚拟机中搭建linux环境(CentOS),之后建立SecureCRT和虚拟机之间的联接(ssh)
修改/etc/sysconfig/network-scripts/ifcfg-eth0: 将ONBOOT=no改成ONBOOT=yes
这样,虚拟机就会开机自动联网,你就不用再使用图形界面登入操作系统和进行任何联网操作了(不联网无法使SecureCRT联接上虚拟机中的操作系统!)

之后我们就可以修改操作系统的这个文件:
/etc/inittab: 将默认值5改成3,这样虚拟机中的操作系统启动之后默认都是通过文字界面启动。

至此,我们以后任何操作都可以在SecureCRT中进行(命令行)了.

在命令行登入centos系统中,接下来我们开始部署lnmp环境。

1.关闭防火墙
[root@CentOS ~]# chkconfig iptables off

2.关闭selinux
vi /etc/sysconfig/selinux 
//将SELINUX=enforcing修改为disabled然后重启生效

3、配置CentOS 6.0 第三方yum源(CentOS默认的标准源里没有nginx软件包)
[root@CentOS ~]# yum install wget
//下载wget工具
[root@CentOS ~]# wget http://www.atomicorp.com/installers/atomic
//下载atomic yum源
[root@CentOS ~]# sh ./atomic
//安装提示输入时输yes
[root@CentOS ~]# yum check-update
//更新yum软件包


4.安装开发包和库文件
[root@CentOS ~]# 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


5.卸载已安装的apache、mysql、php
[root@CentOS ~]# yum remove httpd
[root@CentOS ~]# yum remove mysql
[root@CentOS ~]# yum remove php

 
6.安装nginx
[root@CentOS ~]# yum install nginx
[root@CentOS ~]# service nginx start
[root@CentOS ~]# chkconfig --levels 235 nginx on
//设2、3、5级别开机启动

 
7.安装mysql
[root@CentOS ~]# yum install mysql mysql-server mysql-devel
[root@CentOS ~]# service mysqld start
[root@CentOS ~]# chkconfig --levels 235 mysqld on
[root@CentOS ~]# mysqladmin -u root password "123456"
//为root用户设置密码
[root@CentOS ~]# service mysqld restart
//重启mysql

 
8.安装php
[root@CentOS ~]# 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-tidy php-common php-devel php-fpm
//安装php和所需组件使PHP支持MySQL、FastCGI模式
[root@CentOS ~]# service php-fpm start
[root@CentOS ~]# chkconfig --levels 235 php-fpm on


9.配置nginx支持php
[root@CentOS ~]# mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
//将配置文件改为备份文件
[root@CentOS ~]# cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
//由于原配置文件要自己去写因此可以使用默认的配置文件作为配置文件
//修改nginx配置文件,添加fastcgi支持
[root@CentOS ~]# vi /etc/nginx/nginx.conf
index index.php index.html index.htm;
//加入index.php
location ~ \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
}
//将以上代码注释去掉,并修改成nginx默认路径


10.配置php
//编辑文件php.ini,在文件末尾添加cgi.fix_pathinfo = 1
[root@CentOS ~]# vi /etc/php.ini


11.重启nginx php-fpm
[root@CentOS ~]# service nginx restart
[root@CentOS ~]# service php-fpm restart


12.建立info.php文件
[root@CentOS ~]# vi /usr/share/nginx/html/info.php
<?php
   phpinfo();
?>


13.测试nginx是否解析php
输入:192.168.1.105/info.php
显示php界面说明解析成功

配置文件路径详解(默认安装路径):
mysql: 
     /etc/my.cnf
     /usr/bin/

nginx:
     /etc/nginx/nginx.conf
     /etc/nginx/sites/*.conf
     /usr/sbin/     

php-fpm:
     /usr/sbin/
     /etc/php-fpm.conf
     /etc/php-fpm.d/www.conf (9000端口就是在这里设置)
     service php-fpm reload
     
php:
     /etc/php.ini

memcached:
     /usr/bin/memcached
     ./memcached -d -u nobody -m 512 127.0.0.1 -p 11211
     kill ·cat /tmp/memcached.pid·

ktserver:
     /usr/local/sh
     ./kt_start.sh
     ./kt_stop.sh


接下来我们进行一个具体网站的配置:
     我们先修改nginx.conf配置文件,在行尾加一行include sites/*.conf,然后新建一个sites文件夹,并新建dev.test.z.conf,内容如下:
server
  {

    listen      80;

    server_name dev.test.z;
    index index.html index.htm index.php;
    root  /home/www/dev.test.z;
   
    if (!-e $request_filename) {
        rewrite ^.*$ /index.php last;
        break;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
    {
      expires      1h;
      access_log off;
    }

    location ~ .*\.(php|php5)?$
    {
      fastcgi_pass  127.0.0.1:9000; 
       // 9000端口是nginx将php请求转交给php-fpm处理的关键,因为fpm默认设置里面也是使用这个端口!
      fastcgi_index index.php;
      include fcgi.conf;
    }

    location ~ ^/templates/.*$
    {
        deny all;
    }

    access_log  logs/host.access.log  main;

  }

接着我们修改本机host文件:
vi /etc/hosts
加入下面的内容:
127.0.0.1 localhost;
127.0.0.1 dev.test.z;

重启nginx, network;
>service nginx restart
>service network reload

打开浏览器,访问http://dev.test.z,就能看到我们网站里面的内容了(先创建文件夹和php文件!),

接下来我们继续部署一个samba服务,共享操作系统中的项目文件夹,这样我们就不用跑到linux环境下去修改文件,直接在本地操作从linux系统中共享出来的文件就可以了。

全文完。


标签: lnmp环境搭建

你可以发表评论、引用到你的网站或博客,或通过RSS 2.0订阅这个博客的所有文章。
上一篇: 在linux中部署samba服务  |  下一篇:一次更新引发的惨案