zoukankan      html  css  js  c++  java
  • CentOS搭建PHP环境

    说明:

    操作系统:CentOS 6.x

    准备篇:

    一、配置防火墙,开启80端口、3306端口

    vi /etc/sysconfig/iptables

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙)

    :wq! #保存

    /etc/init.d/iptables restart #重启防火墙使配置生效

    四 、系统约定

    软件源代码包存放位置:/usr/local/src

    源码包编译安装位置:/usr/local/软件名字

    五、下载软件包

    libpng http://www.libpng.org/pub/png/

    http://prdownloads.sourceforge.net/libpng/libpng-1.6.17.tar.gz?download


    freetype http://sourceforge.net/projects/freetype/

    http://download.savannah.gnu.org/releases/freetype/freetype-2.6.tar.gz

    jpeg9 http://www.ijg.org/

    http://www.ijg.org/files/jpegsrc.v9a.tar.gz

    libgd http://libgd.bitbucket.org/

    https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.1.tar.gz

    pcre (支持nginx伪静态)

    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz

    openssl http://www.openssl.org/

    http://www.openssl.org/source/openssl-1.0.2c.tar.gz

    zlib http://zlib.net/

    http://zlib.net/zlib-1.2.8.tar.gz

    libxml2 http://xmlsoft.org/

    ftp://xmlsoft.org/libxml2/libxml2-2.9.2.tar.gz

    libmcrypt(PHP libmcrypt模块) http://mcrypt.hellug.gr/lib/

    ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

    nginx http://nginx.org/

    http://nginx.org/download/nginx-1.9.2.tar.gz

    php http://php.net/

    http://cn2.php.net/distributions/php-5.4.42.tar.gz

    cmake(MySQL编译工具) http://www.cmake.org/

    http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz

    MySQL http://dev.mysql.com/downloads/mysql/

    http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz

    安装篇

    安装编译工具及库文件(使用 CentOS yum 命令安装)

    yum install make m4 autoconf automake curl curl-devel gcc gcc-c++ zlib-devel bison bison-devel openssl openssl-devel pcre-devel mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl libevent libcom_err-devel libsepol-devel libselinux-devel krb5-devel ncurses* bzip2-devel libxml2 libxml2-devel libpng libpng-devel freetype libfreetype-devel(改成freetype-devel) libjpeg libjpeg-devel gd gd-devel perl

    安装依赖库

    1、安装 pcre

    cd /usr/local/src

    mkdir /usr/local/pcre

    tar zxvf pcre-8.36.tar.gz

    cd pcre-8.36

    ./configure

    make

    make install

    2、安装 zlib
    cd /usr/local/src
    tar xvf zlib-1.2.8.tar.gz
    cd zlib-1.2.8
    ./configure
    make
    make install

    3、安装 openssl

    cd /usr/local/src

    mkdir /usr/local/openssl

    tar zxvf openssl-1.0.2c.tar.gz

    cd openssl-1.0.2c

    ./config

    make

    make install

    二、安装cmake (MySQL5.5以上版本采用CMAKE编译)

    cd /usr/local/src

    tar xvf cmake-2.8.12.2.tar.gz

    cd cmake-2.8.12.2

    ./bootstrap

    gmake

    gmake install

    四、安装 MySQL

    准备工作

    groupadd mysql #添加 mysql 用户组

    useradd -g mysql mysql -s /bin/false #创建用户 mysql 并加入到 mysql 组,不允许 mysql 用户直接登录系统

    mkdir -p /data/mysql/data #创建 mysql 数据库存放目录

    chown -R mysql:mysql /data/mysql/data #设置 mysql 数据库目录权限

    #编译安装

    cd /usr/local/src

    tar zxvf mysql-5.6.42.tar.gz

    cd mysql-5.6.42

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/data/mysql/data 
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DEXTRA_CHARSETS=all 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DENABLED_LOCAL_INFILE=1 
    -DMYSQL_TCP_PORT=3306

    make

    make install

    注:cmake 时如出现错误“Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)”

    执行以下操作再重新编译即可:

    rm -rf CMakeCache.txt CMakeFiles/
    yum install ncurses-devel

    #配置

    cd /usr/local/mysql

    mv /etc/my.cnf /etc/my.cnf.bak

    cp -f ./support-files/my-default.cnf ./my.cnf

    cp ./support-files/mysql.server /etc/init.d/mysqld #加入系统启动

    chmod a+x /etc/init.d/mysqld #增加执行权限

    chkconfig --add mysqld

    chkconfig mysqld on #加入开机启动

    ln -sf /usr/local/mysql/bin/* /usr/local/bin/

    #将 mysql/bin 目录加入环境变量
    vi /etc/profile #在最后一行加入:

    ############################################################ PATH=$PATH之间不能有空格
    PATH=$PATH:/usr/local/mysql/bin
    export PATH

    ############################################################

    :wq! 保存

    source /etc/profile #使其生效

    echo $PATH #查看是否添加成功


    #初始化

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

    #启动

    service mysqld start

    #设置 root 用户密码

    方法1:

    mysql -u root
    mysql> SET PASSWORD = PASSWORD('123456');


    方法2:
    mysqladmin -u root -p password 123456

    接下来会提示输入旧密码,直接回车即可。

    注:方法2命令中的密码字符串外面不要加引号


    #若要设置 root 用户可以远程访问,执行:
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

    mysql> FLUSH PRIVILEGES;

    五、安装 Nginx

    groupadd www #添加www用户组

    useradd -g www www -s /bin/false #创建 nginx 运行用户 www 并加入到 www 组,不允许 www 用户直接登录系统

    cd /usr/local/src

    tar zxvf nginx-1.9.2.tar.gz

    cd nginx-1.9.2

    ./configure 
        --prefix=/usr/local/nginx 
        --user=www 
        --group=www 
        --with-pcre=/usr/local/src/pcre-8.36 
        --with-zlib=/usr/local/src/zlib-1.2.8 
        --with-openssl=/usr/local/src/openssl-1.0.2c 
        --with-http_ssl_module

    make

    make install

    注: --with-pcre --with-zlib --with-openssl 指向的是源码包解压后的路径,而不是安装的路径。

    配置nginx开机启动

    vi /etc/init.d/nginx #编辑启动文件并添加下面内容

    ############################################################

    #!/bin/bash
    # nginx Startup script for the Nginx HTTP Server
    # it is v.0.0.2 version.
    # chkconfig: - 85 15
    # description: Nginx is a high-performance web and proxy server.
    # It has a lot of features, but it's not for everyone.
    # processname: nginx
    # pidfile:     /var/run/nginx.pid
    # config:      /usr/local/nginx/conf/nginx.conf

    nginxd=/usr/local/nginx/sbin/nginx
    nginx_config=/usr/local/nginx/conf/nginx.conf
    nginx_pid=/usr/local/nginx/logs/nginx.pid
    RETVAL=0
    prog="nginx"

    # Source function library.
    . /etc/rc.d/init.d/functions

    # Source networking configuration.
    . /etc/sysconfig/network

    # Check that networking is up.
    [ ${NETWORKING} = "no" ] && exit 0
    [ -x $nginxd ] || exit 0

    # Start nginx daemons functions.
    start() {
        if [ -e $nginx_pid ];then
        echo "nginx already running...."
        exit 1
    fi
        echo -n $"Starting $prog: "
        daemon $nginxd -c ${nginx_config}
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
        return $RETVAL
    }

    # Stop nginx daemons functions.
    stop() {
        echo -n $"Stopping $prog: "
        killproc $nginxd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
    }
    reload() {
        echo -n $"Reloading $prog: "
        #kill -HUP `cat ${nginx_pid}`
        killproc $nginxd -HUP
        RETVAL=$?
        echo
    }

    # See how we were called.
    case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    reload)
        reload
        ;;
    restart)
        stop
        start
        ;;

    status)
        status $prog
        RETVAL=$?
        ;;
    *)
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
    esac
    exit $RETVAL

    ############################################################

    :wq! 保存退出。

    chmod +x /etc/init.d/nginx #赋予执行权限

    /sbin/chkconfig nginx on #设置开机启动

    #启动

    service nginx start

    六、安装 PHP

    安装 libmcrypt

    cd /usr/local/src

    tar zxvf libmcrypt-2.5.7.tar.gz

    cd libmcrypt-2.5.7

    ./configure

    make

    make install

    注:编译时如提示 'Pyobject' undeclared... 错误,需先安装 python-devel 软件包(yum -y install python-devel),

    安装 php

    cd /usr/local/src

    tar zxvf php-5.4.42.tar.gz

    cd php-5.4.42

    ./configure 

        --prefix=/usr/local/php 

        --with-config-file-path=/usr/local/php/etc 

        --with-mysql=mysqlnd 

        --with-mysqli=mysqlnd 

        --with-pdo-mysql=mysqlnd 

        --with-zlib 

        --with-gd 

        --with-png-dir 

        --with-jpeg-dir 

        --with-freetype-dir 

        --enable-gd-native-ttf 

        --with-iconv 

        --enable-xml 

        --enable-bcmath  #支持大整数计算的扩展

        --enable-shmop 

        --enable-sysvsem 

        --enable-inline-optimization 

        --with-curlwrappers 

        --enable-mbregex  

        --enable-fpm 

        --enable-mbstring 

        --with-openssl 

        --enable-pcntl 

        --enable-sockets 

        --with-xmlrpc 

        --enable-zip 

        --enable-soap 

        --without-pear 

        --with-gettext=shared 

        --enable-session 

        --with-mcrypt 

        --with-curl

    make #编译

    make install #安装

    cp php.ini-production /usr/local/php/etc/php.ini #复制php配置文件到安装目录

    rm -rf /etc/php.ini #删除系统自带配置文件

    ln -s /usr/local/php/etc/php.ini /etc/php.ini #添加软链接

    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

    vi /usr/local/php/etc/php-fpm.conf

    pid = run/php-fpm.pid #取消前面的分号

    user = www #设置php-fpm运行账号为www

    group = www #设置php-fpm运行组为www

    设置 php-fpm 开机启动

    cp /usr/local/src/php-5.4.42/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #拷贝php-fpm到启动目录

    chmod +x /etc/init.d/php-fpm #添加执行权限

    chkconfig php-fpm on #设置开机启动

    PHP 配置

    vi /usr/local/php/etc/php.ini #编辑配置文件

    找到:;date.timezone =

    修改为:date.timezone = PRC #设置时区

    找到:expose_php = On

    下面红色部分未做修改。

    修改为:expose_php = OFF #禁止显示php版本的信息

    找到:display_errors = On

    修改为:display_errors = OFF #关闭错误提示

    七、配置 nginx 支持 php

    vi /usr/local/nginx/conf/nginx.conf

    修改/usr/local/nginx/conf/nginx.conf 配置文件,做如下修改

    user www www; #首行user去掉注释,修改 Nginx 运行组为 www www;尽量与 /usr/local/php5/etc/php-fpm.conf 中的 user, group 配置相同,否则php可能运行出错

    index index.php index.html index.htm; #添加index.php

    #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

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

    /etc/init.d/nginx restart #重启nginx

    安装 php redis 扩展

    cd /usr/local/src

    wget http://pecl.php.net/get/redis-2.2.7.tgz (为什么后面还有一个redis3.0版本?)

    tar zxvf redis-2.2.7.tgz

    cd redis-2.2.7
    /usr/local/php/bin/phpize
    ./configure  --with-php-config=/usr/local/php/bin/php-config
    make  &&  make  install

    修改 php.ini 文件:

    vi /usr/local/php/etc/php.ini

    增加:
    extension=redis.so

    /etc/init.d/php-fpm restart  #重启 php-fpm 生效

    安装 php memcached 扩展

    安装依赖库 libmemcached

    cd /usr/local/src

    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

    tar zxvf libmemcached-1.0.18.tar.gz

    cd libmemcached-1.0.18 
    ./configure --with-memcached
    make

    make install

    安装 memcached 扩展

    cd /usr/local/src

    wget http://pecl.php.net/get/memcached-2.2.0.tgz
    tar zxvf memcache-2.2.0.tgz

    cd memcache-2.2.0 
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcached --disable-memcached-sasl
    make
    make install

    修改 php.ini 文件:

    vi /usr/local/php/etc/php.ini

    增加:
    extension=memcached.so

    /etc/init.d/php-fpm restart  #重启 php-fpm 生效

    安装 php memcache 扩展

    cd /usr/local/src

    wget http://pecl.php.net/get/memcache-3.0.8.tgz
    tar zxvf memcache-3.0.8.tgz
    cd memcache-3.0.8
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make
    make install

    修改 php.ini 文件:

    vi /usr/local/php/etc/php.ini

    增加:
    extension=memcache.so

    /etc/init.d/php-fpm restart  #重启 php-fpm 生效

    安装 php Zend Opcache 扩展(即 Optimizer+,推荐加速器)

    cd /usr/local/src

    wget http://pecl.php.net/get/zendopcache-7.0.5.tgz
    tar zxvf zendopcache-7.0.5.tgz
    cd zendopcache-7.0.5
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --enable-shared
    make
    make install

    修改 php.ini 文件:

    vi /usr/local/php/etc/php.ini

    增加:
    zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/opcache.so

    ;配置参数(以下为官方推荐参数,详细参数:http://www.php.net/manual/zh/opcache.configuration.php

    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
    opcache.enable_cli=1

    /etc/init.d/php-fpm restart  #重启 php-fpm 生效

    注:Zend Opcache 与 eAccelerator 相冲突,安装使用 Zend Opcache 可能需要先卸载或禁用 eaccelerator 扩展。

    六、安装 Redis

    安装需要的支持环境
    cd /usr/local/src
    wget http://downloads.sourceforge.net/tcl/tcl8.6.4-src.tar.gz
    tar zxvf tcl8.6.4-src.tar.gz
    cd ​tcl8.6.3/unix/
    ./configure
    make
    make install

    安装 Redis

    cd /usr/local/src

    tar zxvf redis-3.0.2.tar.gz

    cd redis-3.0.2

    make

    make PREFIX=/usr/local/redis install

    ln -sf /usr/local/redis/bin/* /usr/local/bin/ #增加软链接

    cp ./redis.conf /usr/local/redis/
    vi /usr/local/redis/redis.conf
    daemonize yes  #redis将以守护进程的方式运行,默认为no会暂用你的终端
    timeout 300​  #当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

    设置自动启动

    vi /etc/init.d/redis

    ############################################################ 
    #!/bin/sh
    #
    # redis        Startup script for Redis Server
    #
    # chkconfig: - 80 12
    # description: Redis is an open source, advanced key-value store.
    #
    # processname: redis-server
    # config: /etc/redis.conf
    # pidfile: /var/run/redis.pid
    source /etc/init.d/functions
    BIN="/usr/local/redis/bin"
    CONFIG="/usr/local/redis/redis.conf"
    PIDFILE="/var/run/redis.pid"
    ### Read configuration
    [ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
    RETVAL=0
    prog="redis-server"
    desc="Redis Server"
    start() {
            if [ -e $PIDFILE ];then
                 echo "$desc already running...."
                 exit 1
            fi
            echo -n $"Starting $desc: "
            daemon $BIN/$prog $CONFIG
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
            return $RETVAL
    }
    stop() {
            echo -n $"Stop $desc: "
            killproc $prog
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
            return $RETVAL
    }
    restart() {
            stop
            start
    }
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart)
            restart
            ;;
      condrestart)
            [ -e /var/lock/subsys/$prog ] && restart
            RETVAL=$?
            ;;
      status)
            status $prog
            RETVAL=$?
            ;;
       *)
            echo $"Usage: $0 {start|stop|restart|condrestart|status}"
            RETVAL=1
    esac
    exit $RETVAL

    ############################################################

    :wq! 保存退出。

    chmod +x /etc/init.d/redis #赋予执行权限

    启动或关闭服务

    service redis start
    service redis stop

    测试

    cd /usr/local/redis/bin
    ./redis-cli
    127.0.0.1:6379> set foo bar
    OK
    127.0.0.1:6379> get foo
    "bar"

    安装到这里。

    安装 git

    cd /usr/local/src

    wget https://codeload.github.com/git/git/tar.gz/v2.4.4
    tar zxvf v2.4.4
    cd git-2.4.4
    make prefix=/usr/local/git all // 需要yum安装 openssl-devel
    make prefix=/usr/local/git install

    注:若出现错误 “错误:‘XML_Parser’未声明”,则需安装 expat-devel 开发包,然后重新执行 make 命令。

    yum -y install expat-devel.x86_64

    若出现错误 “asciidoc: command not found”,则需安装 asciidoc,然后重新执行 make 命令。

    yum -y install asciidoc

    git --version  #查看版本

    安装 Memcache

    安装 libevent

    cd /usr/local/src
    tar zxvf libevent-2.0.22-stable.tar.gz
    cd libevent-2.0.22-stable

    ./configure --prefix=/usr/local/libevent
    make
    make install

    安装 memcache

    cd /usr/local/src 
    tar zxvf memcached-1.4.24.tar.gz
    cd memcached-1.4.24
    ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent 
    make
    make install

    ln -s /usr/local/memcached/bin/memcached /usr/local/bin/memcached

    启动
    memcached -d -m 512 -u root -p 11211 -c 1024 -P /tmp/memcached.pid

    启动参数说明:
    -d 选项是启动一个守护进程。
    -u root 表示启动 memcached 的用户为 root
    -m 是分配给 Memcache 使用的内存数量,单位是MB,默认64MB
    -M return error on memory exhausted (rather than removing items)
    -u 是运行 Memcache 的用户,如果当前为 root 的话,需要使用此参数指定用户
    -p 是设置 Memcache 的 TCP 监听的端口,默认为11211
    -c 选项是最大运行的并发连接数,默认是1024
    -P 是设置保存 Memcache 的 pid 文件

    停止
    先查看进程 id
    ps -ef|grep memcached
    root    15144    1  0 08:43 ?        00:00:00 /usr/local/memcached/bin/memcached -d -m 512 -u root -p 11211 -c 1024 -P /tmp/memcached.pid
    15144 为pid
    则停止命令为:kill -9 15144

    测试篇

    cd /usr/local/nginx/html

    rm -rf /usr/local/nginx/html/*  #删除默认测试页

    echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php

    chown -R www.www /usr/local/nginx/html/  #设置目录所有者

    chmod -R 700 /usr/local/nginx/html/  #设置目录权限

    在客户端浏览器输入服务器 IP 地址,可以看到相关的配置信息

    service nginx restart  #重启nginx

    service mysqld restart  #重启mysql

    service php-fpm start  #启动php-fpm

    service php-fpm restart #重启php-fpm

    service php-fpm stop #停止php-fpm

    service php-fpm start #启动php-fpm

    ##############################################

    备注:

    nginx 默认站点目录是:/usr/local/nginx/html/

    权限设置:chown www.www /usr/local/nginx/html/ -R

    MySQL 数据库目录是:/data/mysql/data

    权限设置:

    chwon -R www:www /data/www

    chown -R mysql.mysql /data/mysql/data

    到此,运行环境搭建完成。

  • 相关阅读:
    ES6 解构
    一些vue的知识点
    CSS选择器
    Django学习--介绍Django
    正则表达式
    ftp命令
    Vim学习指南
    关于ACM与OJ
    brctl命令
    LXC
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4619637.html
Copyright © 2011-2022 走看看