首页 > CentOS > LNMP-(mysql 5.5.27&php 5.4.6&nginx1.2.3) 安装手记
2014
11-05

LNMP-(mysql 5.5.27&php 5.4.6&nginx1.2.3) 安装手记

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。[1]

—————注意———————————-
1.—————————

/bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -c ltdl.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c  -fPIC -o .libs/ltdl.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c -o ltdl.o >/dev/null 2>&1
/bin/sh ./libtool --mode=link gcc  -g -O2  -o libltdl.la -rpath /usr/local/lib -no-undefined -version-info 4:0:1 ltdl.lo -ldl
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found

产生原因:源码包中LIBTOOL版本过低。

解决方法:让编译时调用系统的LIBTOOL。修改Makefile文件,LIBTOOL=$(SHELL)$(top_builddir)/libtool 为LIBTOOL=$(SHELL) /usr/bin/libtool

2.—————————
本文.很多的配置文件.使用的都是默认的.
为了能让大家更好的来了解各个软件.希望大家都真的能自己去阅读一下软件的配置文件
要根据实际情况来调整配置文件. 这才是根本.
别文档过不去,就这不行那不行的,请仔细阅读配置文件

3.—————————
本文的操作系统.请参照之前的博文
如果包不匹配.极有可能无法完整安装.
有一部分东西. 我是放在操作系统安装的时候处理的.

4.—————————
切记.  要去理解文章. 而不是完全的照抄

5.—————————
本文是我自己的安装笔记. 有个别的东西有修改 请仔细阅读

—————————————————–

################ mysql 5.5.27 ################
# 编译安装的方法
# 使用yum安装bison

yum install -y bison

# 下载地址
# mysql 下载地址 官网的列表 需要自己去选择
# http://dev.mysql.com/downloads/mirrors.html

# cmake 下载地址 官网的列表 需要自己去选择
# http://www.cmake.org/cmake/resources/software.html

# 下载mysql 和 cmake

wget ftp://ftp.cs.pu.edu.tw/Unix/mysql/Downloads/MySQL-5.5/mysql-5.5.27.tar.gz
wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz

# 解压

tar zxf cmake-2.8.8.tar.gz
tar zxf mysql-5.5.27.tar.gz

# 进入cmake 目录

cd cmake-2.8.8

# 编译 安装

./configure && make && make install
cd ../

# 进入mysql 目录

cd mysql-5.5.27

# 使用 cmake 编译

cmake \
-DCMAKE_INSTALL_PREFIX=/soft/mysql-5.5.27 \
-DMYSQL_DATADIR=/data/mysql-5.5.27/ \
-DSYSCONFDIR=/soft/mysql-5.5.27/etc/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_EXTRA_CHARSETS=complex \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0

# 编译 安装

make && make install

# 建立mysql组 并 建立mysql用户并加入到mysql组

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql -s /sbin/nologin

# 建立数据路径

mkdir -p /data/mysql-5.5.27/

# 修改目录权限

chown -R mysql:mysql /data/mysql-5.5.27
mkdir -p /soft/mysql-5.5.27/etc/

# 复制配置文件到/etc目录

cp support-files/my-medium.cnf /soft/mysql-5.5.27/etc/my.cnf

# 复制服务文件到 /etc/init.d目录

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

# 增加mysql 路径到 /etc/profile 目录 (功能是增加环境变量)

echo "PATH=\$PATH:/soft/mysql-5.5.27/bin" >> /etc/profile

# 增加mysql的lib到环境变量

echo "/soft/mysql-5.5.27/lib/" >>  /etc/ld.so.conf.d/mysql_lib.conf && /sbin/ldconfig

# 重读 profile 让环境变量立刻生效

. /etc/profile

# 初始化数据库

/soft/mysql-5.5.27/scripts/mysql_install_db --user=mysql --basedir=/soft/mysql-5.5.27/ --datadir=/data/mysql-5.5.27/

# 开启mysql

service mysqld start

# 清理MYSQL默认数据 清除主机名 清除主机默认IP地址 清除权限

mysql -uroot -e "drop database test; \
drop user [email protected]; \
drop user [email protected]'::1'; \
drop user ''@'localhost'; \
drop user ''@'test';"

# 修改mysql root 密码为 123456

mysqladmin -u root password '123456'

# 将mysql 加入服务 设置启动

chkconfig --add mysqld
chkconfig mysqld on

# 重启mysql

service mysqld restart
cd ../

# 开启防火墙

iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables save

################ nginx 1.2.3 ################

# 官方地址 http://nginx.org/en/download.html

# nginx 反向代理会使用的模块.需要单独加载 根据实际情况使用
# ngx_cache_purge-1.6.tar.gz
# http://labs.frickle.com/nginx_ngx_cache_purge/

wget http://labs.frickle.com/files/ngx_cache_purge-1.6.tar.gz
wget http://nginx.org/download/nginx-1.2.3.tar.gz

# 解压

tar zxf nginx-1.2.3.tar.gz
tar zxf ngx_cache_purge-1.6.tar.gz

# 进入nginx目录

cd nginx-1.2.3

# 带 ngx_cache_purge

./configure \
--user=www \
--group=www \
--prefix=/soft/nginx-1.2.3 \
--with-http_stub_status_module \
--add-module=../ngx_cache_purge-1.6 \
--with-http_realip_module \
--with-http_ssl_module \
--with-http_sub_module \
--with-http_flv_module  \
--with-http_addition_module \
--with-http_gzip_static_module

# 编译安装

make && make install

# 建立 nginx 所使用的用户

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www -s /sbin/nologin

# 修改配置文件

cd /soft/nginx-1.2.3/conf/

# 增加服务,该服务是我自己弄的,非常简单,希望大家通过自己学习自己来弄这么个东西.我就不放代码了.

cd /etc/init.d/
# rz nginx
chmod +x nginx

# 日志分割脚本 网上一大堆 通过网络多学习吧 同样不放代码

cd /soft/nginx-1.2.3/sbin/
# rz cut_nginx_log.sh
chmod +x  cut_nginx_log.sh

# 赋予目录 写权限

chmod +w /data/wwwroot/ /soft/nginx-1.2.3/logs/
chown -R www:www /data/wwwroot/

# 检查和重启服务

service nginx check
service nginx start
cd ../

# 加入服务

chkconfig --add nginx
chkconfig nginx on

# 开启防火墙

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
service iptables save

################ php-5.4.6 ################
# libiconv-1.14.tar.gz
http://www.gnu.org/software/libiconv/

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

# libmcrypt-2.5.8.tar.gz
http://sourceforge.net/projects/mcrypt/files/Libmcrypt/

wget http://cdnetworks-kr-2.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

# mhash-0.9.9.9
http://sourceforge.net/projects/mhash/files/

wget http://cdnetworks-kr-2.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

# mcrypt-2.6.8.tar.gz
http://sourceforge.net/projects/mcrypt/

wget http://cdnetworks-kr-1.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

# php php-5.4.6.tar.gz
http://www.php.net/downloads.php

wget http://cn.php.net/get/php-5.4.6.tar.gz/from/this/mirror

# memcache-3.0.6.tgz
http://pecl.php.net/package/memcache

wget http://pecl.php.net/get/memcache-3.0.6.tgz

# eaccelerator-0.9.6.1.zip 这个请注意….. 要下载最新版本 不然高版本的php不兼容
http://eaccelerator.net/

# wget http://cdnetworks-kr-2.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip

# ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
# http://www.zend.com/en/products/guard/downloads

# wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

# php_screw-1.5.tar.gz
http://sourceforge.net/projects/php-screw/

wget http://cdnetworks-kr-1.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz

# pear
# http://pear.php.net/

wget http://pear.php.net/go-pear.phar

# 使用yum安装软件包,解决依赖

yum -y install autoconf libjpeg-devel libpng-devel freetype-devel libxml2-devel zlib-devel glibc-devel \
glib2-devel bzip2-devel curl-devel e2fsprogs-devel krb5-devel libidn-devel libc-client libc-client-devel

# libiconv-1.14.tar.gz

tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure \
--prefix=/soft/libiconv-1.14
make && make install
cd ../
echo "/soft/libiconv-1.14/lib" >> /etc/ld.so.conf.d/php_lib.conf && /sbin/ldconfig

# libmcrypt-2.5.8.tar.gz

tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure --prefix=/soft/libmcrypt-2.5.8
make && make install
/sbin/ldconfig
cd libltdl/
./configure \
--prefix=/soft/libmcrypt-2.5.8/libltdl \
--enable-ltdl-install
make && make install
cd ../../
echo "/soft/libmcrypt-2.5.8/lib" >> /etc/ld.so.conf.d/php_lib.conf
echo "/soft/libmcrypt-2.5.8/libltdl/lib" >> /etc/ld.so.conf.d/php_lib.conf && /sbin/ldconfig

# mhash-0.9.9.9

tar zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure \
--prefix=/soft/mhash-0.9.9.9
make && make install
cd ../
echo "/soft/mhash-0.9.9.9/lib" >> /etc/ld.so.conf.d/php_lib.conf && /sbin/ldconfig

# mcrypt-2.6.8.tar.gz

tar zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
# 安装mcrypt,
# ./configure时可能会报这个错:/bin/rm: cannot remove `libtoolT’: No such file or directory。
# 解决方法:修改configure文件,删除$RM “$cfgfile”这一行(在19744行)。重新再运行./configure就可以了。
# 看了下configure文件,其实可以忽略这个错。configure文件中cfgfile=”${ofile}T”定义的这里变量值是不存在的(${ofile}T的值为libtoolT),最后所以报错了。
export LD_LIBRARY_PATH=/soft/libmcrypt-2.5.8/lib:/soft/mhash-0.9.9.9/lib
export LDFLAGS="-L/soft/mhash-0.9.9.9/lib -I/soft/mhash-0.9.9.9/include/"
export CFLAGS="-I/soft/mhash-0.9.9.9/include/"
./configure \
--prefix=/soft/mcrypt-2.6.8 \
--with-libmcrypt-prefix=/soft/libmcrypt-2.5.8/
make && make install
cd ../

# php-5.4.6.tar.gz

tar zxf php-5.4.6.tar.gz
cd php-5.4.6/

# 使用 mysqlnd 指定php编译参数

./configure \
--prefix=/soft/php-5.4.6 \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-config-file-path=/soft/php-5.4.6/etc \
--with-iconv=/soft/libiconv-1.14 \
--with-mhash=/soft/mhash-0.9.9.9/ \
--with-mcrypt=/soft/libmcrypt-2.5.8/ \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-bz2 \
--with-libxml-dir=/usr \
--with-curl \
--with-curlwrappers \
--with-gd \
--with-openssl \
--with-imap \
--with-kerberos \
--with-imap-ssl \
--with-xmlrpc \
--with-gettext \
--enable-mbregex \
--enable-mbstring \
--enable-pcntl \
--enable-soap \
--enable-exif \
--enable-ftp \
--enable-zip \
--enable-sockets \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-gd-native-ttf \
--enable-inline-optimization \
--enable-calendar \
--disable-rpath \
--enable-fpm

# 编译安装

make ZEND_EXTRA_LIBS='-liconv'
make install

# 准备配置文件

cp php.ini-production /soft/php-5.4.6/etc/
cd ../

# memcache-3.0.6.tgz

tar zxf memcache-3.0.6.tgz
cd memcache-3.0.6
/soft/php-5.4.6/bin/phpize
./configure \
--with-php-config=/soft/php-5.4.6/bin/php-config
make && make install
cd ../

# eaccelerator-0.9.6.1.zip 这个 0.9.6.1 不能在这个php版本使用
# 请下载最新的 eaccelerator,编译步骤不变

unzip eaccelerator-0.9.6.1.zip
cd eaccelerator-0.9.6.1/
/soft/php-5.4.6/bin/phpize
./configure \
--enable-eaccelerator=shared \
--with-php-config=/soft/php-5.4.6/bin/php-config
make && make install
cd ../

# 自己修改配置文件,为了你服务器的性能,请仔细阅读配置文件

cd /soft/php-5.4.6/etc/

# 打开php并加入服务

chmod +x /etc/init.d/php-fpm
service php-fpm start
chkconfig --add php-fpm
chkconfig php-fpm on
最后编辑:
作者:王, 帅
这个作者貌似有点懒,什么都没有留下。

留下一个回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据