全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 4343|回复: 17
打印 上一主题 下一主题

VPS手动编译安装LNMP(第二版)

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-14 15:57:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文适用于所有256M(含256M)以上VPS,不适用于128M VPS。安装环境为CENTOS
本文假设所有的操作均在/opt/software目录下执行

# mkdir /opt/software
# cd /opt/software/

全编译前准备

准备1、安装编译器gcc

一般VPS都是最小化安装的,没有安装编译器
# yum -y update
# yum -y install gcc gcc-c++ automake
# yum install -y openssl-devel

这一步只所以没有用源码装,试因为GCC牵扯到很多关联模块,并和系统kernel有关,搞得不好,VPS就无法使用了,所以不建议去编译GCC
在这里只给出yum的安装方式,如果有童鞋有兴趣研究GCC的编译方式,建议先去看LFS或者编译内核一类的。

准备2、设置库文件路径
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

准备3、安装libtool
# wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.tar.gz
# tar xvf libtool-2.4.tar.gz
# cd libtool-2.4
# ./configure
# make && make install
# cd ..

一、MYSQL-5.1.54

1.1、nucrse
# wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz
# tar xvf ncurses-5.7.tar.gz
# cd ncurses-5.7
# ./configure --with-shared --without-debug
# make && make install
# cd ..

1.2、mysql-5.1.54
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.54.tar.gz/from/http://mysql.he.net/
# tar xvf mysql-5.1.54.tar.gz
# cd mysql-5.1.54
# ./configure --prefix=/usr/local/mysql \
--with-unix-socket-path=/var/lib/mysql/mysql.sock \
--localstatedir=/var/lib/mysql/data \
--with-charset=utf8 --with-collation=utf8_general_ci \
--with-extra-charsets=all --enable-assembler --with-pthread

# make
# make install

# groupadd mysql
# useradd mysql -s /sbin/nologin -g mysql -M
# cp support-files/my-medium.cnf /etc/my.cnf

修改my.cnf
在skip-locking这句前面加上#号,添加
skip-external-locking

# chown mysql.root -R /usr/local/mysql
# cd /usr/local/mysql/

# bin/mysql_install_db --user=mysql
# chown mysql.mysql -R /var/lib/mysql/
# ln -s /usr/local/mysql/bin/* /usr/local/bin

重要:
# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld


mysql的启动和关闭
/etc/init.d/mysqld start
/etc/init.d/mysqld stop

二、PHP-5.3.5

回到我们的编译目录
# cd /opt/software

2.1、ZLIB

# wget http://zlib.net/zlib-1.2.5.tar.gz
# tar xvf zlib-1.2.5.tar.gz
# cd zlib-1.2.5
# ./configure --prefix=/usr/local/
# make && make install
# cd ..

2.2、LIBPNG
# wget http://sourceforge.net/projects/libpng/files/libpng15/1.5.0/libpng-1.5.0.tar.gz/download
# tar xvf libpng-1.5.0.tar.gz
# cd libpng-1.5.0
# ./configure --prefix=/usr/local/
# make && make install
# cd ..

2.3、FREETYPE
# wget http://download.savannah.gnu.org/releases/freetype/freetype-2.1.10.tar.bz2
# tar xvf freetype-2.1.10.tar.bz2
# cd freetype-2.1.10
# ./configure --prefix=/usr/local/  --enable-shared
# make && make install
# cd ..

2.4、LIBJPEG
# wget http://freshmeat.net/urls/6228c609a20bb6f87b2fef4fd4b6a30c
# tar xvf jpegsrc.v8b.tar.gz
# cd jpeg-8b/
# ./configure --prefix=/usr/local --enable-shared --enable-static
# make
# make test
# make install
# cd ..

2.5、LIBICONV
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
# tar xvf libiconv-1.13.1.tar.gz
# cd libiconv-1.13.1
# ./configure --prefix=/usr/local/
# make && make install
# cd ..

2.6、GD
# wget http://www.libgd.org/releases/gd-latest.tar.gz
# tar xvf gd-latest.tar.gz
# cd gd-2.0.34
# ./configure --with-png --with-freetype --with-jpeg
# make
# make install
# cd ..

2.7、libevent
# wget http://monkey.org/~provos/libevent-2.0.10-stable.tar.gz
# tar xvf libevent-2.0.10-stable.tar.gz
# cd libevent-2.0.10-stable
# ./configure --prefix=/usr/local/
# make
# make install
# cd ..

2.8、libxml2
# wget ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
# tar xvf libxml2-2.7.8.tar.gz
# cd libxml2-2.7.8
# ./configure --prefix=/usr/local/
# make && make install
# cd ..

[ 本帖最后由 tony1999 于 2011-1-14 21:44 编辑 ]

评分

参与人数 2威望 +30 收起 理由
tc101 + 15 原创内容
Captain + 15 精品文章

查看全部评分

2#
 楼主| 发表于 2011-1-14 15:58:09 | 只看该作者
2.9-2.15为可选安装

2.9、安装curl
# wget http://curl.haxx.se/download/curl-7.21.3.tar.gz
# tar xvf curl-7.21.3.tar.gz
# cd curl-7.21.3
# ./configure --prefix=/usr/local/ --enable-shared
# make && make install
# cd ..

2.10、安装net-snmp
# wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6.1/net-snmp-5.6.1.tar.gz/download
# cd net-snmp-5.6.1
# ./configure --prefix=/usr/local/
然后一路回车下去,到了这里Default version of SNMP to use (3): 笔者输入的是2
其他都用默认的,开始config
# make && make install
# cd ..

2.11、安装LIBXSLT
# wget ftp://xmlsoft.org/libxml2/libxslt-1.1.25.tar.gz
# tar xvf libxslt-1.1.25.tar.gz
# cd libxslt-1.1.25
# ./configure --prefix=/usr/local/ --enable-shared
# make && make install
# cd ..

2.12、libmcrypt
# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
# tar xvf libmcrypt-2.5.7.tar.gz
# cd libmcrypt-2.5.7
# ./configure --prefix=/usr/local/
# make
# make check
# make install
# cd ..

2.13、mhash
# wget http://ncu.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2
# tar xvf mhash-0.9.9.9.tar.bz2
# cd mhash-0.9.9.9
# ./configure --prefix=/usr/local
# make
# make check
# make install
# cd ..

2.14、mcrypt
# wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
# tar xvf mcrypt-2.6.8.tar.gz
# cd mcrypt-2.6.8
# LD_LIBRARY_PATH=/usr/local/lib ./configure --prefix=/usr/local/
# make
# make check
# make install
# cd ..

2.15、GETTEXT
# wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz
# tar xvf gettext-0.18.1.1.tar.gz
# cd gettext-0.18.1.1
# ./configure --prefix=/usr/local/ --enable-shared
# make && make install
# cd ..

(以上可选部分结束)

2.16、安装php-5.3.3
# wget http://www.php.net/get/php-5.3.5.tar.bz2/from/this/mirror
# tar xvf php-5.3.5.tar.bz2
# cd php-5.3.5

如果没有安装可选部分的话,使用如下参数编译

# ./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-gd --with-freetype-dir=/usr/local --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local \
--enable-fpm \
--disable-debug \

如果安装了可选部分的话,使用如下参数编译
./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql --with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-gd --enable-gd-native-ttf --enable-gd-jis-conv \
--with-freetype-dir=/usr/local --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib --with-zlib-dir=/usr/local \
--with-curl --with-curlwrappers --with-pic --enable-bcmath \
--with-xsl -with-openssl --with-pdo-mysql --with-gettext --with-iconv \
--with-mcrypt --with-mhash --with-snmp --enable-xml --enable-mbstring \
--enable-sockets --enable-inline-optimization --enable-calendar --enable-dba \
--enable-exif --enable-ftp --enable-soap --enable-zip --enable-sysvsem \
--enable-fpm \

# make
# make install

# cp php.ini-production /usr/local/php/lib/php.ini
# ln -s /usr/local/php/bin/* /usr/local/bin/
# cd ..

2.17、安装php加速器

# wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
# tar jxvf eaccelerator-0.9.6.1.tar.bz2
# cd eaccelerator-0.9.6.1
# phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make
# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
#

vi /usr/local/php/lib/php.ini

在最后的; End:前面加入

[eaccelerator]
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

# mkdir /tmp/eaccelerator
# chmod 777 /tmp/eaccelerator
# cd ..

2.18、配置php-fpm
# cd /usr/local/php/etc/
# cp php-fpm.conf.default php-fpm.conf

编辑php-fpm.conf
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
[www]

pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

将以上语句前面的注释符去掉即可。


启动php
# /usr/local/php/sbin/php-fpm
# ps -ef|grep php-fpm

如果看到有php-fpm的话,说明成功

# killall -9 php-fpm
# cp /opt/software/php-5.3.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#

现在可以通过/etc/init.d/php-fpm start|stop 来启动和关闭phpfpm了

三、nginx-0.8.53

3.1、安装pcre
回到我们的安装目录
# cd /opt/software
# wget http://sourceforge.net/projects/pcre/files/pcre/8.11/pcre-8.11.tar.gz/download
# tar xvf pcre-8.11.tar.gz
# cd pcre-8.11
# ./configure --prefix=/usr/local/
# make && make install
# cd ..

3.2、安装nginx
# wget http://nginx.org/download/nginx-0.8.53.tar.gz
# tar xvf nginx-0.8.53.tar.gz
# cd nginx-0.8.53
# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
# make && make install

3.3、PHP整合fpm
修改/usr/local/nginx/conf/nginx.conf,将server段 关于php部分前面的注视符号#全部去掉,如下:
        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;
        }

修改/usr/local/nginx/conf/fastcgi_params
在这一段
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
下面加入
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

完整的如下:
# cat fastcgi_params

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;


在/usr/local/nginx/html目录下建立一个info.php文件,内容如下:
<?php
phpinfo();
?>

启动所有服务:
# /etc/init.d/mysql start(或者restart)
# /etc/init.d/php-fpm start(或者restart)
# /usr/local/nginx/sbin/nginx

通过浏览器查看http://ip(你的VPS商分配给你的IP地址)/info.php,看到phpinfo的信息说明全部正确

测试用的:
http://64.34.205.27/
http://64.34.205.27/info.php

开机自动启动:
#chkconfig --level 345 mysqld on
#chkconfig --level 345 php-fpm on
#echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

至此,LANMP安装工作全部完毕

Tony
2011-01-14
Write@ShangHai

[ 本帖最后由 tony1999 于 2011-1-14 17:38 编辑 ]
3#
发表于 2011-1-14 15:58:51 | 只看该作者
站住
4#
发表于 2011-1-14 16:01:00 | 只看该作者
牛啊 正打算要装Lnmp呢
5#
发表于 2011-1-14 16:01:15 | 只看该作者
其实我想说。。。DZ官网帮助文档里有LNMP LAMP的详细安装文档
6#
发表于 2011-1-14 16:17:31 | 只看该作者
好多……
7#
发表于 2011-1-14 16:26:15 | 只看该作者
这是远远不够的,LNMP里的L就没有编译嘛,一定要用自己编译的内核才行的嘛
8#
发表于 2011-1-14 16:33:53 | 只看该作者
此贴必火 占位
9#
发表于 2011-1-14 16:36:45 | 只看该作者
期待楼主的第六版
10#
 楼主| 发表于 2011-1-14 16:51:18 | 只看该作者
原帖由 needvps 于 2011-1-14 16:36 发表
期待楼主的第六版


不出了,写完这个就不写了,继续捣浆糊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-11 02:36 , Processed in 0.076611 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表