• php7.3编译安装 支持微擎2.0


    再次整理

     
    //一下配置在命令粘贴时注意句尾加  , 在  后不能有空格,不然会自动执行,相当于回车

    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www
    --enable-embedded-mysqli
    --with-curl=/usr --with-openssl-dir=/usr --with-gd
    --with-libxml-dir=/usr
    --with-mysql-sock=SOCKPATH


    with-pdo-dblib


    编译时:virtual memory exhausted: Cannot allocate memor

    ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
    /home/king/php-5.2.13/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
    collect2: ld returned 1 exit status
    make: *** [sapi/cli/php] Error 1
    [root@test php-5.2.13]# vi Makefile

    在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。

    或者用另一种办法

    make ZEND_EXTRA_LIBS='-liconv'

    ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/

    作者用的第一种办法解决的,编译好Makefile后,记得先make clean一下,再make,不然会报错

    [root@third php-7.3.6]# make install
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
    Installing PHP CLI binary:        /usr/local/php/bin/
    Installing PHP CLI man page:      /usr/local/php/php/man/man1/
    Installing PHP FPM binary:        /usr/local/php/sbin/
    Installing PHP FPM defconfig:     /usr/local/php/etc/
    Installing PHP FPM man page:      /usr/local/php/php/man/man8/
    Installing PHP FPM status page:   /usr/local/php/php/php/fpm/
    Installing phpdbg binary:         /usr/local/php/bin/
    Installing phpdbg man page:       /usr/local/php/php/man/man1/
    Installing PHP CGI binary:        /usr/local/php/bin/
    Installing PHP CGI man page:      /usr/local/php/php/man/man1/
    Installing build environment:     /usr/local/php/lib/php/build/
    Installing header files:          /usr/local/php/include/php/
    Installing helper programs:       /usr/local/php/bin/
      program: phpize
      program: php-config
    Installing man pages:             /usr/local/php/php/man/man1/
      page: phpize.1
      page: php-config.1
    Installing PEAR environment:      /usr/local/php/lib/php/
    [PEAR] Archive_Tar    - installed: 1.4.7
    [PEAR] Console_Getopt - installed: 1.4.2
    [PEAR] Structures_Graph- installed: 1.1.1
    [PEAR] XML_Util       - installed: 1.4.3
    [PEAR] PEAR           - installed: 1.10.9
    Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
    You may want to add: /usr/local/php/lib/php to your php.ini include_path
    /usr/local/src/php-7.3.6/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
    ln -s -f phar.phar /usr/local/php/bin/phar
    Installing PDO headers:           /usr/local/php/include/php/ext/pdo/
    [root@third php-7.3.6]# php -v
    -bash: php: command not found
    [root@third php-7.3.6]# php-fpm -v
    -bash: php-fpm: command not found
    [root@third php-7.3.6]#

    ERROR: unable to bind listening socket for address ’127

     

    ERROR: unable to bind listening socket for address ’127.0.0.1:9000′

    解决办法:

    killall php-fpm

    然后重启即可。

    我的PHP安装目录这样重启    /usr/local/php/sbin/php-fpm

    6,安装:

    make

    make install

    7,关于配置:

    cp php.ini-development /usr/local/php7/etc/php.ini
    cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
    cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
    8,加个权限:

    chmod +x /etc/init.d/php-fpm

    现在试一下,/etc/init.d/php-fpm start

    如果php启动成功了,那你很幸福;如果失败了,接着往下看。

    大概出现的是下图这个情况吧?

    再试一下运行提示的命令,出的问题是ERROR:FPM initialization failed.如下图:

    所以出问题的是php-fpm,机智如我,把我另一个虚拟机(centOS7)上的php-fpm给换上去了,只需要把php的安装根目录按照自己的情况改一下就成了(就是这一行:prefix=/usr/local/php)。现在我就无私的把我的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/php
    exec_prefix=${prefix}

    php_fpm_BIN=${exec_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 --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 --daemonize $php_opts

            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-quit"
                exit 1
            else
                echo " done"
            fi
        ;;

        status)
            if [ ! -r $php_fpm_PID ] ; then
                echo "php-fpm is stopped"
                exit 0
            fi

            PID=`cat $php_fpm_PID`
            if ps -p $PID | grep -q $PID; then
                echo "php-fpm (pid $PID) is running..."
            else
                echo "php-fpm dead but pid file exists"
            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"
        ;;

        configtest)
            $php_fpm_BIN -t
        ;;

        *)
            echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
            exit 1
        ;;

    esac

    配置php到nginx

    server
    {
    listen 80; # 端口号
    server_name demo.gysr.top; # 域名
    index index.html index.htm index.php;
    root /web/demo.gysr.top; #j项目的入口文件夹

    location ~ /.svn/ {
    deny all;
    }


    location / {
    rewrite ^/$ /index.php last;
    rewrite ^/(?!index.php|index.html|layui|css|js|bootstrap|robots.txt)(.*)$ /index.php/$1 last;
    }

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


    location ~/uploads/.*.(php|php5)?$ {
    deny all;
    }
    location ~/public/.*.(php|php5)?$ {
    deny all;
    }

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires 30d;
    }

    location ~ .*.(js|css)?$
    {
    expires 8d;
    }


    #access_log /www/logs/access.log main;
    #
    }
  • 相关阅读:
    bind函数(c++11)
    谓词
    lambda表达式(c++11)
    重载运算符
    sizeof新用法(c++11)
    引用限定符(c++11)
    this指针和const成员函数
    JavaScript for循环元素取下标问题
    Hbuider sass配置 webstorm scss配置
    检测对象是否拥有某一属性
  • 原文地址:https://www.cnblogs.com/guiyishanren/p/11101655.html
Copyright © 2020-2023  润新知