CentOS5 编译安装LNMP的步骤分享

发布时间:2020-04-06编辑:脚本学堂
本文介绍下,在centos5系统中安装LNMP环境的方法,分享下详细的操作步骤,大家可以作个参考,希望对你有所帮助。

本节内容:
centos5 编译安装LNMP

在centos 5中编译安装LNMP的具体步骤如下:
 

# 手动安装lnmp
包含 libiconv libunwind gperftools libmcrypt mhash mcrypt libpng freetype jpeg
gd pcre libmemcached php_memcached(memcached.so)  eaccelerator ZendOptimizer
mysql5.5 php5.3 nginx1.2.7 memcached tokyocabinet tokyotyrant
#路径
程序存放      /data/service
lib or common /data/service/common
数据存放      /data/data
日志存放      /data/logs

# yum源更改
rm -f CentOS6-Base-163.repo
rm -f /etc/yum.repos.d/CentOS6-Base-163.repo
yum install -y wget   
wget -4 --no-cache http://mirrors.163.com/.help/CentOS6-Base-163.repo
-O /etc/yum.repos.d/CentOS6-Base-163.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

yum makecache && yum update -y && rm -f /etc/yum.repos.d/CentOS-Base.repo

yum install ntp wget cpp gcc gcc-c++ gcc-g77 make unzip libtool
libtool-ltdl-devel libc-client-devel libstdc++-devel db4-utils libcap-devel
expat-devel perl pam-devel perl-Time-HiRes libaio-devel bzr patch bzip2-devel
cmake bison libevent-devel ncurses-devel openssl-devel zlib-devel curl-devel
libxml2-devel tcp_wrappers-devel nasm lemon flex libXpm-devel fontconfig-devel
pcre-devel sqlite-devel perl-ExtUtils-Embed neon-devel

# centos 5
yum install libmcrypt-devel mhash-devel

# 系统自带png, jpeg, freetype
yum install libpng-devel libjpeg-devel freetype-devel

# libiconv
./configure
make && make install
echo "/usr/local/lib" >>
/etc/ld.so.conf.d/service_lib.conf && /sbin/ldconfig

# libunwind
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC && make CFLAGS=-fPIC install

# gperftools
./configure --enable-frame-pointers
make && make install
/sbin/ldconfig

# mysql 5.5
groupadd mysql -g 1002
useradd mysql -u 1002 -g mysql -s /sbin/nologin

rm -f CMakeCache.txt
cmake
. -DCMAKE_INSTALL_PREFIX=/data/service/mysql
-DMYSQL_DATADIR=/data/data/mysql
-DSYSCONFDIR=/data/service/mysql/etc
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_EXAMPLE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_myisam_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DWITH_READLINE=1
-DENABLED_LOCAL_INFILE=1
-DMYSQL_TCP_PORT=3306
-DWITH_DEBUG=0
make && make install

# mysql5.1
./configure
--prefix=/data/service/mysql
--localstatedir=/data/data/mysql
--sysconfdir=/data/service/mysql/etc
--with-mysqld-user=mysql
--without-debug
--with-big-tables
--with-unix-socket-path=/tmp/mysql.sock
--with-charset=gbk
--with-collation=gbk_chinese_ci
--with-extra-charsets=all
--with-plugins=partition
--enable-static
--with-client-ldflags=-all-static
--with-tcp-port=3306

ln -s /data/service/mysql/lib /data/service/mysql/lib64
echo "/data/service/mysql/lib64/" >>
/etc/ld.so.conf.d/service_lib.conf && /sbin/ldconfig

mkdir -p /data/service/mysql/etc && mkdir -p /data/data/mysql
cp -f support-files/my-medium.cnf /data/service/mysql/etc/my.cnf
# add gperftools
sed -i 's/executing mysqld_safe$/&nexport LD_PRELOAD="/usr/local/lib/libtcmalloc.so"/'
/data/service/mysql/bin/mysqld_safe

cp -f support-files/mysql.server /data/service/mysql/mysqld
chmod 755 /data/service/mysql/mysqld
chown -R mysql.mysql /data/data/mysql

[mysqld]
pid-file        = /data/data/mysql/mysqld.pid
datadir         = /data/data/mysql

max_connections = 500
max_connect_errors=10000
slow_query_log=1
slow_query_log_file = /data/data/mysql/slowsql.log
long_query_time = 2
log-queries-not-using-indexes

innodb_file_per_table = 1
innodb_data_home_dir = /data/data/mysql
innodb_data_file_path = ibdata1:10M:autoextend:max:2000M
innodb_log_group_home_dir = /data/data/mysql
innodb_file_per_table = 1
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 2M
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
sync_binlog = 1
innodb_flush_log_at_trx_commit = 0
innodb_lock_wait_timeout = 50

log-bin=mysql-bin
binlog_format = mixed
expire_logs_days = 7

[mysqld_safe]
log-error = /data/data/mysql/mysql.log

/data/service/mysql/scripts/mysql_install_db
--user=mysql --basedir=/data/service/mysql --datadir=/data/data/mysql
/data/service/mysql/mysqld start
/data/service/mysql/mysqld restart
#/data/service/mysql/bin/mysqladmin -uroot password
/data/service/mysql/mysqld stop

# libmcrypt, centos6
./configure --prefix=/data/service/common/libmcrypt
make && make install
ln -s /data/service/common/libmcrypt/lib /data/service/common/libmcrypt/lib64
echo "/data/service/common/libmcrypt/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# mhash, centos6
./configure --prefix=/data/service/common/mhash
make && make install
ln -s /data/service/common/mhash/lib /data/service/common/mhash/lib64
echo "/data/service/common/mhash/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# mcrypt, centos6
#LD_LIBRARY_PATH=/data/service/common/libmcrypt/lib:/data/service/common/mhash/lib
LDFLAGS="-L/data/service/common/mhash/lib/ -I/data/service/common/mhash/include/"
CFLAGS="-I/data/service/common/mhash/include/"
./configure --prefix=/data/service/common/mcrypt
--with-libmcrypt-prefix=/data/service/common/libmcrypt
make && make install
ln -s /data/service/common/mcrypt/lib /data/service/common/mcrypt/lib64
echo "/data/service/common/mcrypt/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# libpng
#下面这句,测试不能执行,否则就会报告下面的错误,而且无法安装到/usr/lib/libpng/下
#cp scripts/makefile.linux makefile
./configure --prefix=/data/service/common/libpng --enable-shared --enable-static
make && make install
ln -s /data/service/common/libpng/lib /data/service/common/libpng/lib64
echo "/data/service/common/libpng/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# freetype
./configure --prefix=/data/service/common/freetype --enable-shared --enable-static
make && make install
ln -s /data/service/common/freetype/lib /data/service/common/freetype/lib64
echo "/data/service/common/freetype/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# libjpeg
./configure --prefix=/data/service/common/libjpeg --enable-shared --enable-static
make && make install
ln -s /data/service/common/libjpeg/lib /data/service/common/libjpeg/lib64
echo "/data/service/common/libjpeg/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# gd
yum install libXpm-devel fontconfig-devel


##centos 5需安装gettext
./configure
make && make install


PATH=/data/service/common/libpng/bin/:$PATH
LDFLAGS="-L/data/service/common/libpng/lib/"
CFLAGS="-I/data/service/common/libpng/include/"
./configure --prefix=/data/service/common/gd
--enable-shared --enable-static
--with-png=/data/service/common/libpng
--with-freetype=/data/service/common/freetype
--with-jpeg=/data/service/common/libjpeg


make && make install
ln -s /data/service/common/gd/lib /data/service/common/gd/lib64
echo "/data/service/common/gd/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# pcre
./configure --prefix=/data/service/common/pcre
--enable-shared --enable-static
make && make install
ln -s /data/service/common/pcre/lib /data/service/common/pcre/lib64
echo "/data/service/common/pcre/lib64" >>
/etc/ld.so.conf.d/service_lib.conf && ldconfig


# php5.3
You will need re2c 0.13.4 or later if you want to regenerate PHP parsers
http://nchc.dl.sourceforge.net/project/re2c/re2c/0.13.5/re2c-0.13.5.tar.gz
./configure && make && make install


./configure 
--prefix=/data/service/phpfpm
--with-config-file-path=/data/service/phpfpm/etc
--with-libdir=lib64
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-mcrypt=/data/service/common/libmcrypt
--with-mhash=/data/service/common/mhash
--with-gd=/data/service/common/gd
--with-pcre-dir=/data/service/common/pcre
--with-freetype-dir=/data/service/common/freetype
--with-jpeg-dir=/data/service/common/libjpeg
--with-png-dir=/data/service/common/libpng
--with-openssl
--with-zlib
--with-curl
--with-curlwrappers
--with-xmlrpc
--with-bz2
--with-gettext
--with-xpm-dir
--enable-fpm
--enable-ftp
--enable-sockets
--enable-xml
--enable-bcmath
--enable-shmop
--enable-sysvsem
--enable-inline-optimization
--enable-mbregex
--enable-mbstring
--enable-gd-native-ttf
--enable-sockets
--enable-zip
--enable-soap
--enable-pcntl
--disable-rpath


#--with-iconv-dir=/data/service/common/libiconv


make && make install
mkdir -p /data/service/phpfpm/etc
cp -f php.ini-production /data/service/phpfpm/etc/php.ini
sed -i '$a nextension_dir = "/data/service/phpfpm/lib/php/extensions/no-debug-non-zts-20090626/"'
/data/service/phpfpm/etc/php.ini


#php5.2
wget -4 http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz
./configure --prefix=/data/service/common/autoconf_2.13
make && make install


wget -4 http://cn2.php.net/distributions/php-5.2.17.tar.gz
wget -4 http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
wget -4 https://raw.github.com/laruence/laruence.github.com/master/php-5.2-max-input-vars/php-5.2.17-max-input-vars.patch
gzip -d php-5.2.17-fpm-0.5.14.diff.gz
tar zxf php-5.2.17.tar.gz
cd php-5.2.17
patch -p1 < ../php-5.2.17-fpm-0.5.14.diff
patch -p1 < ../php-5.2.17-max-input-vars.patch
rm -rf configure
&& PHP_AUTOCONF="/data/service/common/autoconf_2.13/bin/autoconf"
PHP_AUTOHEADER="/data/service/common/autoconf_2.13/bin/autoheader"
./buildconf --force


./configure  --prefix=/data/service/phpfpm_52
--with-config-file-path=/data/service/phpfpm_52/etc
--with-libdir=lib64
--with-mysql=/data/service/mysql
--with-mysqli=/data/service/mysql/bin/mysql_config
--with-pdo-mysql=/data/service/mysql
--with-mcrypt=/data/service/common/libmcrypt
--with-mhash=/data/service/common/mhash
--with-gd=/data/service/common/gd
--with-freetype-dir=/data/service/common/freetype
--with-jpeg-dir=/data/service/common/libjpeg
--with-png-dir=/data/service/common/libpng
--with-openssl
--with-zlib
--with-curl
--with-curlwrappers
--with-xmlrpc
--with-bz2
--with-xpm-dir
--enable-fpm
--enable-fastcgi
--enable-force-cgi-redirect
--enable-ftp
--enable-sockets
--enable-xml
--enable-bcmath
--enable-shmop
--enable-inline-optimization
--enable-mbregex
--enable-mbstring
--enable-gd-native-ttf
--enable-sockets
--enable-zip
--enable-soap
--enable-pcntl
--disable-rpath


./configure  --prefix=/data/service/php
--with-config-file-path=/data/service/php/etc
--with-libdir=lib64
--with-apxs2=/data/service/httpd/bin/apxs
--with-mysql=/data/service/mysql
--with-mysqli=/data/service/mysql/bin/mysql_config
--with-pdo-mysql=/data/service/mysql
--with-gd=/data/service/common/gd
--with-mcrypt
--with-mhash
--with-freetype-dir
--with-jpeg-dir
--with-png-dir
--with-openssl
--with-zlib
--with-curl
--with-curlwrappers
--with-xmlrpc
--with-bz2
--with-xpm-dir
--enable-ftp
--enable-sockets
--enable-xml
--enable-bcmath
--enable-shmop
--enable-inline-optimization
--enable-mbregex
--enable-mbstring
--enable-gd-native-ttf
--enable-sockets
--enable-zip
--enable-soap
--enable-pcntl
--disable-rpath
make && make install
mkdir -p /data/service/phpfpm_52/etc
cp -f php.ini-recommended /data/service/phpfpm_52/etc/php.ini
cp sapi/cgi/fpm/php-fpm /data/service/phpfpm_52/bin/php-fpm && chmod 755 /data/service/phpfpm_52/bin/php-fpm
sed -i '$a nextension_dir = "/data/service/phpfpm_52/lib/php/extensions/no-debug-non-zts-20060613/"' /data/service/phpfpm_52/etc/php.ini


short_open_tag = On


# memcached/tar.gz
./configure --prefix=/data/service/memcached
make && make install


# libmemcached
##centos5需安装gcc44 gcc44-c++
yum install gcc44 gcc44-c++ libstdc++44-devel
export CC=/usr/bin/gcc44
export CXX=/usr/bin/g++44


./configure --prefix=/data/service/common/libmemcached
--with-memcached=/data/service/memcached
make && make install
ln -s /data/service/common/libmemcached/lib /data/service/common/libmemcached/lib64


# memcache.so/tgz php_memcache
/data/service/phpfpm/bin/phpize
&& ./configure
--enable-memcache
--with-php-config=/data/service/phpfpm/bin/php-config
make && make install
sed -i '$a ;extension=memcache.so' /data/service/phpfpm/etc/php.ini
# php5.2
/data/service/php/bin/phpize
&& ./configure
--enable-memcache
--with-php-config=/data/service/php/bin/php-config
make && make install
sed -i '$a ;extension=memcache.so' /data/service/php/etc/php.ini


# memcached.so/tgz zlib/php_memcached
/data/service/php/bin/phpize
&& ./configure
--with-php-config=/data/service/php/bin/php-config
--enable-memcached
--with-libmemcached-dir=/data/service/common/libmemcached
make && make install
sed -i '$a extension=memcached.so' /data/service/php/etc/php.ini
# php5.2
/data/service/phpfpm_52/bin/phpize
&& ./configure
--with-php-config=/data/service/phpfpm_52/bin/php-config
--enable-memcached
--with-libmemcached-dir=/data/service/common/libmemcached
make && make install
sed -i '$a extension=memcached.so' /data/service/phpfpm_52/etc/php.ini


sed -i "s#session.save_handler = files#;session.save_handler = files#g" /data/service/phpfpm/etc/php.ini
sed -i '$a ;session.save_handler = memcachedn;session.save_path = "ip:port"' /data/service/phpfpm/etc/php.ini


#php5.2
sed -i "s#session.save_handler = files#;session.save_handler = files#g" /data/service/phpfpm_52/etc/php.ini
sed -i '$a ;session.save_handler = memcachedn;session.save_path = "ip:port"' /data/service/phpfpm_52/etc/php.ini


# eaccelerator
/data/service/phpfpm/bin/phpize
&& ./configure
--enable-eaccelerator=shared
--with-php-config=/data/service/phpfpm/bin/php-config
make && make install
sed -i '$a ;extension=eaccelerator.so' /data/service/phpfpm/etc/php.ini


#5.2
/data/service/php/bin/phpize
&& ./configure
--enable-eaccelerator=shared
--with-php-config=/data/service/php/bin/php-config
make && make install
sed -i '$a ;extension=eaccelerator.so' /data/service/php/etc/php.ini


#APC
/data/service/phpfpm/bin/phpize
&& ./configure
--enable-eaccelerator=shared
--with-php-config=/data/service/phpfpm/bin/php-config
make && make install
sed -i '$a ;extension=eaccelerator.so' /data/service/phpfpm/etc/php.ini

# ZendGuardLoader php5.3
cp ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so
/data/service/phpfpm/lib/php/extensions/no-debug-non-zts-20090626/
sed -i '$a n;[Zend]n;zend_extension="/data/service/phpfpm/lib/php/extensions/no-debug-non-zts-20090626/ZendGuardLoader.so"n;zend_loader.enable=1n;zend_loader.disable_licensing=0n;zend_loader.obfuscation_level_support=3n;zend_loader.license_path=n' /data/service/phpfpm/etc/php.ini
# ZendOptimizer php5.2
cp ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so /data/service/phpfpm_52/lib/php/extensions/no-debug-non-zts-20060613/
sed -i '$a n;[Zend]n;zend_extension="/data/service/phpfpm_52/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so"n;zend_loader.enable=1n;zend_loader.disable_licensing=0n;zend_loader.obfuscation_level_support=3n;zend_loader.license_path=n' /data/service/phpfpm_52/etc/php.ini

# nginx
groupadd www -g 1001
useradd www -u 1001 -g www -s /sbin/nologin

./configure
--prefix=/data/service/nginx
--with-http_stub_status_module
--with-pcre=../pcre-8.32
--with-http_ssl_module
--with-google_perftools_module

./configure --prefix='/data/service/nginx' --with-http_ssl_module --with-http_gzip_static_module --with-cc-opt='-Wno-error' --add-module='/usr/local/lib/ruby/gems/2.0.0/gems/passenger-3.0.21/ext/nginx'
make && make install

# 安装apr
./configure
--prefix=/data/service/common/apr
make && make install
# 安装apr-util
./configure
--prefix=/data/service/common/apr-util
--with-apr=/data/service/common/apr
make && make install
# 编译apache2服务 fcgid
groupadd www -g 1001
&& useradd www -u 1001 -g www -s /sbin/nologin
./configure --prefix=/data/service/httpd
--with-perl
--enable-usertrack
--enable-headers
--enable-deflate
--enable-expires
--enable-status
--enable-http
--enable-dav
--enable-rewrite
--enable-ssl
--enable-so
--enable-proxy
--enable-proxy-fcgi
--enable-mpms-shared=all
--enable-modules=all
--enable-mods-shared=all
--with-pcre=/data/service/common/pcre
--with-apr=/data/service/common/apr
--with-apr-util=/data/service/common/apr-util
mod_fcgid
APXS=/data/service/httpd/bin/apxs ./configure.apxs
make && make instal

# 编译apache2服务 mod_php.so
./configure
--prefix=/data/service/httpd
--with-perl
--enable-v4-mapped
--enable-usertrack
--enable-headers
--enable-deflate
--enable-expires
--enable-status
--enable-http
--enable-dav
--enable-rewrite=shared
--enable-ssl
--enable-so
--enable-proxy
--enable-mpms-shared=prefork
--enable-modules=all
--enable-mods-shared=most
--enable-http
--enable-module=so
--with-pcre=/data/service/common/pcre
--with-apr=/data/service/common/apr
--with-apr-util=/data/service/common/apr-util

#vsftpd
vi defs.h
把/etc/vsftpd.conf /data/service/vsftpd/etc/vsftpd.conf
vi builddefs.h
把 #undef VSF_BUILD_TCPWRAPPERS 修改成 #define VSF_BUILD_TCPWRAPPERS
把 #undef VSF_BUILD_SSL 修改成 #define VSF_BUILD_SSL

make
mkdir -p /data/service/vsftpd/sbin /data/service/vsftpd/man /data/service/vsftpd/etc /data/service/vsftpd/etc/virtual
cp vsftpd /data/service/vsftpd/sbin/vsftpd
&& chmod 755 /data/service/vsftpd/sbin/vsftpd
cp vsftpd.8 /data/service/vsftpd/man/vsftpd.8
&& chmod 644 /data/service/vsftpd/man/vsftpd.8
cp vsftpd.conf.5 /data/service/vsftpd/man/vsftpd.conf.5
&& chmod 644 /data/service/vsftpd/man/vsftpd.conf.5
cp vsftpd.conf /data/service/vsftpd/etc/vsftpd.conf.default
&& chmod 644 /data/service/vsftpd/etc/vsftpd.conf.default
cp redhat/vsftpd.pam /data/service/vsftpd/etc/vsftpd.pam
&& chmod 644 /data/service/vsftpd/etc/vsftpd.pam
echo -e "usernpasswordn" > /data/service/vsftpd/etc/user_pass
echo "user" > /data/service/vsftpd/etc/user_list

echo "/usr/bin/db_load -T -t hash -f /data/service/vsftpd/etc/user_pass /data/service/vsftpd/etc/login.db"
>> /data/service/vsftpd/sbin/pass.sh
&& chmod 755 /data/service/vsftpd/sbin/pass.sh

vi /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/data/service/vsftpd/etc/login
account required /lib64/security/pam_userdb.so db=/data/service/vsftpd/etc/login

# tokyo cabinet
./configure --prefix=/data/service/common/tokyocabinet
make && make install

# tokyo tyrant
./configure --prefix=/data/service/tokyotyrant --with-tc=/data/service/common/tokyocabinet
make && make install

/data/service/tokyotyrant/bin/ttserver -port 11213 -thnum 8 -dmn -pid /data/data/ttdb/ttserver.pid -log /data/data/ttdb/ttserver.log -le -ulog /data/data/ttdb/ -ulim 256m -sid 1 -rts /data/data/ttdb/ttserver.rts /data/data/ttdb/database.tcb#lmemb=1024#nmemb2048#bnum10000000

/data/service/memcached/bin/memcached -d -u www -c 64 -p 11212