当前位置: > Linux服务器 > nginx >

nginx+mysql+php-fpm源码编译安装

时间:2017-03-05 17:57来源:linux.it.net.cn 作者:IT
要求:所有的安装包都装在/usr/local/server/下面
首先检查各种库有没有装上

for i in ` rpm -q gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel bison bison-devel readline readline-devel |grep 'not installed' | awk '{print $2}' `; do yum -y install $i; done

1、mysql的安装
下载地址

wget http://www.percona.com/downloads/Percona-Server-5.5/Percona-Server-5.5.20-24.1/sourc
e/Percona-Server-5.5.20-rel24.1.tar.gz
因为mysql5.5需要cmake编译的,所以下载cmake安装cmake工具

wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
tar zxvf cmake-2.8.4.tar.gz
cd cmake-2.8.4
./configure
make && make install
安装mysql
groupadd mysql
useradd -g mysql mysql
解压mysql

tar zxvf Percona-Server-5.5.20-rel24.1.tar.gz
cd Percona-Server-5.5.20-rel24.1
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/server/mysql -DENABLED_PROFILING=ON -DMYSQL_DATADIR=/data/mysql/data/ -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=ON -DWITH_DEBUG=0 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1
make && make install

cp ./support-files/mysql.server /etc/init.d/mysqld
cp ./support-files/my-medium.cnf /etc/my.cnf
chmod 777 /etc/init.d/mysqld
chown -R mysql.mysql /usr/local/server/mysql/
chown -R mysql.mysql /data/mysql/

初始化mysql
/usr/local/server/mysql/mysql_install_db –user=mysql –basedir=/usr/local/server/mysql/ –datadir=/data/mysql/data/ &
启动
/etc/init.d/mysqld start

2安装nginx、
groupadd nginx
useradd -g nginx nginx

因为nginx需要用正则表达式,所以也需要安装pcre
wget http://sourceforge.net/projects/pcre/files/latest/download
unzip pcre-8.30.zip
cd pcre-8.30
./configure
make && make install

wget http://nginx.org/download/nginx-1.0.13.tar.gz
tar xvf nginx-1.0.13.tar.gz
cd nginx-1.0.13
./configure --user=nginx --group=nginx --prefix=/usr/local/server/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
启动
/usr/local/server/nginx/bin/nginx -c /usr/local/server/nginx/conf/nginx.conf

3、安装php-fpm
下载php
wget http://cn.php.net/get/php-5.2.17.tar.gz/from/this/mirror
下载php的fpm补丁
wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
下载php的hash补丁

https://github.com/laruence/laruence.github.com/tarball/master(此链接不能直接wget,需要下载下来再传到服务器里面)

打补丁
tar zxvf php-5.2.17.tar.gz
tar zxvf laruence-laruence.github.com-b648cb1.tar.gz
打p1的补丁
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17
打上hash的补丁
patch -p1 < ../laruence-laruence.github.com-b648cb1/php-5.2-max-input-vars/php-5.2.17-max-input-vars.patch 编译安装

./configure –prefix=/usr/local/server/php-5.2.17p1 –with-config-file-path=/usr/local/server/php-5.2.17p1/etc –with-mysql=/usr/local/server/mysql –with-mysqli=/usr/local/server/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi –enable-fpm –enable-force-cgi-redirect –enable-mbstring –with-mcrypt –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –enable-xml –enable-zend-multibyte –disable-debug –disable-ipv6
make && make install

cp php.ini-recommended /usr/local/server/php-5.2.17p1/lib/php/php.ini

如果php安装过程中出现
Installing PEAR environment: /usr/local/server/php-5.2.17p1/lib/php/
/root/php/php-5.2.17/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
make[1]: *** [install-pear-installer] Error 127
make: *** [install-pear] Error 2
这个是因为没有找到libmysqlclient.so.18导致的,网上找到的解决办法是

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/

该方法适用于32位系统,64位系统应使用下面的这行

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容