• lnmp 环境安装


    1)修改更新源
    升级系统更新 yum update

    安装nginx版本为0.8.36

    一。下载nginx

    下载地址:http://www.nginx.org/

    选择nginx-0.8.36

    将该下载包拷贝到/usr/local/下(随意了,找个地方就好)

    二。安装

    cd /usr/local/

    tar zxvf nginx-0.8.36.tar.gz

    cd nginx-0.8.36

    按照一些网络资料的介绍,执行如下命令即可完成安装

    ./configure

    make

    make install

    但在实际安装过程中会,执行./configure时,根据系统的配置不同会有不同的错误提示,这里不罗嗦了,安装nginx需要安装openssl和 pcre,

    openssl在linux下svn的安装中有过介绍,这里不再赘述,下面只介绍一下pcre的安装,如下:

    下载pcre:http://sourceforge.net/projects/pcre/files/ ,选择pcre-8.02.tar.gz,拷贝到/usr/local/下

    tar -zxvf pcre-8.02.tar.gz

    cd pcre-8.02

    ./configure --prefix=/usr/local/pcre

    make

    make install

    ok,pcre安装完成

    接着我们安装nginx,

    cd /usr/local/nginx-0.8.36

    ./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.02 --with-http_ssl_module --with-openssl=/usr/local/openssl-0.9.8o

    make

    make install

    ok,nginx安装完成。

    三。配置

    修改 /usr/local/pcre/conf/nginx.conf 来满足自己的需求,下面给一个负载的小实例
    Java代码 复制代码 收藏代码

    user nginx;#确保存在这个用户
    worker_processes 2;

    error_log /var/log/nginx/error.log info;#确保路径存在

    pid logs/nginx.pid;


    events {
    worker_connections 1024;
    multi_accept on;
    use epoll;
    }


    http {
    include mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] $request '
    '"$status" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    #tcp_nopush on;

    keepalive_timeout 30;

    #gzip on;

    server_names_hash_bucket_size 128;
    upstream tomcats {
    server 192.168.0.104:8888 weight=3;
    server 192.168.2.94:8888 weight=2;
    ip_hash;

    }

    server {
    listen 80;

    charset gb2312;
    add_header test private;

    location / {
    root /usr/local/test/boss/test;
    index index.html index.htm index.jsp;

    proxy_pass http://tomcats;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 50m;
    client_body_buffer_size 256k;
    proxy_connect_timeout 10;
    proxy_send_timeout 15;
    proxy_read_timeout 15;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    }

    }

    注意,这里nginx监听80端口,所以要在iptables里打开80端口。

    启动nqinx:

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

    接着访问这台机器的80的端口,如果请求成功,则说明配置成功。

    为了操作方便,可以自己写一个nginx命令脚本,放到/etc/init.d下,并赋予其执行权限即可,详见附件,执行方法如下:

    启动:service nginx start

    停止:service nginx stop

    重启:service nginx reconfigure

    查看状态:service nginx status


    安装mysql-5.6.12

    2)安装一些mysql需要的依赖包
    #yum install -y wget gcc-c++ ncurses-devel cmake make perl

    wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.12.tar.gz

    mv /etc/my.cnf /etc/mysql.cof.back

    groupadd mysql
    useradd -g mysql mysql

    mkdir -p /usr/local/web/mysql 程序目录
    mkdir /home/mysql/data 数据目录

    tar -zxvf mysql-5.6.12.tar.gz

    cmake
    -DCMAKE_INSTALL_PREFIX=/usr/local/web/mysql
    -DMYSQL_UNIX_ADDR=/usr/local/web/mysql/mysql.sock
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_MEMORY_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DENABLED_LOCAL_INFILE=1
    -DMYSQL_DATADIR=/home/mysql/data
    -DMYSQL_USER=mysql
    -DMYSQL_TCP_PORT=3306

    make
    make install

    修改目录权限
    chown -R mysql:mysql /usr/local/web/mysql/
    chown -R mysql:mysql /home/mysql/data/

    加入环境变量
    vi /etc/profile
    加入一下两句
    PATH=$PATH:/usr/local/web/mysql/bin:/usr/local/web/mysql/lib/
    export PATH
    保存推出,让其立即生效
    source /etc/profile

    执行初始化配置脚本,创建系统自带的数据库和表。
    /usr/local/web/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/web/mysql --datadir=/home/mysql/data

    复制服务启动脚本
    cp /usr/local/web/mysql/support-files/mysql.server /etc/init.d/mysqld

    启动
    service mysqld start

    设置开机启动
    chkconfig --level 35 mysqld on

    修改root密码
    mysqladmin -u root password 'new-password'


    3)php安装

    yum -y install libmcrypt-devel mhash-devel libxslt-devel
    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 curl curl-devel e2fsprogs e2fsprogs-devel
    krb5 krb5-devel libidn libidn-devel openssl openssl-devel

    安装libmcrypt
    wget http://www.51osos.com/uploads/soft/libmcrypt-2.5.8.tar.gz
    tar -zxvf libmcrypt-2.5.8.tar.gz
    cd libmcrypt-2.5.8
    ./configure --prefix=/usr/local/libmcrypt
    make && make install


    下载php 5.4.16
    wget http://www.php.net/get/php-5.4.16.tar.gz/from/this/mirror
    http://www.php.net/get/php-5.4.23.tar.gz/from/this/mirror

    tar -zxvf php-5.4.16.tar.gz
    cd php-5.4.16


    ./configure --prefix=/usr/local/web/php --with-config-file-path=/usr/local/web/php/etc --enable-fpm --enable-safe-mode --enable-inline-optimization
    --with-mysql=mysqlnd --with-mysqli=mysqlnd -enable-pdo --with-pdo-mysql
    --disable-debug --disable-rpath
    --enable-mbstring --with-curl --with-curlwrappers --with-bz2 --with-zlib --enable-zip
    --with-jpeg-dir --with-png-dir --with-gd --with-freetype-dir --enable-gd-native-ttf
    --enable-sockets --enable-soap
    --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex
    --with-mhash --with-pcre-regex --with-mcrypt=/usr/local/libmcrypt
    --with-iconv --with-libxml-dir=/usr --enable-xml --enable-bcmath --with-openssl

    make && make install

    cp php.ini-production /usr/local/web/php/etc/php.ini
    cd /usr/local/web/php/etc/
    cp php-fpm.conf.default php-fpm.conf
    vim php-fpm.conf

    user = www
    group = www
    pm.start_servers = 200
    pm.min_spare_servers = 50
    pm.max_spare_servers = 350

    创建用户
    groupadd www
    useradd -g www www

    INT, TERM 立刻终止
    QUIT 平滑终止
    USR1 重新打开日志文件
    USR2 平滑重载所有worker进程并重新载入配置和二进制模块

    php-fpm 启动
    /usr/local/web/php/sbin/php-fpm
    php-fpm 关闭:
    kill -INT `cat /usr/local/web/php/var/run/php-fpm.pid`
    php-fpm 重启:
    kill -USR2 `cat /usr/local/web/php/var/run/php-fpm.pid`
    查看php-fpm进程数:
    ps aux | grep -c php-fpm

    4)Nginx
    安装如果报错为Nginx: error while loading shared libraries: libpcre.so.1
    具体网站可参考http://www.2cto.com/os/201304/199770.html
    找到libpcre.so.1文件路径
    ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1
    ln -s /usr/local/lib/libpcre.so.1 /lib64/


    关闭Nginx
    ps -ef | grep nginx
    kill -quit 进程号
    启动Nginx
    ./nginx -c /usr/local/web/nginx/conf/nginx.conf

    ./nginx -s reload

    Nginx.conf文件重要修改

    location ~ ^/feedback/.+.php$ {
    root /home/web/yqbb/bgskk/app/htdocs;
    rewrite /feedback/(.*.php?) /$1 break;
    include fastcgi.conf;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    5)SVN
    安装SNV
    yum install subversion

    建立SVN库
    mkdir /home/svn/p2p
    svnadmin create /home/svn/p2p

    配置SNV
    cd /home/svn/p2p/conf

    修改passwd 添加SVN用户名和密码
    [users]
    yangjia=123456
    用户名=密码

    修改authz 修改用户文件使用权限
    [/]
    yangjia=rw

    修改snvserv.conf 配置SVN服务
    anon-access = none # 使非授权用户无法访问
    auth-access = write # 使授权用户有写权限
    password-db = password
    authz-db = authz # 访问控制文件
    realm = /home/svn/p2p # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。

    启动SVN
    svnserve -d -r /home/svn/p2p

    停止SVN
    ps -aux | grep svnserve
    kill -quit 进程号

    设置SVN钩子脚本

    进入版本库下的hooks目录
    cd /home/svn/p2p/hooks/

    将post-commit.tmpl 复制为 post-commit
    cp post-commit.tmpl post-commit

    给post-commit可执行权限
    chmod 0777 post-commit


    修改文件
    给mailer加上注释,具体语言有en_US.UTF-8、zh_CN.UTF-8、zh_CN.GB2312。
    svn name处改成一个有参与权限的svn账号,后面的svn pass是密码

    vi post-commit

    #mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
    export LANG=en_US.UTF-8
    SVN=/usr/bin/svn
    STATIC_DIR=/home/www/p2p
    ${SVN} update ${STATIC_DIR} --username "svn name" --password "svn pass"

    Linux 设置最大文件打开数

    1)ulimit -n 65536

    2)通过VI打开/etc/security/limits.conf
    加入* - nofile 65536

    VI打开/etc/sysctl.conf
    加入fs.file-max = 65536

  • 相关阅读:
    Java内存模型
    Thread.sleep(0)的作用
    Java中用到的线程调度算法是什么
    怎么检测一个线程是否持有对象监视器
    为什么要使用线程池
    ThreadLocal
    生产者消费者模型的作用
    线程间通信
    线程安全
    c#常日期转换(转)
  • 原文地址:https://www.cnblogs.com/yangchunlong/p/8303362.html
Copyright © 2020-2023  润新知