很多站长朋友们都不太清楚php.ini路径设置,今天小编就来给大家整理php.ini路径设置,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 FastCGI如何自定义php.ini文件 2、 如何设置PHP扩展的目录 3、 php.ini配置里的include_path 4、 怎么修改 cli php.ini指定路径 5、 如何找出PHP配置文件php.ini的路径 6、 php.ini上传文件路径问题 FastCGI如何自定义php.ini文件现在的虚拟主机提供的功能很强大,很多主机商都允许客服自定义php.ini。如何自定义php.ini呢,分以下几种情况:
模块方式,需要写入.htaccess文件
suPHP方式,这个直接在用户的根目录放一个php.ini文件就可以了,最简单,也是目前虚拟主机服务商使用最广泛的方式。
今天就来说下FastCGI方式下如何自定义php.ini. 以cPanel主机为例来进行说名,如果是其他的只需要知道对应的目录修改下即可。操作如下:
在 public_html 目录的 .htaccess 文件加入:
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php.fcgi
建立一个文件 php.fcgi ,内容:
#!/bin/sh
exec /usr/local/cpanel/cgi-sys/php5
上传到 cgi-bin目录,权限设置为 700 ,必须通过 ASCII码上传
新建一个php.ini 文件放在 cgi-bin目录下,在文件中写入需要自定义的内容即可。
如果想自定义php.ini的路径,就把php.fcgi中的内容修改为:
#!/bin/sh
PHPRC=”/home/doczz/public_html”
export PHPRC
exec /usr/local/cpanel/cgi-sys/php5
然后把php.ini文件放在定义的目录下即可。
需要注意的问题:
1.php.fcgi的权限设置为755(如果启用了suEXEc,设置为700即可。)
2.这个文件必须通过ASCII 码上传,不能通过二进制编码上传。
如何设置PHP扩展的目录当服务器上PHP已经安装好,需要额外添加PHP扩展时怎么办?不需要重新安装PHP,有了phpize我们可以在原有的PHP基础之上直接安装扩展库。
这次编译仅仅只是单独编译PHP的扩展库,接下来将编译好的扩展库加入到现在运行的php中,不对现在运行的php重新编译,所以没有一点的影响。
下面我们演示安装xsl的扩展(不一定常用,仅做为一个范例)
做法一:
1.找到当前运行的php版本的源代码目录,如php-5.2.3。进入xsl扩展库目录。
$cd /home/pkgs/php-5.3.3/ext/xsl
2.调用phpize程序生成编译配置文件。
$/home/app/php5.3.3/bin/phpize
3.编译扩展库,分别执行下面的configure和make命令。
$./configure-with-php-config=/home/app/php5.3.3/bin/php-config
这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make
#make成功执行后,生成的扩展库文件在当前目录的 modules子目录下,
如/home/php-5.3.3/ext/curl/modules/xsl.so
4.配置php.ini文件
#将编译好的扩展库文件复制到PHP的扩展目录下,可通过查看phpinfo信息。。
$ cp /home/pkg/php-5.3.3/ext/xsl/modules/xsl.so /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626
#在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到php安装目录/extension/no-debug-non....目录下,并添加扩展库位置。
extension_dir /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626”
extension=xsl.so
5.重启php,查看phpinfo信息,即可看到刚才添加进去的xsl扩展库。(如果有多个php-fpm进程的话,平滑重启主进程即可:kill -USR2 pid)
php.ini配置里的include_path直对include_path的作用不了解,也没怎么注意过它的用途,今天在网上看一些资料后明白了,记录一下:
其实设置include_path的作用就是设置用include()函数包函文件时的路径,当然也可以不设置include_path,只要在包函文件时写出具体的文件相对或绝对路即可:
下面以安装smarty为例:
下面内容中,我们都是假设你的文件放在了D:\Appserv\www\Smarty下。
1、找到你的php.ini配置文件修改php.ini的include_path选项,把smarty的库文件路径加上,比如:
include_path = "D:\Appserv\www\Smarty\libs"
提醒一下,php.ini中一共有两处include_path,一处是Unix下使用的,一处是windows下使用的,要修改windows下使用的:
-------------------------------------------------------------
; Windows: "path1;patstrong"
;include_path = ".:/php/includes"
修改为:
; Windows: "\path1;\patstrong"
include_path = "D:\Appserv\www\Smarty\libs"
保存即可,这个是PHP的包含文件路径,可以设置多个,用";"格开。
2、载入Smarty库,如果在php.ini设置了include_path为D:\Appserv\www\Mysmarty\libs,那么可以直接用include("Smarty.class.php");另外不设置include_path,可以直接把Smarty.class.php拷到网站目录,就可以用相对路径或用绝对路径了,如include("D:\Appserv\www\Smarty\libs\Smarty.class.php");
可以看出设置了include_path后,要包函文件Smarty.class.php就比较简便了,不用写一大串的路径(其实也不见得方便,只是当很多需要包函的文件都在一个目录下时,这样会觉得比较方便)。
有两种方法来设置php的include_path.
一:修改php.ini文件中的include_path项。
例:include_path = .:/usr/local/lib/php:./include
二:使用ini_set方法(对于无法修改php.ini的情况)。
例:ini_set("include_path", ".::./include:include
include_path补充
include_path用来设置include()或require()函数包含文件的参考路径.
也就是说当使用include()或require()函数包含文件的时候,程序首先以include_path设置的路径作为参考点去找文件,如果找不到,则以程序自身所在的路径为参考点去找所要的文件,如果都找不到,则出错.
当include_path设置了多个参考路径(每个路径用分号隔开)时,排在前面的路径优先找.
例如: ini_set('include_path','d:\www\mysite\test;d:\www\mysite\test2');
include('aaa/test.php');
程序会先以路径d:\www\mysite\test为参考去找aaa/test.php,若没有,再以d:\www\mysite\test2为参考去找,再没有,则以自身所在路径为参考去找.
怎么修改 cli php.ini指定路径1、带上全路径执行 #!/usr/local/php5/bin/php -q
2、 ln -s /usr/local/php5/bin/php /usr/bin/php
简单明了,就用上面说的这个两个就行了,
如何找出PHP配置文件php.ini的路径1、windows上
①打开cmd窗口
②切换到php的bin目录,找到php.exe
③输入命令 php -i |findstr Configuration 然后回车
④在返回的代码里面就可以找到php.ini了(注意,如果没有配置,则为none)
2、linux上
①在命令行中输入 php -i |grep Configuration 就可以找到了看到了
②在命令行中输入 find / -name php.ini 搜索就可以找到了看到了,有可能有多个
3、把 <?php echo phpinfo();?> 代码写入任意一个php文件里面,如demo.php,存放在apache或者是nginx的工作目录,然后用浏览器访问demo.php,然后在页面ctrl+f 查找 Loaded Configuration File
php.ini上传文件路径问题php上传文件涉及到的参数:
几个参数调整:
0:文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值
php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。
要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限
max_execution_time
变量max_execution_time设置了在强制终止脚本前PHP等待脚本执行完毕的时间,此时间以秒计算。当脚本进入了一个无限循环状态 时此变量非常有用。然而,当存在一个需要很长时间完成的合法活动时(例如上传大型文件),这项功能也会导致操作失败。在这样的情况下必须考虑将此变量值增 加,以避免PHP在脚本正在执行某些重要过程的时候将脚本关闭。
2:max_execution_time = 90
3:file_uploads = On
3:upload_max_filesize = 2M
4:post_max_size
同表单提交相关的一个变量是post_max_size,它将控制在采用POST方法进行一次表单提交中PHP所能够接收的最大数据量。似乎不大 可能需要将默认的8 MB改得更大。相反,应当适当将其降到更为实际的数值。但如果希望使用PHP文件上传功能,则需要将此值改为比upload_max_filesize还 要大。
max_size = 8M
:max_input_time
此变量可以以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制。如果应用程序所运行环境处在低速链路上,则需要增加此值以适应接收数据所需的更多时间.
max_input_time = 90
6:memory_limit
memory_limit = 8M
为了避免正在运行的脚本大量使用系统可用内存,PHP允许定义内存使用限额。通过memory_limit变量来指定单个脚本程序可以使用的最大内存容量
变量memory_limit的值应当适当大于post_max_size的值
打开php.ini,首先找到
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;区域,有影响文件上传的以下几个参数:
file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2M
在
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;区域,还有一项:
post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数:
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了。
补充:
需要更改 php.ini 的三个地方
upload_max_filesize = 51M
post_max_size = 52M
memory_limit = 56M
这三个参数分别定义 上传文件的允许最大体积、POST 数据允许的最大数据量、最大的内存占用量。每一个都需要定义的比前一个大才可以
接收文件的那个 php 页的最顶端上加上这么一行,不然很可能传一半的时候就被告知超时:
set_time_limit(0);
关于php.ini路径设置的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php.ini路径设置 php ini的详细内容...