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

原创 2016年05月31日 17:31:59

       前言:之前本小生也尝试过源码安装,即在官网下载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查看你配置的虚拟主机,如果可以访问则成功。





php-fpm以root身份运行

我们执行下面命令看一下其当前运行状态:ps -aux | grep php-fpm其运行用户为 www 我们通过修改php-fpm.conf来修改其运行身份1、我们首先找到php-fpm.confs...
  • chudongfang2015
  • chudongfang2015
  • 2017年05月09日 13:56
  • 823

正确设置 php-fpm子进程用户 提高网站安全性 防止被挂木马

核心总结:php-fpm 子进程所使用的用户,不能是网站文件所有者。 凡是违背这个原则,则不符合最小权限原则。 根据生产环境不断反馈,发现不断有 php网站被挂木马,绝大部分原因是因为权限设置不...
  • u012369749
  • u012369749
  • 2015年12月30日 20:18
  • 1190

centos6.6配置LNMP(linux+nginx+mysql+php)

1.查看版本 # cat /etc/redhat-release CentOS release 6.6 (Final)2.添加防火墙规则 注意:这里如果是关闭防火墙,会造成外网无法访问,必须是添加...
  • gsls200808
  • gsls200808
  • 2015年11月05日 22:14
  • 842

centos7上部署php+mysql+nginx

在centos7上部署php+mysql+nginx。找了很多资料,都不是很可靠,现在在写一份资料以便新手部署 首先保证Centos7已经安装完毕,正常运行。 分5步介绍nginx,my...
  • luochaolun
  • luochaolun
  • 2017年03月31日 20:55
  • 1250

PHP-FPM配置及使用总结

PHP-FPM是一个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中,我们必须将其patch到PHP源代码中,然后再行编译才能使用。而现...
  • why_2012_gogo
  • why_2012_gogo
  • 2016年04月10日 13:33
  • 13898

PHP-FPM性能优化参考

这两天发现网站卡的要命,但是奇怪的是 负载均衡、内存、磁盘输入输出、CPU都是正常的,我发现tcp的close_wait状态的连接特别多,那应该是nginx或者php的问题啦; 转载一篇关于P...
  • guoshenglong11
  • guoshenglong11
  • 2016年09月08日 16:06
  • 3172

CentOS6.5搭建LNMP

1:查看环境: 1 2 [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Fin...
  • baikeliang
  • baikeliang
  • 2015年05月13日 15:27
  • 497

CentOS7 LNMP环境搭建

centos7 的LNMP环境搭建
  • hegeng84
  • hegeng84
  • 2016年07月14日 20:45
  • 579

php-fpm安装、配置与优化

转载自:https://www.zybuluo.com/phper/note/89081 1、php中fastcgi和php-fpm是什么东西 最近在研究和学习php的性能方面的知识,看到...
  • ivan820819
  • ivan820819
  • 2017年02月10日 14:44
  • 6288

如何让你的fedora25的php7支持mysql?

首先,新装好的fedora25是自带apache和php7的,直接能用,可以解析.php,但却无法链接mysql数据库。 yum install mysql 会安装mariadb,mysql的一个...
  • baidu_35085676
  • baidu_35085676
  • 2017年02月04日 20:47
  • 753
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux(CentOS6.x)下使用yum软件管理工具安装LNMP(Nginx+PHP+Mysql)环境并配置虚拟主机vhost
举报原因:
原因补充:

(最多只允许输入30个字)