zoukankan      html  css  js  c++  java
  • 在CENTOS上源码搭建LNMP环境

    前言

    1.操作前提:

    • CentOS Linux release 7.5.1804;
    • sudo用户(需要root权限);

    2.需要安装的组件:

    • nginx稳定版:nginx-1.14.0;
    • MariaDB 10.3.10 Stable;
    • PHP 7.2.11 Stable;

    3.操作步骤:

    • 添加环境依赖包;
    • 安装libiconv,libmcrypt等;
    • 安装nginx;
    • 安装php;
    • 安装mariadb;

    下载安装包

    wget http://nginx.org/download/nginx-1.14.0.tar.gz &&  tar xzvf nginx-1.14.0.tar.gz 
    
    wget http://am1.php.net/distributions/php-7.2.11.tar.gz && tar xzvf php-7.2.11.tar.gz
    
    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz &&  tar xzvf libiconv-1.14.tar.gz
    
    wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz && tar xzvf ./libmcrypt-2.5.8.tar.gz
    
    

    删除不需要的源码包:

    rm -rf *.tar.gz
    

    添加环境依赖包

    以下依赖包是整个Lnmp搭建过程中所需的基本依赖包,如果在安装过程中出现错误,提示缺少某依赖包,可以自己安装:

    #执行下面这条命令,各参数之间以空格分开
    
    sudo yum -y install zlib-devel pcre-devel openssl-devel gcc gcc-c++  ncurses-devel perl perl-devel perl-ExtUtils-Embedlibjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  libxml2 libxml2-devel curl-devel libxslt libxslt-devel gd gd-devel GeoIP GeoIP-devel
    

    编译nginx

    为了使Nginx能够启用http/2,需要通过源码的方式安装nginx,并指定--with-openssl的版本在1.0.2版本以上,这里我将需要版本的依赖安装在/usr/local/src目录:

    $ cd /usr/local/src/
    
    # PCRE version 8.40
    $ sudo wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && sudo tar xzvf pcre-8.40.tar.gz
    
    # zlib version 1.2.11
    $ sudo wget https://www.zlib.net/zlib-1.2.11.tar.gz && sudo tar xzvf zlib-1.2.11.tar.gz
    
    # OpenSSL version openssl-1.1.0h
    $ sudo wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz && sudo tar xzvf openssl-1.1.0h.tar.gz
    

    删除不需要的包

    sudo rm -rf *.tar.gz
    

    编译nginx

    cd ~/src/nginx-1.14.0
    
    sudo ./configure --prefix=/etc/nginx 
                --sbin-path=/usr/sbin/nginx 
                --modules-path=/usr/lib64/nginx/modules 
                --conf-path=/etc/nginx/nginx.conf 
                --error-log-path=/var/log/nginx/error.log 
                --pid-path=/var/run/nginx.pid 
                --lock-path=/var/run/nginx.lock 
                --user=nginx 
                --group=nginx 
                --build=CentOS 
                --builddir=nginx-1.14.0 
                --with-select_module 
                --with-poll_module 
                --with-threads 
                --with-file-aio 
                --with-http_ssl_module 
                --with-http_v2_module 
                --with-http_realip_module 
                --with-http_addition_module 
                --with-http_xslt_module=dynamic 
                --with-http_image_filter_module=dynamic 
                --with-http_geoip_module=dynamic 
                --with-http_sub_module 
                --with-http_dav_module 
                --with-http_flv_module 
                --with-http_mp4_module 
                --with-http_gunzip_module 
                --with-http_gzip_static_module 
                --with-http_auth_request_module 
                --with-http_random_index_module 
                --with-http_secure_link_module 
                --with-http_degradation_module 
                --with-http_slice_module 
                --with-http_stub_status_module 
                --http-log-path=/var/log/nginx/access.log 
                --http-client-body-temp-path=/var/cache/nginx/client_temp 
                --http-proxy-temp-path=/var/cache/nginx/proxy_temp 
                --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp 
                --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp 
                --http-scgi-temp-path=/var/cache/nginx/scgi_temp 
                --with-mail=dynamic 
                --with-mail_ssl_module 
                --with-stream=dynamic 
                --with-stream_ssl_module 
                --with-stream_realip_module 
                --with-stream_geoip_module=dynamic 
                --with-stream_ssl_preread_module 
                --with-compat 
                --with-pcre=/usr/local/src/pcre-8.40 
                --with-pcre-jit 
                --with-zlib=/usr/local/src/zlib-1.2.11 
                --with-openssl=/usr/local/src/openssl-1.1.0h 
                --with-openssl-opt=no-nextprotoneg 
                --with-debug
    

    上面--prefix=/etc/nginx为安装目录。

    sudo make && sudo make install
    

    创建软链

    sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules
    

    这样就可以在nginx的配置文件中像这样加载动态模块:load_module modules/ngx_foo_module.so;。

    查看编译信息

    sudo nginx -V
    

    修改/etc/nginx/nginx.conf

    去掉 user nobody;一行的注释。

    检查配置是否存在潜在错误

    ## 执行检查可能会报错
    sudo nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
    nginx: configuration file /etc/nginx/nginx.conf test failed
    
    ## 如果报上面的错误,则执行下面的代码
    sudo mkdir -p /var/cache/nginx && sudo nginx -t
    

    创建nginx系统服务单元

    编辑文件:

    sudo vi /usr/lib/systemd/system/nginx.service
    

    将下面的内容复制进去

    [Unit]
    Description=nginx - high performance web server
    Documentation=https://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
    ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    

    启动nginx并设置开机启动

    sudo systemctl start nginx.service && sudo systemctl enable nginx.service
    

    至此,nginx的安装到此结束,nginx的源码安装参考出处:centos7通过编译源码的方式安装nginx

    接下来进行源码编译安装Php的操作。

    编译安装php

    php需要libiconv、libmcrypt等依赖,下面进行编译:【阅读原文

  • 相关阅读:
    ZOJ2833*(并查集)
    大学(转载)
    Poj1503
    ibatis中select password('string')引起的bug
    servlet直接调用spring的serivce方法
    如何Eclipse自动提示
    servlet直接调用spring的serivce方法
    ibatis中select password('string')引起的bug
    如何Eclipse自动提示
    如何Eclipse自动提示
  • 原文地址:https://www.cnblogs.com/cobcmw/p/9893210.html
Copyright © 2011-2022 走看看