前言
用TP开发完新项目后,传到服务器上报错,网上查了一下,说未加载PDO,就加载吧。
找到配置文件php.ini,搜到;extension=php_pdo_mysql.dll,去掉前面的注释,重启;服务器,看似一切正常,却大错特错。
Linux下应该是.so,而不是.dll,php源码中的php.ini-development只是用.dll作为样例,在Linux下不能直接去除注释就行了。
下文介绍Php最新版安装方法
安装工具和相应扩展
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel re2c
安装扩展
安装FreeType(使用thinkphp5验证码时可能会出现缺少freetype的问题)
yum install freetype
find / -name freetype #复制路径 下方php编译会用到
安装curl
cd /usr/local/src/
wget https://curl.haxx.se/download/curl-7.58.0.tar.gz
tar zxvf curl-7.58.0.tar.gz
cd curl-7.58.0
./configure --prefix=/usr/local/curl
make && make install
获取并解压PHP安装包
cd /usr/local/src/
wget http://hk1.php.net/get/php-7.1.14.tar.gz/from/this/mirror
tar zxvf mirror
cd php-7.1.14
#http://cn2.php.net是中国网站,mirror也是压缩包,更换版本的话直接替换url
开始编译PHP
系统配置可以按照自己的项目决定,这里只是几个基础配置项
./configure的作用是检测系统配置,生成makefile文件,以便你可以用make和make install来编译和安装程序
cd php-7.1.14
./configure \
--with-config-file-path=/usr/local/php/etc \
--prefix=/usr/local/php \
--enable-fpm \
--with-apxs2=/usr/local/apache/bin/apxs \
--enable-opcache \
--with-mysqli \
--with-pdo-mysql \
--enable-bcmath \
--enable-mbstring \
--enable-sockets \
--with-gd \
--with-openssl \
--with-curl=/usr/local/curl \
--with-gettext \
--with-freetype-dir=/usr/include/freetype2 #这个路径是上面copy下来的,用在此处
#最后
make && make install
php配置文件的路径已经指定到usr/local/etc
#只需要复制源码中的 php.ini-development 或者 php.ini-production 到usr/local/etc目录下即可,vi打开需要的扩展包
cp -R php.ini-development /usr/local/php/etc/php.ini
完成安装,下方是可能会用到功能介绍
phpize编译安装
修改默认的php.ini ,后续添加扩展时需要用到
#修改php配置文件
vi /usr/local/php/etc/php.ini
#检查扩展库目录是否设置(如果没设置则增加下方代码)
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20160303/"
#开启扩展模块时添加,例如:
extension=curl.so
extension=openssl.so
#重启Apache即可。
/usr/local/apache/bin/apachectl restart
安装curl
cd /usr/local/src/php-7.1.14/ext/curl/
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config --with-curl=/usr/local/curl
make && make install
vi /usr/local/php/etc/php.ini
#开启扩展模块时添加,例如:
extension=curl.so
安装SSL
cd /usr/local/src/php-7.1.14/ext/openssl/
cp config0.m4 ./config.m4
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config --with-openssl
make && make install
vi /usr/local/php/etc/php.ini
#开启扩展模块时添加,例如:
extension=openssl.so
安装大部分的扩展与上面的大同小异,有区别的自行百度google
开启错误模式调试代码(未必会用到)
vi php.ini
#显示错误信息
display_errors = On
#显示php开始错误信息
display_startup_errors = On
#日志记录错误信息
log_errors = On
ini_set('display_errors',1); //错误信息
ini_set('display_startup_errors',1); //php启动错误信息
error_reporting(-1); //打印出所有的 错误信息
ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); //将出错信息输出到一个文本文件
网友评论