zoukankan      html  css  js  c++  java
  • CentOS下编译安装LNMP环境

    一、卸载系统预安装的LAMP软件

    rpm -qa|grep httpd 
    rpm -e httpd httpd-tools
    rpm -qa|grep mysql
    rpm -e mysql mysql-libs
    rpm -qa|grep php
    rpm -e php-mysql php-cli php-gd php-common php
    yum -y remove httpd*
    yum -y remove mysql-server mysql mysql-libs
    yum -y remove php*

    二、添加用户

      添加用户和用户组 www 和 mysql,并且禁止登录。

      www用户主要是用来赋予nginx和php执行权限,mysql主要是赋予给mysql权限,禁止登录是为了防止用户有权限去操作www和mysql,一切为了安全!

    1 groupadd www
    2 useradd -s /sbin/nologin -g www www
    3 groupadd mysql
    4 useradd -s /sbin/nologin -g mysql mysql

    三、添加预安装包

    yum -y install gcc gcc-c++ libxml2 libxml2-devel pcre pcre-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libicu libicu-devel cmake ncurses ncurses-devel

      我一般都会将安装包放到/usr/local/src目录中,所以先执行下面的命令 

    cd /usr/local/src

      首先安装libmcrypt包 如果下面的下载地址不好用,请访问这个网址进行下载:https://sourceforge.net/projects/mcrypt/...

    cd /usr/local/src
    wget -c http://soft.vpser.net/web/libmcrypt/libmcrypt-2.5.8.tar.gz
    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
    ln -sf /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
    ln -sf /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
    ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
    ln -sf /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
    ldconfig

    四、安装 nginx

      我安装使用的是 nginx-1.9.12

    cd /usr/local/src
    wget -c http://nginx.org/download/nginx-1.9.12.tar.gz
    tar zxvf nginx-1.9.12.tar.gz
    cd nginx-1.9.12
    #nginx1.9.5之前的
    #./configure --prefix=/usr/local/nginx --user=www --group=www --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-pcre --with-http_stub_status_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
    #nginx1.9.5之后的(包含1.9.5)
    #./configure --prefix=/usr/local/nginx --user=www --group=www --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-pcre --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
    make && make install 

      ./configure 参数解释:

    --prefix=/usr/local/nginx #nginx的安装路径
    --user=www #设置nginx工作进程的用户
    --group=www #设置nginx工作进程的用户组
    --without-mail_pop3_module #禁用nginx处理/代理POP3协议
    --without-mail_imap_module #禁用nginx处理/代理IMAP协议
    --without-mail_smtp_module #禁用nginx处理/代理SMTP协议
    --with-http_ssl_module #使用https协议
    --with-pcre #启用pcre库,支持重写
    --with-http_stub_status_module #提供查看服务器统计信息的能力
    --with-http_v2_module #提供HTTP/2服务。从nginx1.9.5开始,http_v2_module 已经替换了http_spdy_module。所以安装之前的版本将该参数替换为--with-http_spdy_module(启动SPDY支持,SPDY可以缩短网页的加载时间,但是必须使用ssl传输协议)
    --with-http_gzip_static_module #启用预压缩(gzip)的支持
    --with-ipv6 #支持ipv6访问
    --with-http_sub_module #启用过滤器支持

      启动nginx的命令:

    /usr/local/nginx/sbin/nginx
    
    

    五、安装php

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

      这样php就安装完成了。然后接下来创建软连接:

    ln -sf /usr/local/php/bin/php /usr/local/bin/php

      生成php.ini配置文件,这里有两个php.ini,适合开发场景和生产场景,可以根据需要选择不同的配置文件,一般选择前者

    cp php.ini-development /usr/local/php/etc/php.ini #开发版本
    cp php.ini-production /usr/local/php/etc/php.ini #生产版本

      这时候php就已经安装完成了。接下来就是启用php-fpm服务了。

      首先生成配置文件

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

      启动php-fpm的准备工作

    cp /usr/local/src/php-7.0.4/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    chkconfig php-fpm on

      这个时候,使用如下命令就可以启动php-fpm了

    service php-fpm start

      启动起来之后,编辑nginx配置文件,实现nginx的代理访问,找到如下代码:

    vim /usr/local/nginx/conf/nginx.conf
    #location ~ .php$ {
    # root html;
    # fastcgi_pass 127.0.0.1:9000;
    # fastcgi_index index.php;
    # fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name;
    # include fastcgi_params;
    #}

      把前面的#注释符号去掉,把script改成$document_root,第二行 html 改成你的项目路径,这里我设置的/home/www/default 最终代码如下:

    location ~ .php$ {
        root           /home/www/default;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

      修改完成之后,先执行nginx配置检测命令,如果没有错误就执行重新加载配置文件的命令:

    /usr/local/nginx/sbin/nginx -t #配置检测命令
    /usr/local/nginx/sbin/nginx -s reload #动态加载配置命令

      我们去/home/www/default目录下创建一个php文件。浏览一下是否正常:

    <?php
      phpinfo();
    ?>

      如果能正确的显示php的当前信息,就说明我们工作已经完成了一大半了。

    六、安装mysql:

      mysql5.7.5之后版本都要安装boost包。所以我选择是下载已经自带boost安装包的mysql安装包:

    cd /usr/local/src
    wget -c http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.11.tar.gz
    tar zxvf mysql-boost-5.7.11.tar.gz
    cd mysql-5.7.11/
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=boost -DENABLE_DOWNLOADS=1
    make && make install
    chown -R mysql:mysql /usr/local/mysql #对mysql目录进行赋予权限

      mysql configure 安装参数解释:

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安装路径
    -DDEFAULT_CHARSET=utf8mb4 #默认使用utf8mb4字符
    -DDEFAULT_COLLATION=utf8mb4_general_ci #校验字符
    -DWITH_INNOBASE_STORAGE_ENGINE=1 #安装innodb引擎 
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 #安装archive存储引擎
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安装blackhole存储引擎
    -DMYSQL_TCP_PORT=3306 #指定端口
    -DWITH_BOOST=boost #指定boost的安装位置
    -DENABLE_DOWNLOADS #是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

      生成mysql配置文件

    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

      对数据库进行初始化,这个时候初始化的时候,屏幕上会出现初始化的密码,记下来,如果错过了,可以通过查看 /root/.mysql_secret 来查看之前的初始化密码:

    /usr/local/mysql/bin/mysqld --initialize --user=mysql

      复制文件mysql.server 可以使用service 命令进行控制

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    service mysql start #启动mysql

      登录数据库修改密码

    /usr/local/mysql/bin/mysql -u root -p

      输入密码回车。登录成功后,输入以下字符,来修改密码,比如我的密码是12345:

    set password = password('root');

      写一个php程序,来测试mysql是否能否正常连上MySQL:

    <?php
      $pdo = new PDO("mysql:host=127.0.0.1;dbname=sys;port=3306", 'root', 'root', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8mb4', PDO::ATTR_TIMEOUT => 1));   var_dump($pdo); ?>

     

  • 相关阅读:
    js多图上传展示和删除
    简单的下拉加载和上拉加载
    js实现放大镜效果
    js表格拖拽
    js表格上下移动添加删除
    js写的滑动解锁
    关于serialize() FormData serializeArray()表单序列化
    js日历
    js树状菜单
    Restful API官方文档
  • 原文地址:https://www.cnblogs.com/wangxin-king/p/5663946.html
Copyright © 2011-2022 走看看