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

时间:2021-05-11 20:38:15

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


1准备工作:

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

chkconfig iptables off

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

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

cd /usr/local/src

然后下载 atomic脚本,执行:

wget http://www.atomicorp.com/installers/atomic

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

sh ./atomic

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

yum check-update


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

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卸载的话执行:

yum remove nginx
yum remove mysql
yum remove php

2 安装 Nginx

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

yum install nginx

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

service nginx start

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

chkconfig --levels 235 nginx on

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


3 安装 Mysql

执行:

yum install mysql mysql-server mysql-devel

安装启动mysql

service mysqld start

设置开机启动:

chkconfig --levels 235 mysqld on

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

mysql -h localhost -u root

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


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

update mysql.user set password = PASSWORD('*********') where user='root';

flush privileges;

4安装PHP

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

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,执行:

yum install  php-tidy php-common php-devel php-fpm php-mysql

安装成功后启动,执行:

service php-fpm start

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


设置开机启动

 chkconfig --levels 235 php-fpm on

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


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

mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak

cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf

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

vim /etc/nginx/nginx.conf

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

location ~ \.php$ {    root           /www;    fastcgi_pass   127.0.0.1:9000;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;    include        fastcgi_params;}

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

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

vi /etc/php.ini

来设置

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

service nginx restart && service php-fpm restart

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


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

访问:

cd /etc/nginx

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

mkdir vhost

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

vim vhost/www.test.com.conf

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

server
{
listen 80;
server_name www.test.com;
index index.php index.html;
root /www/test;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location /
{
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$
{
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
access_log /var/log/www.test.com.log;
}

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

vim /etc/nginx/nginx.conf

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

include vhost/*.conf;

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

service nginx restart

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