Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7402989
  • 博文数量: 1756
  • 博客积分: 18684
  • 博客等级: 上将
  • 技术积分: 16232
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-02 10:28
个人简介

啥也没写

文章分类

全部博文(1756)

文章存档

2024年(2)

2023年(44)

2022年(39)

2021年(46)

2020年(43)

2019年(27)

2018年(44)

2017年(50)

2016年(47)

2015年(15)

2014年(21)

2013年(43)

2012年(143)

2011年(228)

2010年(263)

2009年(384)

2008年(246)

2007年(30)

2006年(38)

2005年(2)

2004年(1)

分类: LINUX

2008-11-12 16:10:54

最近在美国弄了一个VPS,感觉挺爽,所以就在上面安装了nginx+php
本文件主要参考的张宴的安装与配置:(原文),他老大太强了,费话不多说,开始了
先从张老大那里下载安装包,他的BLOG也是国外的VPS,所以下载速度很快,唯一不一样的,
我用的数据库和他的不一样!下载地址如下:
 
首先升级一下编译环境,VPS上什么都没有,所以要安装GCC、库之类
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel
 
yum -y patch  //后来才发现的,,没有这个,也升级一下吧
 
接下来安装支持文件,操作如下:
tar zxvf libiconv-1.12.tar.gz
cd libiconv-1.12/
./configure --prefix=/usr/local
make
make install
cd ../
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
tar zxvf mhash-0.9.9.tar.gz
cd mhash-0.9.9/
./configure
make
make install
cd ../
cp /usr/local/lib/libmcrypt.* /usr/lib
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
tar zxvf mcrypt-2.6.7.tar.gz
cd mcrypt-2.6.7/
./configure
make
make install
cd ../
安装完之后,安装mysql
tar -zxvf mysql-5.0.22.tar.gz
cd mysql-5.0.22
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all
make;make install
cd ../
 
groupadd mysql
useradd -g mysql mysql
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/.
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig --level 345 mysql on
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
service mysql start
/usr/local/mysql/bin/mysqladmin -u root password root
service mysql restart
 
再安装PHP及缓存工具
tar zxvf php-5.2.6.tar.gz
gzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1  //PHP管理工具
cd php-5.2.6/
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl
sed -i 's#-lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#& -liconv#' Makefile
make
make install
cp php.ini-dist /usr/local/php/etc/php.ini
cd ../
 
tar zxvf memcache-2.2.3.tgz
cd memcache-2.2.3/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../
 
tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../
sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\n#' /usr/local/php/etc/php.ini
sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php/etc/php.ini
 
新建一个缓存的目录
mkdir -p /usr/local/eaccelerator_cache
 
cat >>/usr/local/php/etc/php.ini<
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="1"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
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"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"
eof
 
groupadd www
useradd -g www www
mkdir -p /web/blog
chmod +w /web/blog
chown -R www:www /web/blog
 
rm -f /usr/local/php/etc/php-fpm.conf
cat >>/usr/local/php/etc/php-fpm.conf<

  All relative paths in this config are relative to php's install prefix  
 

    Pid file  
    /usr/local/php/logs/php-fpm.pid
    Error log file  
    /usr/local/php/logs/php-fpm.log
    Log level  
    notice
    When this amount of php processes exited with SIGSEGV or SIGBUS ...  
    10
    ... in a less than this interval of time, a graceful restart will be initiated.  
    Useful to work around accidental curruptions in accelerator's shared memory.  
    1m
    Time limit on waiting child's reaction on signals from master  
    5s
    Set to 'no' to debug fpm  
    yes
 

 
   

      Name of pool. Used in logs and stats.  
      default
      Address to accept fastcgi requests on.  
      Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'  
      /tmp/php-cgi.sock
     
        Set listen(2) backlog  
        -1
        Set permissions for unix socket, if one used.  
        In Linux read/write permissions must be set in order to allow connections from web server.  
        Many BSD-derrived systems allow connections regardless of permissions.  
       
       
        0666
     

      Additional php.ini defines, specific to this pool of workers.  
     
        /usr/sbin/sendmail -t -i
        1
     

      Unix user of processes  
        www
      Unix group of processes  
        www
      Process manager settings  
     
        Sets style of controling worker process count.  
        Valid values are 'static' and 'apache-like'  
        static
        Sets the limit on the number of simultaneous requests that will be served.  
        Equivalent to Apache MaxClients directive.  
        Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi  
        Used with any pm_style.  
        5
        Settings group for 'apache-like' pm style  
       
          Sets the number of server processes created on startup.  
          Used only when 'apache-like' pm_style is selected  
          20
          Sets the desired minimum number of idle server processes.  
          Used only when 'apache-like' pm_style is selected  
          5
          Sets the desired maximum number of idle server processes.  
          Used only when 'apache-like' pm_style is selected  
          35
       

     

      The timeout (in seconds) for serving a single request after which the worker process will be terminated  
      Should be used when 'max_execution_time' ini option does not stop script execution for some reason  
      '0s' means 'off'  
      0s
      The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file  
      '0s' means 'off'  
      0s
      The log file for slow requests  
      logs/slow.log
      Set open file desc rlimit  
      51200
      Set max core size rlimit  
      0
      Chroot to this directory at the start, absolute path  
     
      Chdir to this directory at the start, absolute path  
     
      Redirect workers' stdout and stderr into main error log.  
      If not set, they will be redirected to /dev/null, according to FastCGI specs  
      yes
      How much requests each process should execute before respawn.  
      Useful to work around memory leaks in 3rd party libraries.  
      For endless request processing please specify 0  
      Equivalent to PHP_FCGI_MAX_REQUESTS  
      10240
      Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.  
      Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)  
      Makes sense only with AF_INET listening socket.  
      127.0.0.1
      Pass environment variables like LD_LIBRARY_PATH  
      All $VARIABLEs are taken from current environment  
     
        $HOSTNAME
        /usr/local/bin:/usr/bin:/bin
        /tmp
        /tmp
        /tmp
        $OSTYPE
        $MACHTYPE
        2
     

   

 


eof
 
这里的说明,可以去张宴的BLOG上看!
/usr/local/php/sbin/php-fpm start
运行OK~
 
安装nginx
tar zxvf pcre-7.7.tar.gz
cd pcre-7.7/
./configure
make && make install
cd ../
tar zxvf nginx-0.7.19.tar.gz
cd nginx-0.7.19/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
 
配置文件:
cat >/usr/local/nginx/etc/nginx.conf<
user  www www;
worker_processes 1;
error_log  /web/logs/nginx_error.log  crit;
pid        /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
 {
  use epoll;
  worker_connections 51200;
 }
http
 {
  include       mime.types;
  default_type  application/octet-stream;
  #charse  gb2312;
    
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
    
  sendfile on;
  tcp_nopush     on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
  #limit_zone  crawler  $binary_remote_addr  10m;
server
 {
  listen       80;
  server_name blog.hibelle.cn;
  index index.html index.htm index.php;
  root  /web/blog;
  #limit_conn   crawler  20;
   
  #location /status {
  #stub_status on;
  #access_log off;
  #}
                            
  location ~ .*\.(php|php5)?$
   {     
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    #fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fcgi.conf;
   }
  
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
   {
    expires      30d;
   }
  location ~ .*\.(js|css)?$
   {
    expires      1h;
   }   
  log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
  access_log  /web/logs/access.log  access;
 }
server
 {
  listen  80;
  server_name  status.hibelle.cn;
  location / {
   stub_status on;
   access_log   off;
  }
 }
}
eof
 
 
cat >/usr/local/nginx/etc/fcgi.conf<
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
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  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;
eof
 
好了,再些配置就算完成了,
开机自启动
cat >>/etc/rc.local<
ulimit -SHn 51200
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx
eof
 
好了,到此就完了了,就可以防问了
blog:http://blog.hibelle.cn
status:
 
后记:张宴BLOG上的优化,无法完成,交换空间无法加,不过这个VPS是300M的内存,基本上够用!
还有,VPS可以做SQUID的WEB代理,,效果还可以。具说可以装OPENVPN,没试过!
阅读(1957) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~