• Ubuntu编译安装PHP7


    参数配置

    ./configure --prefix=/usr/local/php7

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

    --with-apxs2=/usr/local/apache2/bin/apxs      指定apache的apxs,会在其modules中生成libphp7.so

    --with-mysql=mysqlnd 

    --with-mysqli=mysqlnd 

    --with-pdo-mysql=mysqlnd

     

    --with-openssl 

    --with-iconv-dir 

    --with-freetype-dir 

    --with-jpeg-dir 

    --with-png-dir 

    --with-zlib 

    --with-libxml-dir 

    --with-curl 

    --with-mcrypt 

    --with-curlwrappers 

    --with-mhash 

    --with-mcrypt

    --without-pear

    --with-gd 

    --with-xmlrpc 

     

    --enable-mysqlnd

    --enable-xml 

    --disable-rpath 

    --enable-bcmath 

    --enable-shmop 

    --enable-sysvsem 

    --enable-inline-optimization 

    --enable-mbregex 

    --enable-fpm 

    --enable-mbstring 

    --enable-gd-native-ttf 

    --enable-pcntl 

    --enable-sockets 

    --enable-zip 

    --enable-soap  

    如果报错,直接安装需要的扩展包

    sudo apt-get install  libopenssl-dev    libcurl4-openssl-dev    libjpeg-dev ...

    配置通过了,开始编译安装 make && sudo make install

    拷贝配置文件  sudo cp php.ini-development  /usr/local/php7/etc/php.ini


    配置Apache解析php脚本,因为已经在其modules目录生成了libphp7.so,只需在配置文件中导入即可:

      LoadModule php7_module  modules/libphp7.so


    配置php.ini,使其可以通过mysqli连接MySQL数据库

    因为是通过mysqlnd驱动的,不需要在extension=mysqli,直接找到[MySQLi]部分进行配置即可:

      mysqli.default_socket=/tmp/mysql.sock

        启动mysql(service mysql start)后,如果只有/var/run/mysqld/mysqld.sock没有/tmp/mysql.sock,

        则需要创建个软连接:ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

      mysqli.default_host='localhost'   mysqli.default_user='root'

    如果要使用Pdo_mysql,同样 pdo_mysql.default_socket=/tmp/mysql.sock


    测试一下,在Apache文档根目录创建info.php 和 test.php

    info.php

    <?php phpinfor(); ?>

    浏览器访问 .../info.php可以看到

    test.php
    
    <?php
    // 面向对象方法
    $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db'); if ($mysqli->connect_error) { die('Connect Error:'. $mysqli->connect_error); } echo “Connect Successfully”;


    //面向过程方法
    $conn = mysqli_connect($host, $servername, $username, $password);

    // 检测连接
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "Connected successfully";
    ?>

    浏览器访问  .../test.php

    Warning: mysqli::__construct(): (HY000/2002): Permission denied in /usr/local/apache2/htdocs/test.php on line 3
    Connection Error: Permission denied

    将上面的localhost 改成 127.0.0.1  结果:Connected successfully 。。。

    //PDO方法
    <?php
    $servername = "127.0.0.1";
    $username = "username";
    $password = "password";
    
    try {
        $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
        echo "Connected successfully"; 
        }
    catch(PDOException $e)
        {
        echo $e->getMessage();
        }
    KEEP LEARNING!
  • 相关阅读:
    使用mybatis如果类属性名和数据库中的属性名不一样取值就会为null
    学习mybatis时出现了java.io.IOException: Could not find resource EmployeeMapper.xml
    配置mybatis-config.xml出现过很诡异的现象
    mybatis学习(一)
    报错cannot be cast to javassist.util.proxy.Proxy
    列车调度
    三角形
    土豪聪要请客(stol)
    Jams倒酒(pour)
    Data
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5469687.html
Copyright © 2020-2023  润新知