首先,新裝好的fedora25是自帶apache和php7的,直接能用,可以解析.php,但卻無法鏈接mysql數據庫。
yum install mysql
會安裝mariadb,mysql的一個分支。
初學php,你會發現教程連接php用的mysql_connect()函數。這是一個誤導,php7已經完全拋棄mysql模塊,轉為使用mysqli模塊。
按照網上的教程,用phpize編譯的mysqli.so無法動態加載,所以不重裝php這條路我走不通。
那就重裝php,下載php-7.0.15.tar.gz
tar -zxvf php-7.0.15.tar.gz #解壓
cd php-7.0.15
./configure --prefix=/usr/local/php \
--with-apxs2 \ #聽說可以使apache支持php,然而我加了也沒用 --with-curl \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-iconv-dir \ --with-kerberos \ --with-libdir=lib64 \ --with-libxml-dir \ --with-mysqli \ --with-openssl \ --with-pcre-regex \ --with-pdo-mysql \ --with-pdo-sqlite \ --with-pear \ --with-png-dir \ --with-xmlrpc \ --with-xsl \ --with-zlib \ --enable-fpm \ --enable-bcmath \ --enable-libxml \ --enable-inline-optimization \ --enable-gd-native-ttf \ --enable-mbregex \ --enable-mbstring \ --enable-opcache \ --enable-pcntl \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-sysvsem \ --enable-xml \ --enable-zip
提示缺什么就yum *-devel
其中 –with-apxs2 報錯找不到文件,我yum install -y httpd-devel 解決
之后就是make && make install
配置文件
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm
啟動
# /etc/init.d/php-fpm
不過出現的問題是終端輸入php提示找不到命令,這不重要,/usr/local/php/bin/php 可以找到
然后就是讓apache支持php
在httpd.conf添加
LoadModule php7_module modules/libphp7.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
解決問題。
另外說一下,我在解決mysql擴展時候曾以為mariadb不能鏈接故換成mysql,以上結果是在下面環境下實現的
➜ ./php --version
PHP 7.0.15 (cli) (built: Feb 4 2017 16:25:59) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
➜ mysql --version
mysql Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using EditLine wrapper