Q & A
如何查看 php.ini 文件路径?
新建一个 test.php 文件,内容如下:
<?php
phpinfo();
?>
然后在浏览器使用 url 访问 test.php,会显示 php 相关的配置、插件等大量相关信息,在其中 Loaded Configuration File
一项即可找到所有生效的 php.ini 文件路径。
或者,更简单地可以直接运行命令输出以上信息(如果安装了多个版本的 php,那注意使用正确的 php 命令):
php -r "phpinfo();"
本地运行一个 php 文件
php [-f] test.php
几种错误提示及对应的解决办法
提示:
PHP Fatal error: Uncaught Error: Call to undefined function socket_create()
解决办法:
在 php.ini 文件中配置启用扩展 php_curl.dll。
提示:
PHP Fatal error: Uncaught Error: Call to undefined function curl_init()
解决办法:
在 php.ini 文件中配置启用扩展 php_curl.dll。
提示:
The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at your own risk, by setting the 'disable-tls' option to true
解决办法:
在 php.ini 文件中配置启用扩展 php_openssl.dll。
在开发环境下直接在页面显示出错信息
修改 php.ini 文件,配置 display_errors = On
。
安装 Memcache(not Memcached)for php7
当前(2016-10-19)Memcache 扩展并未有官方的支持办法,所以从源码编译安装。
步骤:
-
下载解压源码
wget https://github.com/websupport-sk/pecl-memcache/archive/NON_BLOCKING_IO_php7.zip unzip NON_BLOCKING_IO_php7.zip cd pecl-memcache-NON_BLOCKING_IO_php7
-
编译
/usr/local/php7/bin/phpize && ./configure --enable-memcache --with-php-config=/usr/local/php7/bin/php-config && make
注意 phpize 和 php-config 要使用 php7 下的。
-
放置 so 文件到正确位置
cp modules/memcache.so /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/memcache.so
目标路径可以在 phpinfo() 的
extension_dir
字段找到。 -
配置
echo 'extension=memcache.so' > /usr/local/php7/etc/php.d/memcache.ini
目标路径可以在 phpinfo() 的
Scan this dir for addtional .ini files
字段找到。 -
重启服务使扩展生效
service php-fpm restart
参考 Memcache extension with PHP 7 on CentOS fails to install。
修改 php.ini 后让配置生效
service php-fpm restart