Red Hat Linux 64位安装mysql+nginx+GD+php

21 篇文章 0 订阅
最近好多朋友讨论nginx,找些资源后自己研究后,把安装的步骤共享一下 
1.安装Mysql
tar zxvf mysql-5.1.30.tar.gz 
cd mysql-5.1.30
./configure --prefix=/usr/local/mysql --with-zlib-dir=/usr --with-charset=gbk --
sysconfdir=/etc --localstatedir=/var/lib/mysql
make
make install
创建必要的用户和组
groupadd -g 20000 mysql
useradd -u 20000 -g mysql mysql
安装完以后要初始化数据库,当然你是升级的话不用做这步;
/usr/local/mysql/bin/mysql_install_db
chown -R mysql /var/lib/mysql
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
做完上面的步骤,然后把你编译目录的一个脚本COPY过去
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chmod 755 /etc/rc.d/init.d/mysqld
用ntsysv设置使mysql每次启动都能自动运行。
然后我启动mysql
/usr/local/mysql/bin/mysqld_safe --user=root &
mysql5.1.30初次启动会出现Starting MySQL.Manager of pid-file quit without updating fi[FAILED]
的报错,
需要注释/etc/my.cnf里的skip-federated注释掉即#skip-federated就OK了
查看3306端口是否打开
netstat –anlt
好了,至此mysql安装完毕,你可以这样起动你的mysql服务
/etc/rc.d/init.d/mysqld start
ln -s /usr/local/mysql/bin/mysql /usr/sbin/mysql
 
2.安装nginx
(1).安装PCRE
先删除系统自带的
rpm -qa | grep pcre
pcre-6.6-2.el5_1.7
cp /lib64/libpcre.so.0 /root
删除之前,先备份
rpm -e --nodeps pcre-6.6-2.el5_1.7
tar zxvf pcre-7.9.tar.gz
cd pcre-7.9
cp /root/libpcre.so.0 /lib64
./configure
配置PCRE,因为PCRE是一个库,而不是像apache,php的程序,所以我们安装时选择默认路径即可,这样会
在后面安装其他东西时避免一些不必要的麻烦

(2).安装nginx
tar zxvf nginx-0.8.54.tar.gz 
cd nginx-0.8.54
./configure --prefix=/usr/local/nginx
make & make install
/usr/local/nginx/sbin/nginx
添加开机启动
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local

3.安装GD库
(1). 安装jpeg6
mkdir -p /usr/local/jpeg6
mkdir -p /usr/local/jpeg6/bin
mkdir -p /usr/local/jpeg6/lib
mkdir -p /usr/local/jpeg6/man
mkdir -p /usr/local/jpeg6/man/man1
mkdir -p /usr/local/jpeg6/include
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
make 
make install
如果出现下来的错误,需要更新libtool
./libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c
make: ./libtool: Command not found
make: *** [jcapimin.lo] Error 127
先删RPM包
rpm -qa | grep libtool
rpm -e libtool-1.5.22-6.1
安装libtool
tar xvfz libtool-2.2.6a.tar.gz 
cd libtool-2.2.6
./configure && make && make install
cd jpeg-6b
cp /usr/local/share/libtool/config/config.sub .
cp /usr/local/share/libtool/config/config.guess .
./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
make 
make install
 
(2).安装libpng
tar zxvf libpng-1.2.14.tar.gz
cd libpng-1.2.14
./configure
make
make install
 
(3).安装freetype
tar zxvf freetype-2.1.10.tar.gz
cd freetype-2.1.10
mkdir -p /usr/local/freetype
./configure --prefix=/usr/local/freetype
make
make install
 
(4).安装zlib
tar zxvf zlib-1.2.3.tar.gz 
cd zlib-1.2.3
./configure 
make
make install
 
(5).安装GD
tar zxvf gd-2.0.33.tar.gz 
cd gd-2.0.33
mkdir –p /usr/local/gd2
./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/lib
--with-zlib=/usr/local/lib/ --
with-freetype=/usr/local/freetype
make
make install
在编译gd-2.0.33.tar.gz 时出现了如下错误:
/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 against `a local
symbol' can not be used when
making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libgd.la] error 1
make[2]: Leaving directory `/usr/local/src/gd-2.0.33'
make[1]: *** [all-recursive] error 1
make[1]: Leaving directory `/usr/local/src/gd-2.0.33'
make: *** [all] error 2
解决办法 : 重新安装 zlib-1.2.3.tar.gz
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
# Makefile
sed -i 's/CFLAGS=-O3 -DUSE_MMAP/CFLAGS=-O3 -DUSE_MMAP -fPIC/' Makefile
make
make install
 
4.安装PHP
tar zxvf php-5.2.10.tar.gz
必须要打补丁,不然配置时--enable-fpm会出错
gzip -cd php-5.2.10-fpm-0.5.11.diff.gz | patch -d php-5.2.10 -p1
cd php-5.2.10/
./configure --prefix=/usr/local/php --with-gd=/usr/local/gd2/ --with-jpeg-
dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/lib --with-freetype-dir=/usr/local/freetype
--with-mysql=/usr/local/mysql/ --enable-fastcgi --enable-fpm
make
make install
cp php.ini-dist /usr/local/php/etc/php.ini
/usr/local/php/sbin/php-fpm start
启动PHP-FPM时会报错误,原因是PHP-FPM不知道以那个用户和组运行PHP,所以要修改文件
vi /usr/local/php/etc/php-fpm.conf
                        Unix user of processes
                 <!--    <value name="user">nobody</value>                              
-->
                        Unix group of processes
                 <!--    <value name="group">nobody</value>  
-->
去掉注释后,启动PHP-FPM
/usr/local/php/sbin/php-fpm start
查看启动状况
ps -aux | grep php
添加开机启动
echo "/usr/local/php/sbin/php-fpm start" >>/etc/rc.local

整合Nginx与PHP
vi /usr/local/nginx/conf/nginx.conf
     #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
Nginx在得到*.php请求时,会把请求通过9000端口传给PHP,我们把这些注释去掉即可。
如下所示:
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;
            include        fastcgi_params;
        }
注:上面的/usr/local/nginx/html是PHP网站放置的路径
只有Nginx自已知道找PHP还不行,还需要PHP知道找Nginx,我们可以打开配置文件看一下
vi /usr/local/php/etc/php-fpm.conf
  <value name="listen_address">127.0.0.1:9000</value>
                        <value name="listen_options">
                                Set listen(2) backlog
                                <value name="backlog">-1</value>
注意127.0.0.1:9000部分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值