【伍哥原創】
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