zoukankan      html  css  js  c++  java
  • Linux下搭建lnmp环境

    前提:假设阅读本文的读者已经拥有基本的linux使用技巧,能够解决系统安装问题,以及软件安装的技巧。

    注意: 本文所涉及的主要安装包(需要下载使用的)安装包,在本文最后会给出百度云盘链接,需要使用的,可以自由下载。

    建议: 建议先通篇阅读本文,了解Nginx 各组件之间的关系后再进行安装,做到胸有大局,然后进行进一步的操作。

    安装所在的机器配置:

    • linux 内核版本:2.6.32
    • linux 发行版本:CentOS 6.4 64位
    • 系统内存: 1G。
    • 虚拟机的话建议使用2G。编译会快点。

    百度云盘:链接: http://pan.baidu.com/s/1o8SyQ2e 密码: i6hk

    0、 添加软件运行所需的用户

    groupadd nginx
    useradd -g nginx nginx
    groupadd mysql
    useradd -g mysql mysql
    

    1、安装gcc 和c++ 编译器。

    yum -y install gcc gcc-c++
    

    2、了解依赖关系

    nginx 需要第三方库的支持:

    gzip 用来压缩网页。gzip 需要 zlib库。

    rewrite 用来实现网页重定向的功能。 rewrite 需要 pcre(Perl Compatible Regular Expression)库。

    ssl 是一个加密库。如https.ssl 功能需要 openssl库

    3、解决nginx依赖关系

    yum -y install 
    zlib 
    zlib-devel 
    openssl 
    openssl-devel 
    pcre pcre-devel
    

    那么既然已经安装了 zlib openssl pcere 包为什么还要安装 zlib-devel 等包呢?

    devel 包主要是供开发使用的,包里面至少包括以下2个东西。

    1、头文件

    2、链接库

    以zlib 和 zlib-devel 为例.
    如果你安装的是基于zlib 开发的程序,只需要安装zlib就行。
    如果你要你变使用了glib的源代码,则需要使用glib-devel。
    本文中我们要先安装zlib,由于不确定我们机器里面有没有这个库,所以就一并将zlib-devel安装上了。
    由于yum会自动解决依赖,所以即使没有安装-devel,应该也会自己安装。作为了解原理,建议大家还是手动安装。

    4、安装nginx

    mkdir -p  /usr/local/webserver/source 
    
    cd /usr/local/webserver/source
    
    

    从文后的百度云盘中下载nginx-1.8.0.tar.gz 文件。

    tar -xf nginx-1.8.0.tar.gz                                      //解压文件
    
    cd nginx-1.8.0
    
    ./configure --help                                              //查看编译
    

    选项

    4.1 配置nginx

    ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module 
    

    4.2 安装nginx

    make && make install
    
    /usr/local/webserver/nginx/sbin/nginx -V                          //查看nginx的版本信息
    
    /usr/local/webserver/nginx/sbin/nginx -h                          //查看nginx的帮助信息
    
    /usr/local/webserver/nginx/sbin/nginx                             //启动nginx
    
    打开浏览器,输入linux的ip。可以看到欢迎的信息。
    
    /usr/local/webserver/nginx/sbin/nginx    -s stop                    //关闭nginx
    
    /usr/local/webserver/nginx/sbin/nginx                               //重新启动,以便后续操作。  
    

    5、安装mysql

    5.1、 解决mysql的安装依赖

    cmake 用来编译mysql,所以要先下载cmake。

    ncurses 和 ncurses-devel 是mysql的字符终端处理库。

    yum -y install cmake ncurses ncurses-devel
    

    5.2 、 安装mysql

    下载文后网盘中的mysql-5.6.24.tar.gz 文件至 /usr/local/webserver/source

    tar -xf mysql-5.6.24.tar.gz                                     // 解压mysql
    
    cd /usr/local/webserver/source/mysql-5.6.24
    查看编译选项:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。
    

    5.3、编译配置mysql:

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql 
    -DMYSQL_DATADIR=/usr/local/webserver/mysql/data 
    -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 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci
    

    以下为编译选项解释

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql           //mysql的安装路径   
    -DMYSQL_DATADIR=/usr/local/webserver/mysql/data             //mysql的表数据存储路径
    -DWITH_MYISAM_STORAGE_ENGINE=1                              //装载MYISAM存储引擎。注:mysql的存储引擎是插件化的。需要按需加载。
    -DWITH_INNOBASE_STORAGE_ENGINE=1                            //装载INNODB存储引擎。
    -DWITH_MEMORY_STORAGE_ENGINE=1                              // 装载 memory引擎,该引擎并不常用。
    -DWITH_READLINE=1                                           // 不知道这是什么意思。
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock                 //mysql 的sock文件路径。
    -DMYSQL_TCP_PORT=3306                                       //mysql的监听端口,默认3306.
    -DENABLED_LOCAL_INFILE=1                                    
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DEXTRA_CHARSETS=all                                         
    -DDEFAULT_CHARSET=utf8                                      //默认的字符集为utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    执行编译: make && make install
    

    我这里用单核的服务器使用了整整20分钟,虚拟机可能要30分钟以上。耐心等待,不要执行其他操作,此时cpu处于99%的满载状态。

    5、4 创建mysql自带的数据库

    /usr/local/webserver/mysql/scripts                  
    
    ./scripts/mysql_install_db 
    --basedir=/usr/local/webserver/mysql 
    --datadir=/usr/local/webserver/mysql/data 
    --user=mysql
    

    5、5 启动mysql

    设置开机启动:

    /usr/local/webserver/mysql/support-files
    cp ./mysql.server /etc/init.d/mysql            //复制到系统自启动目录。
    chkconfig mysql on                             //设置开机启动
    service mysql start                            //启动MySQL
    PATH=/usr/local/webserver/mysql/bin/:$PATH     //将mysql命令设置到全局命令路径中
    export PATH                                    //将PATH设置为全局变量
    source /etc/profile                            //重新载入系统配置
    5.6 测试mysql
    
    mysql -u root                                   
    set password = password('密码')                  //设置密码
    exit                                           //退出
    

    //之后的测试就不讲了。

    6、安装php

    6.1、解决环境依赖

    yum -y install libxml2 libxml2-devel
    yum -y install libcurl libcurl-devel
    

    6.2、 安装php

    下载文后所示网盘中的 php-5.6.24.tar.gz 文件至/usr/local/webserver/source

    cd /usr/local/webserver/source
    
    tar -xf php-5.6.24.tar.gz
    
    cd /usr/local/webserver/source/php-5.6.24
    
    ./configure --help                          //查看下配置项
    

    配置项如下:

    ./configure 
    --prefix=/usr/local/webserver/php 
    --enable-fpm 
    --with-config-file-path=/usr/local/webserver/php/conf 
    --with-zlib 
    --with-curl 
    --enable-mysqlnd 
    --enable-pdo 
    --enable-mbstring 
    --with-mysql=/usr/local/webserver/mysql 
    --with-pdo-mysql=mysqlnd 
    --with-openssl-dir 
    --disable-fileinfo
    
    make && make install
    

    6.3、配置php

    cd /usr/local/webserver/php
    
    mkdir conf
    
    /usr/local/webserver/source/php-5.6.24/php.ini-development ./conf/php.ini    //复制配置
    
    cd /usr/local/webserver/php/etc
    
    mv php-fpm.conf.default  php-fpm.conf
    
    ls /usr/local/webserver/source/php-5.6.24/sapi/fpm/php-fpm /usr/local/bin/      
    php-fpm -h  //查看php的配置信息
    php-fpm -m  //查看加载了那些模块                                  
    

    7、关联php 与nginx

    修改nginx配置,使其支持php后缀的文件。

    //约52行 65行。

    location / {
        root   html;
        index  index.php index.html index.htm;
    }
    
    location ~* .php$ {
        fastcgi_index   index.php;
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME              $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
    
    

    修改php的配置,修改时间选项。

    //约925行
    date.timezone = Asia/Shanghai       //你不在上海也填上海。这个指的是时区。
    

    8、将执行命令放置进/usr/local/bin 下。变成快捷命令

    ln -s /usr/local/webserver/nginx/sbin/nginx /usr/local/bin/   
    
    ln -s /usr/local/webserver/php/sbin/php-fpm /usr/local/bin/
    
    cd /
    
    执行 nginx
    
    执行 php-fpm
    
    cd  /usr/local/webserver/nginx/html/
    
    mv index.html index.php
    写一个phpinfo(); 的函数。去浏览器看下效果。
    

    9、备注:

    以上,已经将nginx 、php 、mysql 三者结合在了一起。如果你已经按照上面的提示安装成功,那么恭喜你,你运气真好。实践的过程中,可能会遇到各种各样的报错,一定要详细的看报错的信息,根据报错的信息去安装相应的组件。每个人的机器不同,可能报错的类别也不一样,遇到报错的欢迎大家到评论区提问,共同研讨,共同提高。

    这篇文章的目的在于让大家了解到nginx 、php 、mysql三者之间的组合关系。本文中没有安装GD库,Reids 和 Memcache 等库。这留在后续的文章中逐步的去讲。如何让php通过打补丁(phpize)的方式将未加的组件编译进来。

  • 相关阅读:
    用Python计算最长公共子序列和最长公共子串
    两个有序数列,求中间值 Median of Two Sorted Arrays
    python判断平衡二叉树
    经验之谈:如何为你的机器学习问题选择合适的算法?
    跑道没了,它们还在跑:澳门赛狗业的遗孤
    钉钉:工作的归工作,生活的…也归工作?
    假·照骗,真·社交焦虑
    苹果市值破万亿,iPhone 会涨价吗?
    写日志(log)
    多维数组排序
  • 原文地址:https://www.cnblogs.com/roverliang/p/9206368.html
Copyright © 2011-2022 走看看