伍哥原创之安装nginx,mysql,php-fpm,redis

我们两清 提交于 2019-12-05 06:24:51

【伍哥原创】
v1.0 2012-6-4 初稿
v1.1 2012-6-5 更新,增加php-redis模块的编译安装

【正文】
本文目的
CentOS 6.2 下通过yum安装nginx,mysql,php-fpm,redis。

环境准备
一台安装了CentOS 6.2的机器,可参考教程U盘安装CENTOS 6.2 32位系统(有图有真相)进行安装。

为什么通过yum进行安装?
在linux上安装软件,除了tarball方式以外,就是通过包管理程序来安装了。yum安装一个好处是升级非常的方便。当然tarball也有它的好处,产品环境请尽量使用tarball编译安装。至于选择那种方案就见仁见智。

开始安装
1,如果你不在机器(伍哥实验的机器IP是192.168.1.100)面前,请通过ssh连上服务器,最好使用root身份登录
ssh root@192.168.1.100

2,确认你的机器连上网络(如果网络都没有,还能yum吗?)
ping -c4 mirrors.163.com

如果不能ping通,请依次处理:
修改机器的IP配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
HWADDR="00:15:58:1D:43:DA"
NM_CONTROLLED="no"
ONBOOT="yes"
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

修改DNS服务器配置
vim /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

修改网络配置
vim /etc/sysconfig/network

NETWORKING=yes

重启网络
/etc/init.d/network restart

3,配置CentOS-Base.repo的bashurl为 mirrors.163.com,这样yum下载安装包就快很多了
vim /etc/yum.repos.d/CentOS-Base.repo
把所有mirrorlist的行都加上#,把所有baseurl的#去掉,把域名修改为mirrors.163.com,例如:
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ (其他类似操作)

4,安装yum-priorities
yum install yum-priorities

5,增加其他的软件库epel和remi,因为remi依赖epel,所以先加入epel,再加入remi
rpm -Uvh http://mirrors.ustc.edu.cn/epel/6/i386/epel-release-6-7.noarch.rpm
接着编辑epel的repo配置文件
vim /etc/yum.repos.d/epel.repo
把所有mirrorlist的行都加上#,把所有baseurl的#去掉,把域名修改为mirrors.ustc.edu.cn,例如:
baseurl=http://mirrors.ustc.edu.cn/epel/6/$basearch (其他类似操作)

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

6,修改epel和remi的repo配置文件的优先级
vim /etc/yum.repos.d/epel.repo
然后每一项都加上priority=10
vim /etc/yum.repos.d/remi.repo
也是每一项都加上priority=10

7,yum安装nginx,mysql,php-fpm及相关模块,redis (一次安装这么多东东,爽!)
分别是nginx,mysql客户端,mysql服务器,php及相关模块,memcache模块,php加速器eaccelerator

yum install nginx mysql mysql-server php php-fpm php-cli php-pdo php-mysql php-mcrypt php-mbstring php-gd php-tidy php-xml php-xmlrpc php-pear php-devel php-pecl-memcache php-eaccelerator

8,增加系统用户web(nginx和php-fpm将以此用户身份运行)和web目录
useradd -r web
mkdir /web

9,配置及启动nginx
vim /etc/nginx/nginx.conf
把里面的user项改为web

vim /etc/nginx/conf.d/default.conf
并修改成

server {
    listen  80;
    root   /web; #根目录
    autoindex on; #当没有index文件时显示目录,在产品环境请设置为off
    location / {
        index  index.php index.html index.htm;
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  
                       $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

提醒:每个配置都必须以分号结束;fastcgi_param应使用$document_root代替hard-code的路径。

把nginx加入为开机启动项目
chkconfig nginx on
启动nginx
/etc/init.d/nginx start

10,启动并配置mysql
mysql比较特别点,需要先启动,然后配置
/etc/init.d/mysqld start

配置root密码
mysql_secure_installation
由于root没有初始密码,所以当提示输入密码时,直接按回车跳过,然后配置root密码,其他都直接按回车使用默认

把mysqld加入为开机启动项目
chkconfig mysqld on

11,启动redis,并安装php-redis模块
把redis加入为开机启动项目
chkconfig redis on
启动redis服务
/etc/init.d/redis start

先把开发工具组相关的包装一下
yum groupinstall “development tools”
然后开始编译安装php-redis模块
cd /tmp
wget https://github.com/nicolasff/phpredis/zipball/master -O php-redis.zip
unzip php-redis.zip
解压后目录是:nicolasff-phpredis-21d6614
cd nicolasff-phpredis-21d6614
phpize
./configure
make
make install
确认一下so文件已经放置到正确目录
ll /usr/lib/php/modules/redis.so
新建redis.ini,然后加入 extension=redis.so,以启用redis extension
vim /etc/php5/fpm/conf.d/redis.ini

12,配置并启动php-fpm
vim /etc/php-fpm.d/www.conf
把里面的user和group项改为web

vim /etc/php.ini
找到display_errors,把off改成on,这个设置是为了方便后面的调试,产品环境请设置为off
找到session.save_handler,把files改成redis
找到session.save_path,改成session.save_path = “tcp://127.0.0.1:6379?timeout=2″

把php-fpm加入为开机启动项目
chkconfig php-fpm on
启动fmp服务
/etc/init.d/php-fpm start

13,通过shell脚本检查各个进程和服务
vim check.sh
增加代码

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
for soft in nginx mysqld php-fpm redis
do
    echo -e "-------------------- stat of $soft --------------------"
    /etc/init.d/$soft status; echo -e " "
    ps aux|grep $soft --color=auto; echo -e " "
    netstat -ntulp|grep $soft --color=auto
done

然后执行此脚本
sh check.sh
查看各个进程和服务的状态(注意红色高亮字体哦)

14,安装mysql管理工具phpmyadmin
cd /web
wget http://nchc.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.1/phpMyAdmin-3.5.1-english.tar.gz
tar zxvf phpMyAdmin-3.5.1-english.tar.gz
mv phpMyAdmin-3.5.1-english phpmyadmin
chown -R web.web phpmyadmin
cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php

15,打开80端口
vim /etc/sysconfig/iptables
在-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT加上一句
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
然后重启iptables
/etc/init.d/iptables restart

16,访问phpmyadmin

http://192.168.1.100/phpmyadmin/

如果phpmyadmin可以正常操作mysql,则表示系统配置的nginx服务,php-fpm服务,mysql数据库及redis缓存服务一切正常!
在产品环境,请移除phpmyadmin或者把目录全部权限关闭:chmod 0000 phpmyadmin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!