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