zoukankan      html  css  js  c++  java
  • PHP编译安装

    安装

    编译安装前的准备
    提示:默认的php安装后gd不支持jpg,只支持gif、png、bmp。所以首先要安装gd库
    wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
    tar zxvf gd-2.0.33.tar.gz
    cd gd-2.0.33
    ./configure --prefix=/usr/local/webserver/gd2/
    make && make install
    正式安装

    wget http://www.php.net/get/php-5.3.26.tar.gz/from/us2.php.net/mirror
    tar zxvf php-5.3.26.tar.gz
    cd php-5.3.26
    ./configure --prefix=/usr/local/webserver/php --enable-fpm --with-mysql=/usr/local/webserver/mysql 
    --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-config-file-path=/usr/local/webserver/php  
    --with-openssl --enable-mbstring --with-zlib --enable-xml --with-gd=/usr/local/webserver/gd2/ --with-jpeg-dir  
    --enable-bcmath --with-mcrypt --with-iconv --enable-pcntl --enable-shmop --enable-simplexml
    make && make install
    
    cp php.ini-development /usr/local/webserver/php/php.ini

    配置

    • php(php.ini)
    将  ;date.timezone =
     改为 date.timezone = prc
    • php+nginx(nginx.conf)
    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  192.168.65.144;
            location / {
                root   /data/www;
                index  index.php index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            location ~ .php {
                root /data/www;
                include        fastcgi_params;
                set $real_script_name $fastcgi_script_name;
                
                #设置pathinfo
    
                set $path_info "";
                set $real_script_name $fastcgi_script_name;
                if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
                    set $real_script_name $1;
                    set $path_info $2;
                }
                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
            }
        }
    
    
    }
    • php+pathinfo(php.ini)
    enable_dl = On
    cgi.force_redirect = 0
    cgi.fix_pathinfo=1
    fastcgi.impersonate = 1
    cgi.rfc2616_headers = 1
    allow_url_fopen = On
    • 配置php-fpm启动脚本

    编写脚本(vi /etc/init.d/php-fpm )

    #! /bin/sh
    
    ### BEGIN INIT INFO
    # Provides:          php-fpm
    # Required-Start:    $remote_fs $network
    # Required-Stop:     $remote_fs $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: starts php-fpm
    # Description:       starts the PHP FastCGI Process Manager daemon
    ### END INIT INFO
    
    prefix=/usr/local/webserver/php
    
    php_fpm_BIN=${prefix}/sbin/php-fpm
    php_fpm_CONF=${prefix}/etc/php-fpm.conf
    php_fpm_PID=${prefix}/var/run/php-fpm.pid
    
    
    php_opts="--fpm-config $php_fpm_CONF"
    php_pid="--pid $php_fpm_PID"
    
    wait_for_pid () {
            try=0
    
            while test $try -lt 35 ; do
    
                    case "$1" in
                            'created')
                            if [ -f "$2" ] ; then
                                    try=''
                                    break
                            fi
                            ;;
    
                            'removed')
                            if [ ! -f "$2" ] ; then
                                    try=''
                                    break
                            fi
                            ;;
                    esac
    
                    echo -n .
                    try=`expr $try + 1`
                    sleep 1
    
            done
    
    }
    
    case "$1" in
            start)
                    echo -n "Starting php-fpm "
    
                    $php_fpm_BIN $php_opts $php_pid
    
                    if [ "$?" != 0 ] ; then
                            echo " failed"
                            exit 1
                    fi
    
                    wait_for_pid created $php_fpm_PID
    
                    if [ -n "$try" ] ; then
                            echo " failed"
                            exit 1
                    else
                            echo " done"
                    fi
            ;;
    
            stop)
                    echo -n "Gracefully shutting down php-fpm "
    
                    if [ ! -r $php_fpm_PID ] ; then
                            echo "warning, no pid file found - php-fpm is not running ?"
                            exit 1
                    fi
    
                    kill -QUIT `cat $php_fpm_PID`
    
                    wait_for_pid removed $php_fpm_PID
    
                    if [ -n "$try" ] ; then
                            echo " failed. Use force-exit"
                            exit 1
                    else
                            echo " done"
                    fi
                          ;;
    
            force-quit)
                    echo -n "Terminating php-fpm "
    
                    if [ ! -r $php_fpm_PID ] ; then
                            echo "warning, no pid file found - php-fpm is not running ?"
                            exit 1
                    fi
    
                    kill -TERM `cat $php_fpm_PID`
    
                    wait_for_pid removed $php_fpm_PID
    
                    if [ -n "$try" ] ; then
                            echo " failed"
                            exit 1
                    else
                            echo " done"
                    fi
            ;;
    
            restart)
                    $0 stop
                    $0 start
            ;;
    
            reload)
    
                    echo -n "Reload service php-fpm "
    
                    if [ ! -r $php_fpm_PID ] ; then
                            echo "warning, no pid file found - php-fpm is not running ?"
                            exit 1
                    fi
    
                    kill -USR2 `cat $php_fpm_PID`
    
                    echo " done"
            ;;
    
            *)
                    echo "Usage: $0 {start|stop|force-quit|restart|reload}"
                    exit 1
            ;;
    
    esac

    赋予脚本执行权限

    cd /usr/local/webserver/php/etc && cp php-fpm.conf.default php-fpm.conf
      chmod +x /etc/init.d/php-fpm

    设置开机启动

     /sbin/chkconfig php-fpm on

    使用以下命令对php操作

    service php-fpm start
    service php-fpm stop
    service php-fpm restart

    检查php+nginx是否配置成功

    在nginx.conf文件中我配置了我的php工作目录/www,在此目录下建立文件phpinfo.php,然后运行查看内容。

    ZendGuardLoader安装

    下载:ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

    谷歌下载:http://easyinstall.googlecode.com/files/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

    安装

    tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
    cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64/
    cp php-5.3.x/ZendGuardLoader.so /usr/local/webserver/php/ext/

    配置

    打开php.ini,加入以下代码:
    [Zend Guard]
    ;/usr/local/webserver/php/ext/ZendGuardLoader.so  这个是你当时指定的zend的目录
    zend_extension=/usr/local/webserver/php/ext/ZendGuardLoader.so
    zend_loader.enable=1
    zend_loader.disable_licensing=0
    zend_loader.obfuscation_level_support=3
    zend_loader.license_path=

    重启nginx 和 php-fpm,打开phpinfo查看如下图所示,证明配置成功:

  • 相关阅读:
    终端不显示 git branch 名字
    多线程下bufferedwriter若不关闭并不能记下所有log
    anaconda prompt execute jupyter notebook, can't open notebook
    conda 创建新环境下载包失败
    failed to install jupyter_contrib_nbextensions
    failed to install nb_conda
    Windows Server 2012R2 修复CVE-2016-2183(SSL/TLS)漏洞的办法
    SSL/TLS协议信息泄露漏洞(CVE-2016-2183)解决办法
    记录win NFS公网映射开放端口
    出题器
  • 原文地址:https://www.cnblogs.com/ecstore/p/3288484.html
Copyright © 2011-2022 走看看