美文网首页
CentOS7.2 编译安装LNMP

CentOS7.2 编译安装LNMP

作者: 説詩 | 来源:发表于2019-01-19 14:52 被阅读0次

    1 先关闭防火墙

    CentOS 7.0开始默认使用的是firewall作为防火墙

    先安装
    yum install firewalld
    
    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld 
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
    开机禁用  : systemctl disable firewalld
    开机启用  : systemctl enable firewalld
    

    2 关闭SELINUX

    vi /etc/selinux/config 
    SELINUX=enforcing #注释掉
    SELINUXTYPE=targeted #注释掉
    SELINUX=disabled #增加 
    
    :wq! #保存退出
    以上是重启之后不起用了。​
    setenforce 0 #使配置立即生效
    

    3 安装路径约定

    软件源代码包存放位置:/lnmp/src      mkdir -p /lnmp/src
    源码包编译安装位置:/usr/local/软件名
    数据库数据文件存储路径:/data/mysql
    

    4 安装编译工具及库文件

    yum install -y make apr* autoconf automake curl curl-devel gcc gcc-c++  cmake  gtk+-devel zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* cpp glibc libgomp libstdc++-devel keyutils-libs-devel  libarchive   libsepol-devel libselinux-devel krb5-devel libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel libjpeg* libpng* php-common php-gd gettext gettext-devel ncurses* libtool* libxml2 libxml2-devel patch policycoreutils bison
    

    5 编译安装cmake

    cd /lnmp/src
    wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
    
    tar -zxvf cmake-2.8.10.2.tar.gz 
    cd  /lnmp/src/cmake-2.8.10.2
    ./configure --prefix=/usr/local/cmake   #安装前的配置
    make #编译  echo $?  0表示没有出错
    make install #安装
    
    vim /etc/profile 在path路径中增加cmake执行文件路径:
    export PATH=$PATH:/usr/local/cmake/bin
    
    source /etc/profile使配置立即生效
    cmake --version
    
    

    6 编译安装pcel

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

    7 安装 libmcrypt

    cd /lnmp/src
    wget https://sourceforge.net/projects/mcrypt/files/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
    

    8 安装GD库

    cd /lnmp/src
    wget https://jaist.dl.sourceforge.net/project/gd2/gd-2.0.35.tar.gz
    tar -zxvf gd-2.0.35.tar.gz 
    cd gd-2.0.35
    ./configure --enable-m4_pattern_allow --prefix=/usr/local/gd --with-jpeg=/usr/lib --with-png=/usr/lib --with-xpm=/usr/lib --with-freetype=/usr/lib --with-fontconfig=/usr/lib 
    make #编译
    make install #安装
    

    9 安装MySQL

    groupadd mysql #添加mysql组
    useradd -g mysql mysql -s /sbin/nologin #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
    mkdir -p /data/mysql #创建MySQL数据库存放目录
    chown -R mysql:mysql /data/mysql #设置MySQL数据库目录权限
    cd /lnmp/src
    wget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.60.tar.gz
    tar -zxvf mysql-5.5.60.tar.gz
    
    cd mysql-5.5.60
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
    make
    make install
    
    cd /usr/local/mysql
    cp ./support-files/my-huge.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
    vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加
    datadir = /data/mysql #添加MySQL数据库路径
    
    ./scripts/mysql_install_db --user=mysql #生成mysql系统数据库
    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
    chmod 755 /etc/init.d/mysqld #增加执行权限
    chkconfig mysqld on #加入到服务里面
    
    vi /etc/rc.d/init.d/mysqld #编辑
    basedir=/usr/local/mysql #MySQL程序安装路径
    datadir=/data/mysql #MySQl数据库存放目录
    
    service mysqld start #启动,可能无法写入pid文件,注意将mysql用户权限加入至/usr/local/mysql
    chown -R mysql:mysql /usr/local/mysql
    service mysqld start #再启动
    
    vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
    export PATH=$PATH:/usr/local/cmake/bin:/usr/local/mysql/bin
    source /etc/profile #使配置立即生效
    
    mkdir /var/lib/mysql #创建目录
    ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加软链接
    mysql_secure_installation #设置Mysql密码,先输入之前密码(因为之前没有所以直接回车)根据提示按Y 回车输入2次密码
    
    Remove anonymous users? [Y/n] y
    Disallow root login remotely? [Y/n] n
    Remove test database and access to it? [Y/n] n
    Reload privilege tables now? [Y/n] y
    
    #   /usr/local/mysql/bin/mysqladmin -u root -p password "123456" #或者直接修改密码
    到此,mysql安装完成!
    

    10 安装nginx

    cd /lnmp/src
    wget http://101.96.8.156/nginx.org/download/nginx-1.12.2.tar.gz
    tar -zxvf nginx-1.12.2.tar.gz 
    
    groupadd www #添加www组
    useradd -g www www -s /sbin/nologin #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统
    
    wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
    tar -zxvf openssl-1.1.0b.tar.gz
    cd nginx-1.12.2
    ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www   --with-http_stub_status_module --with-openssl=/lnmp/src/openssl-1.1.0b --with-pcre=/lnmp/src/pcre-8.39   --with-http_ssl_module
    注意:--with-pcre=/usr/local/src/pcre-8.39指向的是源码包解压的路径,而不是安装的路径,否则会报错
    make && make install
    
    /usr/local/nginx/sbin/nginx #启动
    /usr/local/nginx/sbin/nginx -s stop #停止
    

    11 安装php

    cd /lnmp/src/
    wget http://cn2.php.net/distributions/php-7.2.14.tar.bz2
    yum install -y bzip2
    tar -jxvf php-7.2.14.tar.bz2 
    cd php-7.2.14
    
    ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc  --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mysqlnd --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --with-jpeg-dir --with-freetype-dir   --with-pdo-mysql=/usr/local/mysql/
    
    make #编译,,若遇到make: *** [ext/fileinfo/libmagic/apprentice.lo] 错误 ,这加参数–-disable-fileinfo
    make install #安装
    
    cp php.ini-production /usr/local/php7/etc/php.ini #复制php配置文件到安装目录
    rm -rf /etc/php.ini #删除系统自带配置文件
    ln -s /usr/local/php7/etc/php.ini /etc/php.ini #添加软链接
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
    cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf  
    
    vi /usr/local/php7/etc/php-fpm.d/www.conf  #编辑
    
    user = www #设置php-fpm运行账号为www
    group = www #设置php-fpm运行组为www
    
    vim /usr/local/php7/etc/php-fpm.conf
    pid = run/php-fpm.pid #取消前面的分号
    
    加入环境变量
    vim /etc/profile
    添加 :/usr/local/php7/bin
    :wq
    source /etc/profile
    
    设置 php-fpm开机启动
    cp /lnmp/src/php-7.2.14/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
    chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
    chkconfig php-fpm on #设置加入服务
    vi /usr/local/php7/etc/php.ini #编辑配置文件
    
    
    这里暂时不给禁用
    找到:disable_functions =
    修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
    #列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消s禁用
    找到:;date.timezone =
    修改为:date.timezone = PRC #设置时区
    找到:expose_php = On
    修改为:expose_php = OFF #禁止显示php版本的信息
    找到:short_open_tag = Off
    修改为:short_open_tag = ON #支持php短标签
    

    12 配置nginx支持php

    vi /usr/local/nginx/conf/nginx.conf
    修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改
    
    user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
        user www www;
        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 localhost;
                    location / {
                    root /data/www;
                    index index.php index.html index.htm;
                    }
                    location ~ \.php$ {
                    root /data/www;
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
                    }
            }
        }
    
    :wq
    
    mkdir -p /data/www
    chown www:www /data/www/ -R #设置目录所有者
    chmod 700 /data/www -R #设置目录权限
    

    13 重启各服务(nginx还未加入服务)

    service restart mysqld
    service restart php-fpm
    /usr/local/nginx/sbin/nginx -s stop
    /usr/local/nginx/sbin/nginx
    

    14 安装redis

    wget http://120.52.51.15/download.redis.io/releases/redis-4.0.12.tar.gz
    tar -zvfx redis-4.0.12.tar.gz
    mv redis-4.0.12.tar.gz /usr/local/redis
    cd /usr/local/redis/
    make && make install
    
    cd /usr/local/redis/src 
    ./redis-server  #以默认配置文件进行启动
    
    redis-cli -h 127.0.0.1 -p 6379  #客户端连接
    
    vim /usr/local/redis/redis.conf
    
    daemonize yes #修改为yes 守护进程
    :wq
    
    
    ./src/redis-server redis.conf  #以这个配置文件启动(有守护进程)
    ps aux | grep redis
    root     109062  0.1  0.2 145316  2168 ?        Ssl  03:14   0:00 ./src/redis-server 127.0.0.1:6379
    

    安装phpredis 扩展(让php7可以使用redis)

    https://github.com/phpredis/phpredis/releases
    上传phpredis-4.2.0.tar.gz到/lnmp/src目录
    
    tar -zxvf phpredis-4.2.0.tar.gz
    cd phpredis-4.2.0
    /usr/local/php7/bin/phpize              # php安装后的路径
    ./configure --with-php-config=/usr/local/php7/bin/php-config
    make && make install 
    
    安装完显示  Installing shared extensions:   /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/
    vim /etc/php.ini
    增加如下内容:
    bash extension_dir = " /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/" extension=redis.so
    重启php-fpm
    bash service php-fpm restart
    查看phpinfo();已有redis
    

    相关文章

      网友评论

          本文标题:CentOS7.2 编译安装LNMP

          本文链接:https://www.haomeiwen.com/subject/eqbadqtx.html