读书人

linux Red Hat 4.1.2上nginx+php-fpm+

发布时间: 2012-12-22 12:05:06 作者: rapoo

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 2esac#==============================================================

?$>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框架的问题,想验证一下。

?

?

?

读书人网 >UNIXLINUX

热点推荐