`

linux Red Hat 4.1.2下nginx+php-fpm+mysql安装配置全记录

阅读更多

一:MYSQL 安装与配置
○1 下载mysql包。
○2 创建MYSQL帐号并加入组群
groupadd mysql
useradd -g mysql mysql  
○3 解压安装包。
tar -zxvf mysql-5.0.91.tar.gz
cd mysql-5.0.91
○4 建立makefile,将MYSQL数据库服务器安装到/usr/local/mysql 下
./configure --prefix=/usr/local/mysql
○5 编译文件
make
○6 安装文件
make install
○7 安装完成后配置相关文件
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cd /usr/local/mysql
chown -R mysql.mysql .
./bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var
○8 安装完成启动MYSQL数据库服务
/usr/local/mysql/bin/mysqld_safe –user=mysql &
○9 进入MYSQL
/usr/local/mysql/bin/mysql -uroot
      Welcome to the MySQL monitor.  Commands end with ; or "g.
      Your MySQL connection id is 3 to server version: 5.0.22-log
      Type 'help;' or '"h' for help. Type '"c' to clear the buffer.
      mysql>
 ================ 出现以上代码说明已经进入,如果希望有图形化管理数据库可以在
PHP 装好配置好后,下载一个 phpmyadmin 来管理MYSQL数据库===================  

 

二:php5.3安装

先需要安装新的libxml2, 下载libxml2-2.7.1.tar.gz :
$>tar xfz libxml2-2.7.1.tar.gz


○注意这里是个重点咯,如果这步不做你将无法成功安装PHP ,由于linux 9 自带的libxml2
实在忒老,只能重新安装一个,这时候就出现一个问题咯,我们给先卸载掉系统自带的
libxml2,而且是彻底卸除哦。如果在图形化界面的化必须进入命令行操作,因为如果在图
形化下当libxml2 卸载后图形化界面暂时是无法使用,等新版本安装好后要拷贝一个新版
的.so文件才能使用。我们输入一下命令完成卸载工作。
init 3    // 进入字符界面
rpm –qa | grep libxml    //查看老版本的软件的依存关系,把显示的依存关系全部卸除。
rpm –e –nodeps  文件名(不需要跟版本号) //使用这条命令依次卸除
○卸除完老版本后, 我们现在安装新版本的libxml2 吧
cd libxml2-2.7.1 // 进入安装目录
./configure –prefix=/usr/local/libxml2 // 建立makefile,  将libxml 安装到/usr/local/libxml2 下
○ 编译文件并安装
make
make install

-------------libxml2安装完毕----------------

下载php5.3:

$>wget http://php.net/get/php-5.3.19.tar.gz/from/cn2.php.net/mirror

$>tar zxvf  php-5.3.19.tar.gz

$>cd php-5.3.19

$>./configure --prefix=/usr/local/php5.3 --enable-fastcgi --enable-fpm --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2

$>make

$>make install

 

$>cp php.ini-development /usr/local/php5.3/lib/php.ini

$>cd /usr/local/php5.3/etc

$>mv php-fpm.conf.default php-fpm.conf
$>vi php-fpm.conf

 

将pid = run/php-fpm.pid 前面的; 去掉

 

$>cp -f /usr/local/src/php-5.3.19/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

$>chmod 755 /etc/init.d/php-fpm

$>/etc/init.d/php-fpm start

$>cd /etc/init.d

添加到开机服务列表

$>/sbin/chkconfig --add php-fpm

$>/sbin/chkconfig php-fpm on

 

重启:

$>./php-fpm restart

起动:

$>./php-fpm start

停止:

$>./php-fpm stop

修改php.ini配置后平滑加载:

$>./php-fpm reload

 

三. nginx 1.0 安装

1.清除旧的pcre版本,否则下载的相应版本安装不了,有冲突。

$>rpm -qa|grep pcre

我的得到:pcre-7.8-3.1.el6.i686

删除pcre-7.8-3.1.el6.i686

$>rpm -e --nodeps pcre-7.8-3.1.el6.i686

2.下载pcre,并安装,否则pcre-devel 报依赖错误

$>wget ftp://ftp.pbone.net/mirror/ftp.pld-linux.org/branches/titanium/PLD/i586/RPMS/pcre-7.8-5.i586.rpm

$>rpm -ivh  pcre-7.8-5.i586.rpm

3.再安装pcre-devel,不安装,安装nginx时会报找不到pcre-devel

$>wget ftp://ftp.pbone.net/mirror/ftp.pld-linux.org/branches/titanium/PLD/i586/RPMS/pcre-devel-7.8-5.i586.rpm

$>rpm -ivh pcre-devel-7.8-5.i586.rpm

安装pcre-devel成功

4. 下载nginx:

$>wget http://nginx.org/download/nginx-1.0.15.tar.gz

$>tar zxvf nginx-1.0.15.tar.gz

$>cd nginx-1.0.15

$>./configure --prefix=/usr/local/nginx

$>make

$>make install

修改配置

$>vi /usr/local/nginx/conf/nginx.conf

将#user nobody; 前注释去掉

将以下这段去掉注释:

location ~ \.php$ {
           root           html;
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include        fastcgi_params;
        }

(取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,/scripts$fastcgi_script_name 应改为$document_root$fastcgi_script_name,或者使用绝对路径)

 

启动nginx
$>/usr/local/nginx/sbin/nginx

也可以写启动脚本支持start,restart,stop等命令

Nginx启动脚本/etc/init.d/nginx

$>cat >/etc/init.d/nginx

然后输入以下脚本,ctrl+c保存。

#!/bin/bash
#
# Startup script for Nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
 
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
 
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
 
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
 
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}
 
force_reload() {
    restart
}
 
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
 
rh_status() {
    status $prog
}
 
rh_status_q() {
    rh_status >/dev/null 2>&1
}
 
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

#==============================================================

 $>chmod 755 /etc/init.d/nginx

添加到开机服务列表

$>/sbin/chkconfig --add nginx

$>/sbin/chkconfig  nginx on

现在可以用以下命令操作nginx了:

service nginx start
service nginx stop
service nginx restart
service nginx reload


/etc/init.d/nginx start
/etc/init.d/nginx stop
/etc/init.d/nginx restart
/etc/init.d/nginx reload

 

 

 

编写个phpinfo.php文件保存在/usr/local/nginx/html/目录下,文件内容如下

$>cat >phpinfo.php
  <?php phpinfo(); ?>
$>Ctrl+c


可通过 http://127.0.0.1/phpinfo.php 访问到令人激动的php信息页,表明安装成功.

 

至此,整个环境搭建完毕并同步记录了整个过程, 两点多了,又熬夜了。

 

搭建这个环境的目的有两个,想把服务器的apache 换成nginx+php-fpm的,另外碰到一个关于CI框架的问题,想验证一下。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics