最近好多朋友讨论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 --
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]
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
需要注释/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
(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
cd pcre-7.9
cp /root/libpcre.so.0 /lib64
./configure
配置PCRE,因为PCRE是一个库,而不是像apache,php的程序,所以我们安装时选择默认路径即可,这样会
配置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
make & make install
/usr/local/nginx/sbin/nginx
添加开机启动
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local
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
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
./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
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 .
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
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
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
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
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
/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
cd zlib-1.2.3
./configure
# Makefile
sed -i 's/CFLAGS=-O3 -DUSE_MMAP/CFLAGS=-O3 -DUSE_MMAP -fPIC/' Makefile
make
make install
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会出错
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-
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
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>
-->
<!-- <value name="user">nobody</value>
-->
Unix group of processes
<!-- <value name="group">nobody</value>
-->
去掉注释后,启动PHP-FPM
/usr/local/php/sbin/php-fpm start
/usr/local/php/sbin/php-fpm start
查看启动状况
ps -aux | grep php
添加开机启动
echo "/usr/local/php/sbin/php-fpm start" >>/etc/rc.local
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;
#}
# 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网站放置的路径
如下所示:
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
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部分
<value name="backlog">-1</value>
注意127.0.0.1:9000部分