伍哥原創之安裝nginx,mysql,php-fpm,redis

【伍哥原創】
v1.0 2012-6-4 初稿
v1.1 2012-6-5 更新,增長php-redis模塊的編譯安裝php

【正文】
本文目的
CentOS 6.2 下經過yum安裝nginx,mysql,php-fpm,redis。html

環境準備
一臺安裝了CentOS 6.2的機器,可參考教程U盤安裝CENTOS 6.2 32位系統(有圖有真相)進行安裝。mysql

爲何經過yum進行安裝?
在linux上安裝軟件,除了tarball方式之外,就是經過包管理程序來安裝了。yum安裝一個好處是升級很是的方便。固然tarball也有它的好處,產品環境請儘可能使用tarball編譯安裝。至於選擇那種方案就見仁見智。linux

開始安裝
1,若是你不在機器(伍哥實驗的機器IP是192.168.1.100)面前,請經過ssh連上服務器,最好使用root身份登陸
ssh root@192.168.1.100nginx

2,確認你的機器連上網絡(若是網絡都沒有,還能yum嗎?)
ping -c4 mirrors.163.comgit

若是不能ping通,請依次處理:
修改機器的IP配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0github

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.confweb

nameserver 8.8.8.8
nameserver 8.8.4.4

修改網絡配置
vim /etc/sysconfig/networkredis

NETWORKING=yes

重啓網絡
/etc/init.d/network restartsql

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

相關文章
相關標籤/搜索