PHP: php.ini PHP扩展
-参考设置:
file_uploads = On
post_max_size = 2024M
upload_max_filesize = 2024M
output_buffering = Off
max_execution_time = 4000
max_input_vars = 3000
max_input_time = 5000
memory_limit = 400M
zlib.output_compression = Off
-phpinfo()函数
phpinfo函数可以显示出PHP 所有相关信息。是排查配置php是是否出错或漏配置模块的主要方式之一!代码如下 :
<?php
phpinfo();
?>
只要访问到phpinfo()函数的web页面,即返回php的所有相关信息!
1、phpinfo()开关显示的是php的版本,System显示的是操作系统具体型号,Build Date显示的是安装php的日期,Server API在这里显示支持php-fpm程序
System |
Linux party 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 |
Build Date |
Apr 2 2019 17:19:10 |
Server API |
FPM/FastCGI |
2、如果是源码安装时,会有”Configure Command“显示当时源码配置时添加的参数及模块,yum源安装则没有显示
Configure Command |
‘./configure’ ‘Cprefix=/usr/php’ ‘Cwith-config-file-path=/usr/php/etc’ ‘Cwith-gd’ ‘Cwith-mysqli’ ‘Cwith-openssl’ ‘Cwith-zlib’ ‘Cwith-curl’ ‘Cwith-jpeg-dir’ ‘Cwith-png-dir’ ‘Cwith-iconv’ ‘Cenable-fpm’ ‘Cenable-zip’ ‘Cenable-mbstring’ |
3、如果php是由yum安装时,查看安装的模块配置文件是放在“Scan this dir for additional .ini files”目录,显示加载到的模块详情在“Additional .ini files parsed”查看。源码安装则为none值
4、Configuration File (php.ini) Path 这是 php 默认的配置文件路径,可以有或无真实的php.ini文件 。 Loaded Configuration File 这是实际加载的,就是php服务启动时以这个配置文件为准,如果这个文件不存在,就在Configuration File里找。
Configuration File (php.ini) Path |
/etc/opt/remi/php71 |
Loaded Configuration File |
/etc/opt/remi/php71/php.ini |
注意:
1、上面的是显示为yum安装时自己设置好的配置ini文件路径,如果是源码安装会要配置Cwith-config-file-path=/usr/php/etc参数后,安装完后还要把源码包的php.ini-production拷贝到Cwith-config-file-path设置的路径下改为php.ini
2、php.ini-development (开发环境用)与php.ini-production(生产环境用)两个建议。
3、如果不复制的话,Loaded Configuration File会显示为None 。
5、extension_dir的文件是php加载的扩展模块存放的目录(在core模块里)
extension_dir |
/opt/remi/php71/root/usr/lib64/php/modules |
/opt/remi/php71/root/usr/lib64/php/modules |
6、在Configurationf版块可以查看php的模块加载情况,是否可用。
7、在Environment查看php的环境变量,这里把用户和组为本来的apache改为nginx
8、在PHP Variables可以查看php变量对应的参数,方便套用
-Additional .ini files parsed
PHP Version 7.4.27 |
System |
Linux alaica.com 5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 16:49:16 UTC 2022 x86_64 |
Build Date |
Dec 20 2021 21:28:15 |
Server API |
CGI/FastCGI |
Virtual Directory Support |
disabled |
Configuration File (php.ini) Path |
/etc/php/7.4/cgi |
Loaded Configuration File |
/home/test/etc/php7.4/php.ini |
Scan this dir for additional .ini files |
/etc/php/7.4/cgi/conf.d |
Additional .ini files parsed |
/etc/php/7.4/cgi/conf.d/10-mysqlnd.ini, /etc/php/7.4/cgi/conf.d/10-opcache.ini, /etc/php/7.4/cgi/conf.d/10-pdo.ini, /etc/php/7.4/cgi/conf.d/15-xml.ini, /etc/php/7.4/cgi/conf.d/20-bcmath.ini, /etc/php/7.4/cgi/conf.d/20-bz2.ini, /etc/php/7.4/cgi/conf.d/20-calendar.ini, /etc/php/7.4/cgi/conf.d/20-ctype.ini, /etc/php/7.4/cgi/conf.d/20-curl.ini, /etc/php/7.4/cgi/conf.d/20-dom.ini, /etc/php/7.4/cgi/conf.d/20-exif.ini, /etc/php/7.4/cgi/conf.d/20-ffi.ini, /etc/php/7.4/cgi/conf.d/20-fileinfo.ini, /etc/php/7.4/cgi/conf.d/20-ftp.ini, /etc/php/7.4/cgi/conf.d/20-gd.ini, /etc/php/7.4/cgi/conf.d/20-gettext.ini, /etc/php/7.4/cgi/conf.d/20-iconv.ini, /etc/php/7.4/cgi/conf.d/20-json.ini, /etc/php/7.4/cgi/conf.d/20-mbstring.ini, /etc/php/7.4/cgi/conf.d/20-mysqli.ini, /etc/php/7.4/cgi/conf.d/20-pdo_mysql.ini, /etc/php/7.4/cgi/conf.d/20-pdo_sqlite.ini, /etc/php/7.4/cgi/conf.d/20-phar.ini, /etc/php/7.4/cgi/conf.d/20-posix.ini, /etc/php/7.4/cgi/conf.d/20-readline.ini, /etc/php/7.4/cgi/conf.d/20-shmop.ini, /etc/php/7.4/cgi/conf.d/20-simplexml.ini, /etc/php/7.4/cgi/conf.d/20-sockets.ini, /etc/php/7.4/cgi/conf.d/20-sqlite3.ini, /etc/php/7.4/cgi/conf.d/20-sysvmsg.ini, /etc/php/7.4/cgi/conf.d/20-sysvsem.ini, /etc/php/7.4/cgi/conf.d/20-sysvshm.ini, /etc/php/7.4/cgi/conf.d/20-tokenizer.ini, /etc/php/7.4/cgi/conf.d/20-xmlreader.ini, /etc/php/7.4/cgi/conf.d/20-xmlwriter.ini, /etc/php/7.4/cgi/conf.d/20-xsl.ini, /etc/php/7.4/cgi/conf.d/20-zip.ini |
-php 怎么安装扩展
php安装扩展的方法:1、使用apt或者yum命令安装扩展;2、使用pecl install命令安装扩展;3、通过源码编译安装;4、通过phpize安装。
本文操作环境:windows7系统、php5.3.29版,DELL G3电脑
php安装扩展的几种方法
安装扩展
注意
与Apache+PHP或者Nginx+PHP的运行模式不同,WorkerMan是基于PHP命令行 PHP CLI 运行的,使用的是不同的PHP可执行程序,使用的php.ini文件也可能不同。所以在网页中打印phpinfo()看到安装了某个扩展,不代表命令行的PHP CLI也安装了对应的扩展。
如何确定PHP CLI安装了哪些扩展
运行 php -m 会列出命令行 PHP CLI 已经安装的扩展,结果类似如下:
~# php -m
[PHP Modules]
libevent
posix
pcntl
…
如何确定PHP CLI 的php.ini文件的位置
当我们安装扩展时,可能需要手动配置php.ini文件,把扩展加进去,所以要确认PHP CLI的php.ini文件的位置。可以运行php Cini查找PHP CLI的ini文件位置,结果类似如下(各个系统显示结果会有差异):
~# php Cini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File: /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed: /etc/php5/cli/conf.d/apc.ini,
/etc/php5/cli/conf.d/libevent.ini,
/etc/php5/cli/conf.d/memcached.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini
…
给PHP CLI安装扩展(安装memcached扩展为例)
方法一、使用apt或者yum命令安装
如果PHP是通过 apt 或者 yum 命令安装的,则扩展也可以通过 apt 或者 yum 安装
debian/ubuntu等系统apt安装PHP扩展方法(非root用户需要加sudo命令)
1、利用apt-cache search查找扩展包
~# apt-cache search memcached php
php-apc C APC (Alternative PHP Cache) module for PHP 5
php5-memcached C memcached module for php5
2、使用apt-get install安装扩展包
~# apt-get install -y php5-memcached
Reading package lists… Done
Reading state information… Done
…
centos等系统yum安装PHP扩展方法
1、利用yum search查找扩展包
~# yum search memcached php
php-pecl-memcached C memcached module for php5
2、使用yum install安装扩展包
~# yum install -y php-pecl-memcached
Reading package lists… Done
Reading state information… Done
…
说明:
使用apt或者yum安装PHP扩展会自动配置php.ini文件,安装完直接可用,十分方便。缺点是有些扩展在apt或者yum中没有对应的扩展安装包。
【推荐学习:《PHP视频教程》】
方法二、使用pecl安装
使用pecl install命令安装扩展
1、pecl install安装
~# pecl install memcached
downloading memcached-2.2.0.tgz …
Starting to download memcached-2.2.0.tgz (70,449 bytes)
….
2、配置php.ini
通过运行 php Cini查找php.ini文件位置,然后在文件中添加extension=memcached.so
方法三、源码编译安装(一般是安装PHP自带的扩展,以安装pcntl扩展为例)
1、利用php -v命令查看当前的PHP CLI的版本
~# php -v
PHP 5.3.29-1~dotdeb.0 with Suhosin-Patch (cli) (built: Aug 14 2014 19:55:20)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
2、根据版本下载PHP源代码
PHP历史版本下载页面:php.net/releases/
3、解压源码压缩包
例如下载的压缩包名称是php-5.3.29.tar.gz
~# tar -zxvf php-5.3.29.tar.gz
php-5.3.29/
php-5.3.29/README.WIN32-BUILD-SYSTEM
php-5.3.29/netware/
…
4、进入源码中的ext/pcntl目录
~# cd php-5.3.29/ext/pcntl/
5、运行 phpize 命令
~# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
6、运行 configure命令
~# ./configure
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
…
7、运行 make 命令
~# make
/bin/bash /tmp/php-5.3.29/ext/pcntl/libtool Cmode=compile cc …
-I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend…
…
8、运 行make install 命令
~# make install
Installing shared extensions: /usr/lib/php5/20090626/
9、配置ini文件
通过运行 php Cini查找php.ini文件位置,然后在文件中添加extension=pcntl.so
说明: 此方法一般用来安装PHP自带的扩展,例如posix扩展和pcntl扩展。除了用phpize编译某个扩展,也可以重新编译整个PHP,在编译时用参数添加扩展,例如在源码根目录运行
~# ./configure Cenable-pcntl Cenable-posix …
~# make && make install
方法四、phpize安装
如果要安装的扩展在php源码ext目录中没有,那么这个扩展需要到pecl.php.net 搜索下载
以安装libevent扩展为例(假设系统安装了libevent-dev库)
1、下载libevent扩展文件压缩包(在当前系统哪个目录下载随意)
~# wget pecl.php.net/get/libevent-0.1.0.tgz
C2015-05-26 21:43:40C pecl.php.net/get/libevent-0.1.0.tgz
Resolving pecl.php.net… 104.236.228.160
Connecting to pecl.php.net|104.236.228.160|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 9806 (9.6K) [application/octet-stream]
Saving to: “libevent-0.1.0.tgz”
100%[=======================================================>] 9,806 41.4K/s in 0.2s
2、解压扩展文件压缩包
~# tar -zxvf libevent-0.1.0.tgz
package.xml
libevent-0.1.0/config.m4
libevent-0.1.0/CREDITS
libevent-0.1.0/libevent.c
….
3、进入到源码目录
~# cd libevent-0.1.0/
4、运行phpize命令
~# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
5、运行configure命令
~# ./configure
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking for a sed that does not truncate output… /bin/sed
checking for cc… cc
checking whether the C compiler works… yes
…
6、运行make命令
~# /bin/bash /data/test/libevent-0.1.0/libtool Cmode=compile cc -I. -I/data/test/libevent-0.1.0 -DPHP_ATOM_INC -I/data/test/libevent-0.1.0/include
…
7、运行make install命令
~# make install
Installing shared extensions: /usr/lib/php5/20090626/
8、配置ini文件
通过运行 php Cini查找php.ini文件位置,然后在文件中添加extension=libevent.so
以上就是php 怎么安装扩展的详细内容
-POP3, smtp服务器需要ssl方式加密时,支持ssl需要php加载openssl扩展