• CentOS 6.5 编译安装 LNMP环境


    具体参考:http://www.centoscn.com/CentosServer/www/2015/0422/5245.html

     

    建立一个软件包目录存放

    mkdir -p /usr/local/src/

    清理已经安装包

    rpm -e httpd
    rpm -e mysql
    rpm -e php
    yum -y remove httpd
    yum -y remove mysql
    yum -y remove php
    
    #搜索apache包
    rpm -qa http*
    
    #强制卸载apache包
    rpm -e --nodeps 查询出来的文件名
    
    #检查是否卸载干净
    rpm -qa|grep http*

    selinux可能会致使编译安装失败,我们先禁用它。永久禁用,需要重启生效

    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

    临时禁用,不需要重启 

    setenforce 0

    安装必备工具

    yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof

    安装mysql5.6.17

    按照标准需要给mysql创建所属用户和用户组

    创建群组
    groupadd mysql
    创建一个用户,不允许登陆和不创主目录 
    useradd -s /sbin/nologin -g mysql -M mysql
    检查创建用户
    tail -1 /etc/passwd

    centos最小化安装后,会有mysql的库因此先卸载!

    检查安装与否
    rpm -qa|grep mysql 
    强制卸载 
    rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps

    MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。 因此,我们首先要在系统中源码编译安装cmake工具。

    cd /usr/local/src
    wget
    http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz tar zxvf cmake-2.8.12.2.tar.gz cd cmake-2.8.12.2 ./configure make && make install

    使用cmake来编译安装mysql5.6.17

    cd /usr/local/src
    wget
    http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz tar zxvf mysql-5.6.17.tar.gz cd mysql-5.6.17 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DWITH_DEBUG=0 -DWITH_SSL=system make && make install

    修改/usr/local/mysql权限

    chmod +w /usr/local/mysql
    chown -R mysql:mysql /usr/local/mysql

    进入support-files目录

    cd support-files/
    如果还有my.cnf请备份
    mv /etc/my.cnf /etc/my.cnf.bak
    如果愿意也可以复制配置文件到etc下
    cp my-default.cnf /etc/my.cnf

    执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径

    /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

    拷贝mysql安装目录下support-files服务脚本到init.d目录

    #拷贝脚本
    cp mysql.server /etc/init.d/mysqld
    #赋予权限
    chmod +x /etc/init.d/mysqld

    设置开机启动

    chkconfig mysqld on
    启动MySQL
    service mysqld start
    或者
    /etc/init.d/mysql start

    修改环境变量

    修改/etc/profile文件
    vi /etc/profile
    在文件末尾添加
    PATH=/usr/local/mysql/bin:$PATH
    export PATH

    让配置立即生效

    source /etc/profile

    登陆测试,默认是没有密码,直接回车就可进入

    mysql -uroot -p

     ***************************安装 PHP 的分割线******************************************************

    安装依赖关系

    libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换

    cd /usr/local/src
    wget
    http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make && make install

    libmcrypt是加密算法扩展库。

    cd /usr/local/src
    wget
    http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure make && make install

    Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。

    cd /usr/local/src
    wget
    https://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz tar zxvf mhash-0.9.9.9.tar.gz cd mhash-0.9.9.9 ./configure make && make install

    编译mcrypt可能会报错:configure: error: *** libmcrypt was not found

    vi  /etc/ld.so.conf
    最后一行添加
    /usr/local/lib/
    载入
    ldconfig

     mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

    cd /usr/local/src
    wget
    http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz tar zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8 ./configure make && make install

    编译mcrypt可能会报错:/bin/rm: cannot remove `libtoolT': No such file or directory   如果出现错误,用下面的方法

    修改 configure 文件,把RM='$RM'改为RM='$RM -f' 这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依然会报错。

    正式开始编译php!

    cd /usr/local/src
    wget
    http://cn2.php.net/distributions/php-5.6.30.tar.gz tar zxvf php-5.6.30.tar.gz cd php-5.6.30 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv=/usr/local/libconv-1.14 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts make && make install

    如果出现 resinstall iconv

    cd /usr/local/src
    cd php-5.6.30
    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
    make && make install

    修改fpm配置php-fpm.conf.default文件名称

    mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

    复制php.ini配置文件

    cp php.ini-production /usr/local/php/etc/php.ini

    复制php-fpm启动脚本到init.d

    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    赋予执行权限

    chmod +x /etc/init.d/php-fpm

    添加为启动项

    chkconfig --add php-fpm

    设置开机启动

    chkconfig php-fpm on

    按照标准,给php-fpm创建一个指定的用户和组

    创建群组
    groupadd www
    创建一个用户,不允许登陆和不创主目录 
    useradd -s /sbin/nologin -g www -M www

    将5.6版本的php添加到环境变量(如果不添加,默认是5.3版本)

    修改/etc/profile文件
    vi /etc/profile
    
    在文件末尾的 PATH=/usr/local/mysql/bin:$PATH 后面再加PHP的命令目录
    
    PATH=/usr/local/mysql/bin:$PATH:/usr/local/php/bin

    让配置生效
    source /etc/profile

    立即启动php-fpm

    service php-fpm start
    #或者
    /etc/init.d/php-fpm start

    php安装完成

     ***************nginx安装分割线*****************

    安装openssl

    cd /usr/local/src
    
    wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
    
    tar zxvf openssl-1.0.2k.tar.gz
    
    cd openssl-1.0.2k
    
    ./config --prefix=/usr/local/src/openssl --openssldir=/usr/local/src/openssl/conf
    
    make && make install
    #检验安装
    /usr/local/src/openssl/bin/openssl version -a 

    安装pcre

    cd /usr/local/src
    
    wget https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.gz
    
    tar zxvf pcre-8.37.tar.gz
    
    cd pcre-8.37
    
    ./configure --prefix=/usr/local/src/pcre/
    
    make && make install

    安装zlib软件

    cd /usr/local/src
    
    wget https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
    
    tar zxvf zlib-1.2.11.tar.gz
    
    cd zlib-1.2.11
    
    ./configure --prefix=/usr/local/src/zlib/
    
    make && make install

     安装nginx

    #添加www用户和组
    groupadd www
    useradd -g www www
    
    #创建网站根目录
    mkdir -p     /var/www/root/
    chmod -R 775 /var/www/root/
    
    #进入安装目录
    cd /usr/local/src
    
    #删除原有安装
    rm -rf nginx
    rm -rf nginx-1.12.0
    
    wget http://nginx.org/download/nginx-1.12.0.tar.gz
     
    tar zxvf nginx-1.12.0.tar.gz
    
    cd nginx-1.12.0
    
    #配置(使用openssl、pcre、zlib的源码路径)
    ./configure 
    --user=www 
    --group=www 
    --prefix=/usr/local/src/nginx 
    --with-http_ssl_module 
    --with-openssl=/usr/local/src/openssl-1.0.2k 
    --with-pcre=/usr/local/src/pcre-8.37 
    --with-zlib=/usr/local/src/zlib-1.2.11 
    --with-http_stub_status_module 
    --with-threads

    make && make install

    #验证
    /usr/local/src/nginx/sbin/nginx -V

    修改配置文件

    vi /usr/local/src/nginx/conf/nginx.conf

     

    修改配置文件中
    一:
    location / {
                root   html;                    //网站根目录
                index  index.html index.htm;
            }
    
    修改为
     location / {
                root    /var/www/root;
                index  index.html index.htm;
            }
    
    二:
    #location ~ .php$ {
            #    root           html;            //网站根目录
            #    fastcgi_pass   127.0.0.1:9000;    //将php传给9000好端口php-fpm
            #    fastcgi_index  index.php;        
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;    //需修改
            #    include        fastcgi_params;
            #}
    
    
    修改为
    location ~ .php$ {    
      autoindex_exact_size off;         #文件大小从KB开始显示
      autoindex_localtime on;            #显示文件修改时间为服务器本地时间 
       root    /var/www/root;        #自定义网站根目录
       fastcgi_pass   127.0.0.1:9000;    #需要开启
       fastcgi_index  index.php;        #需要开启
       fastcgi_param  SCRIPT_FILENAME   /var/www/root/$fastcgi_script_name;  
       include        fastcgi_params;    #需要开启
    }

    如果要开启目录浏览功能 ,在 server大括号选项中加入
    autoindex on;                 #开启nginx目录浏览功能
     

    启动nginx

    /usr/local/src/nginx/sbin/nginx 

    如果出现 nginx: [error] open() "/usr/local/src/nginx/logs/nginx.pid" failed (2: No such file or directory) 这个错误

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

    这时已经启动成功 

    ps aux | grep nginx

    可以看到master 和 worker 进程开启

     

    重启 nginx命令

    /usr/local/src/nginx/sbin/nginx -s reload

    关闭ngixn

    pkill -9 nginx

    测试端口

    netstat | grep 80

    浏览器测试

    IP:80
    
    本地的话 
    127.00.1

    如果访问不了,查看下防火墙的80端口是否开通

    vi /etc/sysconfig/iptables
    
    #看是否有下面这句 没有补上
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    
    #重启防火墙
    /etc/init.d/iptables restart

     

  • 相关阅读:
    gradle 转 maven
    java Multimap
    java 写法推荐
    Python虚拟环境virtualenv
    C# 转换图形为PCX 格式
    微软宣布.NET开发环境将开源 支持Mac OS X和Linux
    写给在Java和.net中徘徊的新手
    HTML5 vs FLASH vs SILVERLIGHT
    我的NHibernate曲折之行
    NHibernate 3 Beginner's Guide
  • 原文地址:https://www.cnblogs.com/syouth/p/6853261.html
Copyright © 2020-2023  润新知