参数配置

./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();
}

Ubuntu编译安装PHP7的更多相关文章

  1. Ubuntu编译安装php7.4

    Ubuntu编译安装php7.4  [root@ubuntu2004 php-7.4.30]#apt install gcc libssl-dev libxml2-dev libsqlite3-dev ...

  2. ubuntu编译安装php7遇到的问题及解决方案

    configure: error: Cannot find OpenSSL's <evp.h> 这个可以在configure的时候,指定openssl的路径,查看openssl的安装路径: ...

  3. ubuntu编译安装php7, 安装openssl

    sudo apt-get install openssl sudo apt-get install libssl-dev

  4. nginx php-fpm安装配置 CentOS编译安装php7.2

    CentOS编译安装php7.2 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是 ...

  5. 编译安装PHP7并安装Redis扩展Swoole扩展

    编译安装PHP7并安装Redis扩展Swoole扩展 在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么 ...

  6. 【安装PHP】如何在openSUSE42.1下编译安装PHP7

    首先推荐一篇文章PHP 7 Release Date Arrived: Will Developers Adopt PHP 7? - PHP Classes blog. 里面说到是否会去使用PHP7, ...

  7. 全志a20安卓电视盒子安装可道云kodexplorer服务-编译安装php7.3+nginx

    可道云真的很强大,安装包很小,功能却很齐全,还可以自定义轻应用如果有手机客户端就更好了 研究了一下,可道云根目录放到外置存储设备(移动硬盘)会更合适,改路径的方法下面有提到上传文件时一个文件会在用户目 ...

  8. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展

    centos7.6编译安装php7..11及redis/memcached/rabbitmq/openssl/curl等常见扩展 获取Php的编译参数方法: [root@eus-api-cms-bac ...

  9. centos7下编译安装php-7.0.15(PHP-FPM)

    centos7下编译安装php-7.0.15(PHP-FPM) 一.下载php7源码包 http://php.net/downloads.php 如:php-7.0.15.tar.gz 二.安装所需依 ...

随机推荐

  1. redis超时问题分析

    redis超时问题分析 06/04. 2014 Redis在分布式应用中占据着越来越重要的地位,短短的几万行代码,实现了一个高性能的数据存储服务.最近dump中心的cm8集群出现过 几次redis超时 ...

  2. CSS行高line-height的一些深入理解及应用

    一.一些字面意思. “行高”大约是指:一行文字的高度.具体来说是指两行文字间基线之间的距离.基线是在英文字母中用到的一个概念,我们刚学英语使用的那个英语本子每行有四条线,其中底部第二条线就是基线,是a ...

  3. concurrent实用类

    improt java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.RejectedExecutionHandler; ...

  4. postman+jenkins+newman做接口测试的持续集成

    为何要做接口自动化测试的持续集成? 1. 接口相对稳定,改动少,比起GUI自动化测试来说性价比更加高些,不容易出现GUI自动化那种掉到维护脚本的坑里. 2. 接口测试比较简单,一个规范的接口,测试只需 ...

  5. C#中值类型与引用类型通俗理解

    关于值类型和引用类型已经有很多人写了很多文章,但是很多人也只是停留在字面上的理解,如果采用一种通俗的方法来解释,想必很多人都会理解.我们都知道值类型存储在栈上,引用类型存储在堆上,引用类型都是xxx类 ...

  6. Python学习之旅--第二周--元组、字符串、运算、字典

    一.元组 另一种有序列表叫元组:tuple.tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字: # Author:Tim Gu tuple = (" ...

  7. 【.NET】字符串处理

    类名:DealString /// 1.截取字符串,最后加3个小数点 /// 2.获得指定Url的参数的string类型值 /// 3.判断数据类型 /// 4.过滤JS标记 /// 5.获取Chec ...

  8. angularjs uigrid 中celltemplate的写浮动框

    columnDefs: [ {field: 'collegename', enableFiltering: false ,width:"12%",displayName:" ...

  9. <? extends T>和<? super T>

    转自:Java泛型中extends和super的区别? 另,问题来源:Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同? <? ext ...

  10. mysql导出数据表结构,必须退出mysql命令.重新使用msyqldump命令

    只导出数据库中所有表结构(-d 减去数据) 导出所有表结构和数据 mysqldump -uroot --default-character-set=utf8 -p123-d必须空格good>H: ...