Ubuntu下LNMP的安装配置
二月 17, 2010 by admin · Leave a Comment
刚装好的系统有 locale 问题,在 putty 显示会有乱码,我们可以使用 locale-gen 命令生成下下…
- locale-gen en_US.UTF-8
- locale-gen fr_FR
- locale-gen zh_CN.UTF-8
- locale-gen zh_CN
- locale-gen zh_CN.GBK
- locale-gen zh_CN.GB18030
复制代码
打开 /etc/default/locale 文件,输入以下内容,然后重启系统即可。
- LANG="zh_CN.UTF-8"
- LANGUAGE="zh_CN:zh"
复制代码
我们再把系统软件源给改了,修改 /etc/apt/sources.list 文件即可,当然修改系统文件最好之前自己做个备份…
- cp /etc/apt/sources.list /etc/apt/sources.list_backup
- vi /etc/apt/sources.list
- # 然后添加下面的内容
- deb http://archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse
- deb http://archive.ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse
- deb http://archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe multiverse
- deb http://archive.ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
- deb http://archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
- deb-src http://archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse
- deb-src http://archive.ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse
- deb-src http://archive.ubuntu.com/ubuntu/ jaunty-updates main restricted universe multiverse
- deb-src http://archive.ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
- deb-src http://archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
复制代码
具体源可以根据自己服务器的位置自己去设置…
然后安装一些需要的软件…
- apt-get install vim wget rcconf cron build-essential imagemagick postfix vsftpd mailx gawk bison subversion
复制代码
然后安装其他一些些软件和库文件,软件源中的 autoconf 貌似有点问题,用2.13版本的…
- apt-get install autoconf2.13 \
- libjpeg62 libjpeg62-dev \
- libpng12-0 libpng12-dev \
- libfreetype6 libfreetype6-dev \
- libxml2 libxml2-dev \
- zlib1g zlib1g-dev \
- bzip2 libbz2-dev \
- libncurses5 libncurses5-dev \
- libpcre3 libpcre3-dev \
- curl \
- libssl-dev \
- slapd ldap-utils \
- libcurl4-openssl-dev \
- libmcrypt-dev \
- libmhash-dev \
- libmysqlclient15-dev \
- libxpm-dev libt1-dev \
- libgmp3-dev libpspell-dev \
- libsnmp-dev libtidy-dev
复制代码
在编译 php 的时候,有可能会提示缺少啥啥的,缺啥补啥,自己给装上即可,比如
- # mm 的安装
- wget ftp://ftp.ossp.org/pkg/lib/mm/mm-1.4.2.tar.gz
- tar -zxvf mm-1.4.2.tar.gz
- ./configure
- make
- make install
- # libevent 的安装
- wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
- tar xzvf libevent-1.4.13-stable.tar.gz
- cd libevent-1.4.13-stable
- ./configure && make && make install
- ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib
复制代码
然后安装MySQL,命令装上就可以了。
- apt-get install mysql-server mysql-client
复制代码
还有些程序…
- wget http://sysoev.ru/nginx/nginx-0.8.32.tar.gz
- wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
- wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre- 8.00.tar.gz
复制代码
安装 libiconv:
- tar zxf libiconv-1.13.1.tar.gz
- cd libiconv-1.13.1
- ./configure –prefix=/usr/local
- make
- make install
复制代码
开始装Nginx了:
- tar xzf nginx-0.8.32.tar.gz
- cd nginx-0.8.32
- # 编译nginx,增加 http_stub_status模块,默认安装到目录/usr/local/nginx,指定可执行脚本到/usr/local/sbin
- cd nginx-0.8.32
- ./configure –sbin-path=/usr/local/sbin \
- –user=www-data –group=www-data \
- –prefix=/usr/local/nginx \
- –with-http_stub_status_module \
- –with-http_stub_status_module \
- –with-http_ssl_module \
- –with-http_flv_module \
- –with-http_gzip_static_module \
- –with-http_realip_module
- # –with-http_realip_module 这个就是把负载平衡也就是反向代理的模块给装上,以后会用上的
- # 编译并安装
- make
- make install
复制代码
安装完成后,使用下面的语句启动nginx并在浏览器中输入 http://localhost 访问,如果访问能够出现的页面显示"Welcome to nginx!"那就说明您的nginx安装成功。
- /usr/local/sbin/nginx
复制代码
安装下PCRE先:
- cd pcre-8.00
- ./configure –enable-utf8 –enable-unicode-properties –enable-pcregrep-libz –enable-pcregrep-libbz2
- make
- make install
复制代码
现在安装 php-fpm 就会简单多了,现在 php-fpm 已经加到 php 核心里了,应该在 php-5.3.3 里就有了吧,兴许 5.3.2 就可以了…
现在我们还是用 SVN 来装…
- svn co http://svn.php.net/repository/php/php-src/branches/PHP_5_3_FPM php_5_3_fpm
- cd php_5_3_fpm
- ./buildconf
复制代码
然后我们就可以编译了…
- . /configure –enable-fastcgi –enable-fpm \
- –enable-force-cgi-redirect \
- –with-gd –enable-gd-native-ttf \
- –with-openssl –with-mcrypt –with-openssl-dir \
- –with-mysql –with-mysqli –with-pdo-mysql \
- –with-jpeg-dir=/usr/lib –with-png-dir=/usr/lib \
- –with-gettext=/usr/lib –with-curl=/usr/lib \
- –with-curlwrappers –with-freetype-dir=/usr/lib \
- –with-zlib –with-zlib-dir=/usr/include \
- –enable-mbstring –enable-sockets \
- –with-iconv-dir=/usr/local \
- –with-libxml-dir=/usr –enable-xml \
- –enable-discard-path –enable-bcmath \
- –enable-shmop –enable-sysvsem \
- –enable-inline-optimization –enable-mbregex \
- –enable-force-cgi-redirect –enable-pcntl \
- –with-ldap –with-xmlrpc –enable-zip –enable-soap \
- –with-mhash –enable-exif –enable-ftp \
- –enable-gd-jis-conv –enable-calendar \
- –enable-sqlite-utf8 –with-bz2 –with-gmp \
- –with-mm –with-pspell –with-snmp –with-t1lib \
- –with-tidy –with-ttf –with-xpm-dir \
- –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支持。
- 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缓存器:
- wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
- tar jxf eaccelerator-0.9.6-rc1.tar.bz2
- cd eaccelerator-0.9.6-rc1
- phpize
- ./configure –enable-eaccelerator=shared –with-php-config=/usr/local/bin/php-config
- make
- make install
复制代码
还是老样子,把eaccelerator.so添加到 php.ini 里面,设置个目录放缓存,mkdir -p /var/cache/eaccelerator。
然后在 php.ini 添加eaccelerator.so,可以改成这样:
- extension="eaccelerator.so"
- eaccelerator.shm_size="32"
- eaccelerator.cache_dir="/var/cache/eaccelerator"
- eaccelerator.enable="1"
- eaccelerator.optimizer="1"
- eaccelerator.check_mtime="1"
- eaccelerator.debug="0"
- eaccelerator.filter=""
- eaccelerator.shm_max="0"
- eaccelerator.shm_ttl="3600"
- eaccelerator.shm_prune_period="3600"
- eaccelerator.shm_only="0"
- eaccelerator.compress="1"
- eaccelerator.compress_level="9"
复制代码
至于那个 ZendOptimizer 没找到 php-5.3 版本的,放弃了…
配置Nginx和PHP-FPM开机自启动:
- vi /etc/rc.local
- # 在末尾添加内容
- ulimit -SHn 51200
- /usr/local/sbin/nginx
- /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分定时运行。
- #!/bin/bash
- # This script run at 4:38
- # The Nginx logs path
- logs_path="/usr/local/nginx/logs/"
- mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
- mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
- kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
复制代码
- crontab -e
- # 添加下面一条
- 38 4 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh
复制代码
基本上就如此了,一些优化配置自己根据情况设置设置…