zoukankan      html  css  js  c++  java
  • Linux study

    在centos5.5中编译LNMP环境

    一.配置好ip, dns, 网关, 确保使用远程连接工具能够连接服务器

    centos设置ip地址,网关, dns教程: http://www.osyumwei.com/archives/423.html

    二.配置防火墙, 开启80端口,以及3306端口通过

    vi /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT   #允许80端口通过防火墙
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  #允许3306端口通过防火墙

    特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面 添加好之后防火墙规则如下所示

    #########################################################
    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    #########################################################
    /etc/init.d/iptables restart #最后重启防火墙使配置生效

    三.关闭SELINUX

    vi /etc/selinux/config
    #SELINUX=enforcing #注释掉
    #SELINUXTYPE=targeted #注释掉
    SELINUX=disabled #增加
    :wq  #保存退出
    shutdown -r now #重启系统

    四.系统约定

    软件源代码码包存放位置: /root/src
    源码包编译安装的位置: /usr/local/要安装的位置

    五.所需的软件包

    1.libxml2-2.6.30.tar.gz
    2.libmcrypt-2.5.8.tar.gz
    3.zlib-1.2.3.tar.gz
    4.libpng-1.2.31.tar.gz
    5.jpegsrc.v6b.tar.gz
    7.freetype-2.3.5.tar.gz
    8.autoconf-2.61.tar.gz
    9.gd-2.0.35.tar.gz
    10.ncurses-5.6.tar.gz
    11.pcre-8.34.tar.gz
    12.nginx-1.4.7.tar.gzx
    13.mysql-5.0.41.tar.gz
    14.php-5.2.6-fpm-0.5.9.diff.gz
    15.php-5.2.6.tar.gz
    16.ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz
    17.phpMyAdmin-3.0.0-rc1-all-languages.tar.gz

    六.解压软件包

    tar -zxvf 软件包名字
    //为了方便, 可以编写shell脚本自动解压
    
    ##shell脚本: extract_soft.sh
    SRC_DIR = '/root/src';
    FILE_LIST = `ls $SRC_DIR`;
    
    for file in $FILE_LIST
        tar -zxvf $file $SRC_DIR -C
    done
    
    更改脚本执行限
    chmod +x extract_soft.sh
    ./extract_soft.sh

    七.安装软件

    1.安装libxml2库文件

    cd /root/src/libxml2-2.6.30
    ./configure --prefix=/usr/local/libxml2/
    make 
    make install

    2.安装libmcrypt 库文件

    cd /root/src/libmcrypt-2.5.8
    ./configure --prefix=/usr/local/libmcrypt/
    make 
    make install

    3.安装libmcrypt库下的libltdl

    cd /root/src/libmcrypt-2.5.8/libltdl
    ./configure --enable-ltdl-install
    make
    make install

    4.安装zlib 库文件

    cd /root/src/zlib-1.2.3   
    ./configure        不要指定安装路径,否则安装libpng时会出错。安装到默认位置。
    make               可以定义下 安装日志。make install > /test/backup/zlib_20111218.install.log
    make install

    5.安装 libpng 库文件

    cd /root/src/libpng-1.2.31
    ./configure --prefix=/usr/local/libpng/
    make
    make install

    6.安装jpeg6 库文件

    mkdir /usr/local/jpeg6          //jpeg6软件安装目录
    mkdir /usr/local/jpeg6/bin      //存放命令的目录
    mkdir /usr/local/jpeg6/lib      //jpeg6库文件所在目录
    mkdir /usr/local/jpeg6/include  //存放头文件目录
    mkdir -p /usr/local/jpeg6/man/man1  //存放手册目录  -p是创建连续的目录
    cd /root/src/jpeg-6b
    ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
    make
    make install

    7.安装freetype 库文件

    cd /root/src/freetype-2.3.5
    ./configure --prefix=/usr/local/freetype/
    make
    make install

    8.安装autoconf 库文件

    cd /root/src/autoconf-2.61
    ./configure      //不要指定目录
    make 
    make install

    9.安装GD库文件

    cd /root/src/gd-2.0.35    //zlib没有指定安装目录,所以安装GD2不需要指定zlib的位置
    ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/
    make
    make install

    10.安装pcre库

    cd /root/src
    mkdir /usr/local/pcre #创建安装目录
    tar zxvf pcre-8.31.tar.gz
    cd pcre-8.31
    ./configure --prefix=/usr/local/pcre #配置
    make
    make install

    11.安装nginx软件

    cd /root/src/nginx-1.4.7  
    groupadd www #添加www组
    useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统
    tar zxvf nginx-1.2.3.tar.gz
    cd nginx-1.2.3
    ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.31
    注意:--with-pcre=/usr/local/src/pcre-8.31指向的是源码包解压的路径,而不是安装的路径,否则会报错
    make
    make install
    /usr/local/nginx/sbin/nginx #启动nginx

    12.安装mysql数据库的关联软件

    cd /root/src/ncurses-5.6   //这个一定要先安装,否则安装mysql会出错
    ./configure --with-shared --without-debug --without-ada --enable-overwrite
    make 
    make install

    13.安装mysql数据库

    groupadd mysql     /添加一个mysql标准组
    useradd -g mysql mysql   //添加mysql用户并加到mysql组中
    cd /root/src/mysql-5.0.41
    ./configure --prefix=/usr/local/mysql/ --with-extra-charsets=all
    make
    make install

    设置mysql

    cp support-files/my-medium.cnf /etc/my.cnf    //拷贝配置文件
    /usr/local/mysql/bin/mysql_install_db --user=mysql  //以mysql用户的身份建立数据表(多一个var目录)
    chown -R root /usr/local/mysql    //将mysql的主目录(即/usr/local/mysql)的属主设为root用户
    chown -R mysql /usr/local/mysql/var  //将var目录的属主设为mysql用户
    chgrp -R mysql /usr/local/mysql   //将mysql的主目录的属主设为mysql用户组
    /usr/local/mysql/bin/mysqld_safe  --user=mysql &  //启动mysql
    
    
    cp /lamp/mysql-5.0.41/support-files/mysql.server /etc/rc.d/init.d/mysqld //将mysql.server这个文件copy到/etc/init.d/目录下,并更名为mysqld
    chown root.root /etc/rc.d/init.d/mysqld //将mysqld的属主设置为root
    chmod 755 /etc/rc.d/init.d/mysqld  //给/etc/init.d/mysqld这个文件赋予“执行”权限
    chkconfig --add mysqld  //加入到开机自动运行
    chkconfig --list mysqld
    chkconfig --levels 245 mysqld off  //运行级别为2 4 5

    2、为nginx脚本添加权限

    chmod a+x /etc/init.d/nginx

    3、添加nginx服务
    chkconfig --add nginx
    chkconfig nginx on

    4、测试

    service nginx start

    service nginx stop 

    service nginx reload

     

    14.安装php

    首先解压php-5.2.6.tar.gz  
    tar –zxvf php-5.2.17.tar.gz 
    gzip -cd hp-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1 //给php2.6打补丁
    cd 
    
    
    cd /root/src/php-5.2.6
    ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/  --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --enable-fastcgi --enable-fpm
    make
    make install
    
    cp php.ini-dist /usr/local/php/etc/php.ini  // 拷贝php配置文件到/usr/local/php/etc/下 并命名为php.ini
    echo "Addtype application/x-httpd-php .php .phtml" >> /etc/httpd/httpd.conf  //作用是 让apache解析php
    /usr/local/apache2/bin/apachectl restart //重启apache
    安装时出现的错误:
    libltdl.so.3: cannot open shared object file: No such file or directory
    libltdl其实已经安装了,后来我又重新安装一次,还是出现这个问题,后来在网是找到这个方法
    网上找到的解决方法:
    ln -s /usr/local/lib/libltdl.so.3 /usr/lib/libltdl.so.3

    14.配置Nginx支持php

    
    -配置php-fpm
    Nginx+PHP需要    PHP生成可执行文件才可以,所以要利用fastcgi技术来实现Nginx与PHP的整合,这个只要我们安装是启用FastCGI即可.这里,我们用php-fpm来管理FastCGI(php-fpm已以补丁的形式加入到PHP中). 
    
    编辑配置文件:
    vim php-fpm.conf
    
    找到如下代码:
    Unix user of processes
    <value name="user">nobody</value>
    Unix group of processes
    <value name="group">nobody</value>
    
    为FastCGI指定用户,可使用默认的nobody,也可另行指定.
    
    启动php-cgi进程
    /usr/local/php5/sbin/php-fpm start
    
    -配置nginx
    
    #配置nginx支持PHP(在其中一个虚拟主机下面如下配置)
    location ~ .*.(php|php5)?$
    {
        #fastcgi_pass unix:/tmp/php-cgi.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    
    重启Nginx进程
    /usr/local/nginx/sbin/nginx -s reload

    15.配置mysql

    cd /usr/local/mysql
    bin/mysqladmin version //简单的测试
    bin/mysqladmin varibles //查看所有mysql参数
    bin/mysql -u root //没有密码可以直接登录本机服务器
    
    
    #查看授权表的所有用户
    #mysql> select * from mysql.user G;
    #删除除localhost之外的所有用户(提高安全性)
    #mysql>delete from mysql.user where host!='localhost';
    #修改root用户的密码,这里的root用户指的是mysql的root用户,与Linux的root用户无关
    #mysql>set password for 'root'@'localhost'=password('123456');
    #刷新权限
    #mysql> FLUSH PRIVILEGES;

    16.安装zend加速器

    这个软件不是源代码,是二进制的bin文件 只需执行./install.sh即可
    然后根据提示安装
    如果./install.sh不能安装就用 ./install-tty安装
    这里需要填写配置文件的地址
    php:/usr/local/php/etc/
    Nginx:自动锁定

    17.安装phpadmin

    将解压的源码包拷贝到存放网站的目录下,并重命名为phpmyadmin
    [root@feng soft]# cp -a phpMyAdmin-3.0.0-rc1-all-languages /web/phpmyadmin  
    建立配置文件
    [root@feng phpmyadmin]# cp config.sample.inc.php  config.inc.php
    打开配置文件
    [root@feng phpmyadmin]# vi ./config.inc.php
    编辑配置文件,将cookie改为http
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'http';
    重启nginx
    /usr/local/nginx/sbin/nginx -s reload
  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/yifenghong/p/3758660.html
Copyright © 2011-2022 走看看