首先,新装好的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