zoukankan      html  css  js  c++  java
  • 源码编译LNMP环境

    yum -y install epel-release

    安装依赖
    yum -y install make gcc gcc-c++ bison-devel ncurses-devel perl-Data-Dumper boost boost-doc boost-devel cmake
    下载包并安装
    wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.22.tar.gz
    tar -zxvf mysql-boost-5.7.22.tar.gz && cd mysql-5.7.22
    mkdir -p /usr/local/mysql/{mydata,conf}
    chown -R mysql.mysql /usr/local/mysql*

    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
     -DMYSQL_DATADIR=/usr/local/mysql/mydata 
     -DSYSCONFDIR=/usr/local/mysql/conf
     -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1
     -DWITH_INNOBASE_STORAGE_ENGINE=1
     -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
     -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all
     -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
     -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0
     -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled
     -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost
    注意:---------------------------------------------------------------
    -DWITH_SYSTEMD=1        ------是否支持systemd方式管理MySQL
    -DDOWNLOAD_BOOST=1      ------自动下载boost支持
    -DWITH_BOOST=./boost    ------本地boost目录
    为了简化本地连接MySQL,提供一种封装形式的TCP/IP协议。
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock

    编译
    make && make install
    初始化
    /usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --datadir=/usr/local/mysql/mydata --basedir=/usr/local/mysql
    注意:初始化后密码为空,在初始化完毕后会有提示
    修改配置文件:vim /etc/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/mydata
    socket=/usr/local/mysql/mysql.sock
    log_error=/var/log/mysql.log
    user=mysql
    [client]
    socket=/usr/local/mysql/mysql.sock

    创建日志文件
    touch /var/log/mysql.log && chown -R mysql.mysql /var/log/mysql.log
    更新启动脚本
    cd /usr/local/mysql/support-files && sed -i 's/mysqld_safe/mysqld/g' mysql.server
    cp mysql.server /etc/rc.d/init.d/mysqld
    配置systemd管理
    vim /etc/systemd/system/mysqld.service
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target

    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000

    systemd管理启动
    systemctl  start/stop/restart/status   mysqld
    配置环境变量
    echo 'export PATH=/usr/local/mysql/bin:$PATH'>>/etc/profile
    source /etc/profile
    密码配置
    mysqladmin password '123456'        -----第一次改密码使用方法,密码为"123456"
    验证
    netstat -anpt|grep :3306
    cd ~

    安装PHP
    useradd -s /sbin/nologin -u 122 -M nginx
    安装依赖包
    yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libxslt-devel libicu-devel

    下载源码包
    wget -c http://cn2.php.net/distributions/php-7.1.5.tar.gz
    tar zxf php-7.1.5.tar.gz && cd php-7.1.5/
    ./configure --prefix=/usr/local/php-7.1.5
    --with-config-file-path=/usr/local/php-7.1.5/etc
    --with-mysql-sock=/usr/local/mysql/mysql.sock
    --with-mysqli --enable-fpm --with-fpm-user=nobody
    --with-fpm-group=nobody --with-pdo-mysql=mysqlnd
    --with-iconv-dir --with-freetype-dir --with-jpeg-dir
    --with-png-dir --with-zlib
    --with-libxml-dir --enable-xml --enable-bcmath
    --enable-shmop --enable-sysvsem
    --enable-inline-optimization --with-curl
    --enable-mbregex --enable-mbstring
    --enable-intl --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-opcache --with-xsl

    make && make install
    ln -s /usr/local/php-7.1.5 /usr/local/php
    cp php.ini-development /usr/local/php/lib/php.ini
    sed -i "mysqli.default_socket =/mysqli.default_socket = /usr/lcoal/mysql/mysql.sock/" /usr/local/php/lib/php.ini
    sed -i ";date.timezone =/date.timezone = Asia/Shanghai" /usr/local/php/lib/php.ini
    sed -i "pdo_mysql.default_socket=/pdo_mysql.default_socket=/usr/local/mysql/mysql.sock" /usr/local/php/lib/php.ini
    验证安装的模块
    /usr/local/php/bin/php -m
    配置fpm模块
    cd /usr/local/php/etc/ && cp php-fpm.conf.default php-fpm.conf
    cd /usr/local/php/etc/php-fpm.d/ && cp www.conf.default www.conf
    sed -i "s/;pid = run/php-fpm.pid/pid = run/php-fpm.pid/" /usr/local/php/etc/php-fpm.conf
    配置systemd管理
    vim /usr/lib/systemd/system/php-fpm.service
    [Unit]
    Description=The PHP FastCGI Process Manager
    After=syslog.target network.target

    [Service]
    Type=simple
    PIDFile=/run/php-fpm.pid
    ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
    ExecReload=/bin/kill -USR2 $MAINPID
    ExecStop=/bin/kill -SIGINT $MAINPID

    [Install]
    WantedBy=multi-user.target

    systemctl daemon-reload
    systemctl start php-fpm && systemctl enable php-fpm
    验证:netstat -anpt|grep :9000
    cd ~

    安装nginx
    安装依赖
    yum -y install pcre* openssl-devel
    解压源码包
    wget -c http://nginx.org/download/nginx-1.14.2.tar.gz
    tar zxf nginx-1.14.2.tar.gz && cd nginx-1.14.2
    ./configure --prefix=/usr/local/nginx
    --with-http_ssl_module --with-http_stub_status_module
    --with-http_stub_status_module --with-pcre

    make && make install
    检测是否安装成功
    /usr/local/nginx/sbin/nginx -t
    备份并修改配置文件
    cd /usr/local/nginx/conf/ && cp nginx.conf{,.bak}
    cat nginx.conf|grep -v ^#|grep -v "    #"|grep -v ^$
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;

        server {
            listen       80;
            server_name  172.16.186.142;
            location / {
                root   html;
                index  index.php index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            location ~ .php$ {
                root           html/www;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
        }
    }



    加入systemd管理
    vim /etc/systemd/system/nginx.service
    [Unit]
    Description=nginx server daemon
    Documentation=man:nginx(8)
    After=network.target

    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target


    systemctl daemon-reload
    systemctl start nginx && systemctl enable nginx
    netstat -anpt|grep :80

    默认站点目录:/usr/local/nginx/html
    测试文件添加:
    mkdir -p /usr/local/nginx/html/www
    echo '<?php  phpinfo(); ?>'>>/usr/local/nginx/html/www/phpinfo.php

    访问:http://172.16.186.141/phpinfo.php

    测试MySQL文件
    vim /usr/local/nginx/html/www/mysql.php
    <?php
    $link=mysqli_connect('localhost','root','123456');
    if($link) echo "<h1>Database connection successful</h1>";
    else echo "Fail!!";
    ?>

    访问:http://172.16.186.141/mysql.php

  • 相关阅读:
    HDU1163 Eddy&#39;s digital Roots【九剩余定理】
    【ThinkingInC++】8、说明,浅谈数据类型的大小
    教你如何使用U盘装系统
    图像不显示该问题的解决方案
    HTTP相关概念
    AndroidUI的组成部分GridView
    uploadify 3.2 后台动态传参数
    Oracle11g创建表空间语句
    Uncaught RangeError: Maximum call stack size exceeded解决思路
    panel,dialog,window组件越界问题汇总
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/13607934.html
Copyright © 2011-2022 走看看