本文目的
CentOS 6.2 下通過yum安裝nginx,mysql,php-fpm,redis。
環境準備
一台安裝了CentOS 6.2的機器,可參考教程隨身碟安裝CENTOS 6.2 32位系統(有圖有真相)進行安裝。
為什麼通過yum進行安裝?
在linux上安裝軟體,除了tarball方式以外,就是通過包管理程式來安裝了。yum安裝一個好處是升級非常的方便。當然tarball也有它的好處,產品環境請盡量使用tarball編譯安裝。至於選擇那種方案就見仁見智。
開始安裝
1,如果你不在機器(伍哥實驗的機器IP是192.168.1.100)面前,請通過ssh連上伺服器,最好使用root身份登入
ssh root@letaotao.net.cn
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.100NETMASK=255.255.255.0GATEWAY=192.168.1.1
修改DNS伺服器配置
vim /etc/resolv.conf
nameserver 8.8.8.8nameserver 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; server_name www.bukanshu.com; 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/shPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binfor soft in nginx mysqld php-fpm redisdo 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=autodone
然後執行此指令碼
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://www.u151.com/phpmyadmin/
如果phpmyadmin可以正常操作mysql,則表示系統配置的nginx服務,php-fpm服務,mysql資料庫及redis快取服務一切正常!
在產品環境,請移除phpmyadmin或者把目錄全部許可權關閉:chmod 0000 phpmyadmin