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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM