Ubuntu下LNMP的安装配置

二月 17, 2010 by · Leave a Comment 

刚装好的系统有 locale 问题,在 putty 显示会有乱码,我们可以使用 locale-gen 命令生成下下…

  1. locale-gen en_US.UTF-8
     
  2. locale-gen fr_FR
     
  3. locale-gen zh_CN.UTF-8
     
  4. locale-gen zh_CN
     
  5. locale-gen zh_CN.GBK
     
  6. locale-gen zh_CN.GB18030

复制代码

打开 /etc/default/locale 文件,输入以下内容,然后重启系统即可。

  1. LANG="zh_CN.UTF-8"
     
  2. LANGUAGE="zh_CN:zh"

复制代码

我们再把系统软件源给改了,修改 /etc/apt/sources.list 文件即可,当然修改系统文件最好之前自己做个备份…

  1. cp /etc/apt/sources.list /etc/apt/sources.list_backup
     
  2. vi /etc/apt/sources.list
     
  3. # 然后添加下面的内容
     
  4. deb http://archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse
     
  5. deb http://archive.ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse
     
  6. deb http://archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe multiverse
     
  7. deb http://archive.ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
     
  8. deb http://archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
     
  9. deb-src http://archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse
     
  10. deb-src http://archive.ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse
     
  11. deb-src http://archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe multiverse
     
  12. deb-src http://archive.ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
     
  13. deb-src http://archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse

复制代码

具体源可以根据自己服务器的位置自己去设置
然后安装一些需要的软件…

  1. apt-get install vim wget rcconf cron build-essential imagemagick postfix vsftpd mailx gawk bison subversion

复制代码

然后安装其他一些些软件和库文件,软件源中的 autoconf 貌似有点问题,用2.13版本的…

  1. apt-get install autoconf2.13 \
     
  2. libjpeg62 libjpeg62-dev \
     
  3. libpng12-0 libpng12-dev \
     
  4. libfreetype6 libfreetype6-dev \
     
  5. libxml2 libxml2-dev \
     
  6. zlib1g zlib1g-dev \
     
  7. bzip2 libbz2-dev \
     
  8. libncurses5 libncurses5-dev \
     
  9. libpcre3 libpcre3-dev \
     
  10. curl \
     
  11. libssl-dev \
     
  12. slapd ldap-utils \
     
  13. libcurl4-openssl-dev \
     
  14. libmcrypt-dev \
     
  15. libmhash-dev \
     
  16. libmysqlclient15-dev \
     
  17. libxpm-dev libt1-dev \
     
  18. libgmp3-dev libpspell-dev \
     
  19. libsnmp-dev libtidy-dev

复制代码

在编译 php 的时候,有可能会提示缺少啥啥的,缺啥补啥,自己给装上即可,比如

  1. # mm 的安装
     
  2. wget ftp://ftp.ossp.org/pkg/lib/mm/mm-1.4.2.tar.gz
     
  3. tar -zxvf mm-1.4.2.tar.gz
     
  4. ./configure
     
  5. make
     
  6. make install
     
  7.  
  8. # libevent 的安装
     
  9. wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
     
  10. tar xzvf libevent-1.4.13-stable.tar.gz
     
  11. cd libevent-1.4.13-stable
     
  12. ./configure && make && make install
     
  13. ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib

复制代码

然后安装MySQL,命令装上就可以了。

  1. apt-get install mysql-server mysql-client

复制代码

还有些程序…

  1. wget http://sysoev.ru/nginx/nginx-0.8.32.tar.gz
     
  2. wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
     
  3. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre- 8.00.tar.gz

复制代码

安装 libiconv:

  1. tar zxf libiconv-1.13.1.tar.gz
     
  2. cd libiconv-1.13.1
     
  3. ./configure –prefix=/usr/local
     
  4. make
     
  5. make install

复制代码

开始装Nginx了:

  1. tar xzf nginx-0.8.32.tar.gz
     
  2. cd nginx-0.8.32
     
  3.  
  4. # 编译nginx,增加 http_stub_status模块,默认安装到目录/usr/local/nginx,指定可执行脚本到/usr/local/sbin
     
  5. cd nginx-0.8.32
     
  6. ./configure –sbin-path=/usr/local/sbin \
     
  7. –user=www-data –group=www-data \
     
  8. –prefix=/usr/local/nginx \
     
  9. –with-http_stub_status_module \
     
  10. –with-http_stub_status_module \
     
  11. –with-http_ssl_module \
     
  12. –with-http_flv_module \
     
  13. –with-http_gzip_static_module \
     
  14. –with-http_realip_module
     
  15.  
  16. # –with-http_realip_module 这个就是把负载平衡也就是反向代理的模块给装上,以后会用上的
     
  17.  
  18. # 编译并安装
     
  19. make
     
  20. make install

复制代码

安装完成后,使用下面的语句启动nginx并在浏览器中输入 http://localhost 访问,如果访问能够出现的页面显示"Welcome to nginx!"那就说明您的nginx安装成功。

  1. /usr/local/sbin/nginx

复制代码

安装下PCRE先:

  1. cd pcre-8.00
     
  2. ./configure –enable-utf8 –enable-unicode-properties –enable-pcregrep-libz –enable-pcregrep-libbz2
     
  3. make
     
  4. make install

复制代码

现在安装 php-fpm 就会简单多了,现在 php-fpm 已经加到 php 核心里了,应该在 php-5.3.3 里就有了吧,兴许 5.3.2 就可以了…
现在我们还是用 SVN 来装…

  1. svn co http://svn.php.net/repository/php/php-src/branches/PHP_5_3_FPM php_5_3_fpm
     
  2. cd php_5_3_fpm
     
  3. ./buildconf

复制代码

然后我们就可以编译了…

  1. . /configure –enable-fastcgi –enable-fpm \
     
  2. –enable-force-cgi-redirect \
     
  3. –with-gd –enable-gd-native-ttf \
     
  4. –with-openssl –with-mcrypt –with-openssl-dir \
     
  5. –with-mysql –with-mysqli –with-pdo-mysql \
     
  6. –with-jpeg-dir=/usr/lib –with-png-dir=/usr/lib \
     
  7. –with-gettext=/usr/lib –with-curl=/usr/lib \
     
  8. –with-curlwrappers –with-freetype-dir=/usr/lib \
     
  9. –with-zlib –with-zlib-dir=/usr/include \
     
  10. –enable-mbstring –enable-sockets \
     
  11. –with-iconv-dir=/usr/local \
     
  12. –with-libxml-dir=/usr –enable-xml \
     
  13. –enable-discard-path –enable-bcmath \
     
  14. –enable-shmop –enable-sysvsem \
     
  15. –enable-inline-optimization –enable-mbregex \
     
  16. –enable-force-cgi-redirect –enable-pcntl \
     
  17. –with-ldap –with-xmlrpc –enable-zip –enable-soap \
     
  18. –with-mhash –enable-exif –enable-ftp \
     
  19. –enable-gd-jis-conv –enable-calendar \
     
  20. –enable-sqlite-utf8 –with-bz2 –with-gmp \
     
  21. –with-mm –with-pspell –with-snmp –with-t1lib \
     
  22. –with-tidy –with-ttf –with-xpm-dir \
     
  23. –with-libevent=/usr/ –with-pear –enable-zend-multibyte

复制代码

在 configure 结束之后,make时会出错(undefined reference to libiconv_open'之类的),此时修改Makefile,查找EXTRA_LIBS = ….. -lcrypt,再最后面添加上 -liconv,然后运行make命令即可。
在 php_5_3_fpm 目录下面,有个php.ini的production和development的,和以前好像名称变了,我们就复制那个生产环境下的好了…复制为 /usr/local/lib/php.ini 就可以了

可以用PCRE命令安装上memcache…用来启用 wordpress的memcached支持。

  1. pecl install memcache

复制代码

然后我们需要编辑 /usr/local/lib/php.ini 文件…大概有几点..可以用vim查找关键字编辑下…

    * post_max_size = 18M
    * upload_max_filesize = 12M
    * date.timezone = Asia/Shanghai
    * 在末尾添加 extension=memcache.so
    * 更改extension_dir,其中设置为 /usr/local/lib/php/extensions/no-debug-non-zts-20090626/,这个路径根据 php 版本不一样也是可能会变化的,自己安装好 php 的时候注意一下就可以了…

安装eaccelerator缓存器:

  1. wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
     
  2. tar jxf eaccelerator-0.9.6-rc1.tar.bz2
     
  3. cd eaccelerator-0.9.6-rc1
     
  4. phpize
     
  5. ./configure –enable-eaccelerator=shared –with-php-config=/usr/local/bin/php-config
     
  6. make
     
  7. make install

复制代码

还是老样子,把eaccelerator.so添加到 php.ini 里面,设置个目录放缓存,mkdir -p /var/cache/eaccelerator。
然后在 php.ini 添加eaccelerator.so,可以改成这样:

  1. extension="eaccelerator.so"
     
  2. eaccelerator.shm_size="32"
     
  3. eaccelerator.cache_dir="/var/cache/eaccelerator"
     
  4. eaccelerator.enable="1"
     
  5. eaccelerator.optimizer="1"
     
  6. eaccelerator.check_mtime="1"
     
  7. eaccelerator.debug="0"
     
  8. eaccelerator.filter=""
     
  9. eaccelerator.shm_max="0"
     
  10. eaccelerator.shm_ttl="3600"
     
  11. eaccelerator.shm_prune_period="3600"
     
  12. eaccelerator.shm_only="0"
     
  13. eaccelerator.compress="1"
     
  14. eaccelerator.compress_level="9"

复制代码

至于那个 ZendOptimizer 没找到 php-5.3 版本的,放弃了…
配置Nginx和PHP-FPM开机自启动:

  1. vi /etc/rc.local
     
  2. # 在末尾添加内容
     
  3.  
  4. ulimit -SHn 51200
     
  5. /usr/local/sbin/nginx
     
  6. /usr/local/sbin/php-fpm

复制代码

我们还可以配置下 Nginx 的日志轮询什么的,新建个文件 /usr/local/nginx/sbin/cut_nginx_log.sh,用 chmod +xcut_nginx_log.sh将其设置为可执行,使用 crontab -e 命令编辑系统定时任务,将下面这一句加入其中。其中的设置 38 4* * * 表示本程序每天4点38分定时运行。

  1. #!/bin/bash
     
  2. # This script run at 4:38
     
  3.  
  4. # The Nginx logs path
     
  5. logs_path="/usr/local/nginx/logs/"
     
  6.  
  7. mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
     
  8. mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
     
  9. kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

复制代码

  1. crontab -e
     
  2. # 添加下面一条
     
  3. 38 4 * * * /bin/bash  /usr/local/nginx/sbin/cut_nginx_log.sh

复制代码

基本上就如此了,一些优化配置自己根据情况设置设置…

About admin

注意:

1、本站启用了审核机制,你的留言可能稍后才会显示,请不要重复提交,谢谢。
2、留言时的头像是Gravatar提供的服务。想设置的看这里
3、评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。

To submit your comment, click the image below where it asks you to...
Clickcha - The One-Click Captcha