• 编译安装centos7 php7.2 mysql5.7 nginx1.9.9


    2018年3月12日 14:09:39

    注意时效

    centos7
    
    网卡
    
    cd /etc/sysconfig/network-scripts/
    
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens160
    UUID=90a09195-c24e-401d-bf4e-8c846539b130
    DEVICE=ens160
    ONBOOT=yes
    IPADDR=172.17.1.253
    GATEWAY=172.17.1.1
    NETMASK=255.255.255.255
    DNS1=8.8.8.8
    DNS2-172.17.1.1
    
    关闭firewall
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    
    
    yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
    
    yum -y groupinstall "Development Tools"
    
    yum install -y gcc gcc-c++ make cmake automake autoconf gd file bison patch mlocate flex 
    diffutils zlib zlib-devel pcre pcre-devel 
    libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel 
    glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel 
    ncurses ncurses-devel curl curl-devel libcurl libcurl-devel e2fsprogs e2fsprogs-devel 
    krb5 krb5-devel openssl openssl-devel 
    openldap openldap-devel nss_ldap openldap-clients openldap-servers 
    openldap-devellibxslt-devel kernel-devel libtool-libs 
    readline-devel gettext-devel libcap-devel php-mcrypt libmcrypt libmcrypt-devel recode-devel
    
    yum install -y libxml2 libxml2* openssl-dev libcurl3-openssl-dev openssl-devel.i686 
    openssl-perl.i686 libcurl-devel.i686 libjpeg-turbo-devel.i686 libpng.i686 libpng-devel.i686l freetype-devel php-gd
    
    
    yum -y install cmake ncurses ncurses-devel bison bison-devel boost boost-devel
    
    安装MySQL
    
    groupadd mysql #添加mysql组
    
    useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
    
    mkdir -p /data/mysql #创建MySQL数据库存放目录
    
    chown -R mysql:mysql /data/mysql #设置MySQL数据库存放目录权限
    
    mkdir -p /usr/local/mysql #创建MySQL安装目录
    
    
    mkdir -p /usr/local/boost
    
    cd /usr/local/boost
    wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    
    tar -xvzf boost_1_59_0.tar.gz
    
    编译
    
    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/usr/local/mysql/data 
    -DSYSCONFDIR=/etc 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_MEMORY_STORAGE_ENGINE=1 
    -DWITH_READLINE=1 
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
    -DMYSQL_TCP_PORT=3306 
    -DENABLED_LOCAL_INFILE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DMYSQL_USER=mysql 
    -DWITH_DEBUG=0 
    -DWITH_SSL=system 
    -DWITH_BOOST=/usr/local/boost
    
    
    pid =/www/lanmps/php5.6.31/var/run/php-fpm.pid
    error_log = /www/lanmps/php5.6.31/var/log/php-fpm.log
    log_level = notice
    
    [www]
    listen = /tmp/php-cgi.sock
    listen.backlog = -1
    listen.allowed_clients = 127.0.0.1
    listen.owner = www
    listen.group = www
    listen.mode = 0666
    user = www
    group = www
    pm = dynamic
    pm.max_children = 80
    pm.start_servers = 40
    pm.min_spare_servers = 40
    pm.max_spare_servers = 80
    request_terminate_timeout = 100
    request_slowlog_timeout = 0
    slowlog = var/log/slow.log
    
    
    #修改/usr/local/mysql权限
    chmod +w /usr/local/mysql  
    chown -R mysql:mysql /usr/local/mysql
    
    mv /etc/my.cnf /etc/my.cnf.bak  
    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    
    #拷贝mysql安装目录下support-files服务脚本到init.d目录
    cp support-files/mysql.server /etc/rc.d/init.d/mysqld
    #赋予权限
    chmod +x /etc/rc.d/init.d/mysqld
    #设置开机启动
    chkconfig mysqld on
    
    #执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径
    
    ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    
    确保/usr/local/mysql/data为空
    ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    
    vi /etc/my.cnf
    
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    socket=/tmp/mysql.sock
    
    symbolic-links=0
    
    [mysqld_safe]
    ;log-error=/var/log/mariadb/mariadb.log
    pid-file=/usr/local/mysql/data/localhost.localdomain.pid
    
    #修改/etc/profile文件
    vi /etc/profile
    #在文件末尾添加
    PATH=/usr/local/mysql/bin:$PATH
    export PATH
    #让配置立即生效
     
    source /etc/profile
    
    /usr/local/mysql/bin/mysqladmin -uroot -p password 'root';
    
    /usr/local/mysql/bin/mysqladmin -uroot -p password 'root';
    
    flush privileges;
    
    重新授权用户
    
    mysqld --skip-grant-tables 回车
    
    --skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证
    
    GRANT ALL PRIVILEGES ON *.* TO 'zx'@'%'IDENTIFIED BY 'zx' WITH GRANT OPTION;
    
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root' WITH GRANT OPTION;
    
    nginx安装
    yum -y install yasm libmcrypt libvpx tiff libpng freetype jpeg libgd t1lib
    
    
    ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
    
    
    vi /etc/init.d/nginx
    
    chmod +x /etc/init.d/nginx
    
    chkconfig nginx on
    
    ./configure 
    --prefix=/usr/local/nginx 
    --sbin-path=/usr/sbin/nginx 
    --conf-path=/etc/nginx/nginx.conf 
    --error-log-path=/var/log/nginx/error.log 
    --http-log-path=/var/log/nginx/access.log 
    --pid-path=/var/run/nginx.pid 
    --lock-path=/var/run/nginx.lock 
    --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 
    --user=www 
    --group=www 
    --with-pcre 
    --with-http_v2_module 
    --with-http_ssl_module 
    --with-http_realip_module 
    --with-http_addition_module 
    --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_random_index_module 
    --with-http_secure_link_module 
    --with-http_stub_status_module 
    --with-http_auth_request_module 
    --with-mail 
    --with-mail_ssl_module 
    --with-file-aio 
    --with-ipv6 
    --with-http_v2_module 
    --with-threads 
    --with-stream 
    --with-stream_ssl_module
    
    
    yum -y install libicu-devel
    
    
    make[2]: *** [progname.o] 错误 1
    make[2]:正在离开目录 `/home/lmos/libiconv-1.14/srclib'
    make[1]: *** [all] 错误 2
    make[1]:正在离开目录 `/home/lmos/libiconv-1.14/srclib'
    make: *** [all] 错误 2
    
    进入srclib目录 执行 sed -i -e '/gets is a security/d' ./stdio.in.h
    
    
    Cannot find ldap.h
    复制代码 代码如下:
    yum -y install openldap
    yum -y install openldap-devel
    
    configure: error: Cannot find ldap libraries in /usr/lib
    复制代码 代码如下:
    cp -frp /usr/lib64/libldap* /usr/lib/
    
    http://www.bkjia.com/PHPjc/1008013.html 参考bug解决办法
    
    
    yum install -y epel-release
    yum install -y libmcrypt-devel
    
    export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
    
    
    
    ./configure --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --with-mysql-sock=/tmp/mysql.sock 
    --enable-fpm 
    --with-fpm-user=www 
    --with-fpm-group=www 
    --enable-mysqlnd 
    --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd 
    --enable-mysqlnd-compression-support 
    --with-iconv-dir 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib 
    --with-libxml-dir 
    --enable-xml 
    --disable-rpath 
    --enable-bcmath 
    --enable-shmop 
    --enable-sysvsem 
    --enable-inline-optimization 
    --with-curl 
    --enable-mbregex 
    --enable-mbstring 
    --enable-intl 
    --with-mcrypt 
    --with-libmbfl 
    --enable-ftp 
    --with-gd 
    --enable-gd-jis-conv 
    --enable-gd-native-ttf 
    --with-openssl 
    --with-mhash 
    --enable-pcntl 
    --enable-sockets 
    --with-xmlrpc 
    --enable-zip 
    --enable-soap 
    --with-gettext 
    --enable-fileinfo 
    --enable-opcache 
    --with-pear 
    --enable-maintainer-zts 
    --with-ldap=shared 
    --without-gdbm
    
    
    nodejs
    curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -       8是版本系列
    yum install -y nodejs
    
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    注意fpm版本也就是php版本
    nginx使用sock形式调用php-fpm


    vi /etc/php-fpm.d/www.conf
    listen = /tmp/php-fpm.sock 建议放在这个目录,不容易有权限问题,也要主要有没有定期清理tmp的脚本或者代码
    vi /etc/nginx/conf.d/default.conf

    fastcgi_pass   unix:/tmp/php-fpm.sock;

    注意可不是就这么就完了
    还有需要配置的

    listen.owner = www
    listen.group = www
    listen.mode = 0660

    listen.allowed_clients = 127.0.0.1

    listen = /tmp/php-fpm.sock


    listen.backlog = -1

     nginx 做服务的脚本是有问题的请参看

    http://bbs.qcloud.com/thread-10429-1-1.html



    vim /usr/lib/systemd/system/nginx.service

    [Unit]
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network.target remote-fs.target nss-lookup.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 QUIT $MAINPID
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target

     

    其实版本差距不大,就是centos的系统操作有写区别,其他没什么

  • 相关阅读:
    OO第三单元总结
    oo第二单元总结
    oo第一单元总结
    OO助教工作总结
    当QSY遇上XL尺码的小黄衫
    终点亦是起点
    敏捷开发规范化
    Beta阶段性总结
    需求存在,功能存在——Alpha阶段性总结
    Gitlab Burndown Chart
  • 原文地址:https://www.cnblogs.com/zx-admin/p/8572743.html
Copyright © 2020-2023  润新知