.htaccess修改服务器php.ini文件路径

时间:2021-03-10 04:28:22

最近自己买了一个Unli系统的空间,准备做一个文件上传的小站,可是在上传一个有6M的文件时竟然上传不成功,去网上一查有人叫我写一代码来查看PHP服务器的环境代码如下:<?php phpinfo(); ?>将代码保存了之后将此文件的后缀名改为PHP上传到空间测试一下,结果upload_max_filesize的值是2M,此环境变量是上传最大值,这时我呆了这个不是PHP.INI文件的环境吗?我的是空间又不是自己的服务器,我那来的权限修改服务器上的PHP.INI文件啊。我于是去网上查关键字“如何修改PHP.INI”,唉,结果真是垃圾都是一些垃圾文章,一样也是要服务器权限才可以修改的。我的空间是IXWEBHOSTING空间商提供的,我就换了一个关键字“IXWEBHOSTING修改PHP.INI”,呵呵,这次真的给我找到好东西了。方法如下:

 

1.可以先用一php文件读出你现在服务器的全局配置的php.ini. 代码如下:

<?php

// Get phpinfo() into a variable
ob_start();
phpinfo();
$phpinfo_full = ob_get_contents();
ob_end_clean();

// Remove all <> tags from $phpinfo
$phpinfo = preg_replace ('/<[^>]*>/', '', $phpinfo_full);

// Find the php.ini location
preg_match ('/Configuration/ File/ /(php/.ini/)/ Path[ /t]*([^ /t/n]*)/', $phpinfo, $matches);
$cfgfile = $matches[1];
if (!$cfgfile) {
    echo "Unable to determine which configuration (php.ini) file is used!";
    exit;
}

// Read php.ini into $phpini
$phpini = file_get_contents('/hsphere/local/config/httpd/php5/php.ini');

// Get the current value for upload_tmp_dir
$utd_now = ini_get('upload_tmp_dir');

// Get the current value for session.save_path
$ssp_now = ini_get('session.save_path');

// Set table cell properties
$cfgfile_heading = 'Configuration File (php.ini)';
$cfgfile_color = '#FFFFFF';
$cfgfile_value = $cfgfile;
if (($cfgfile !== '/usr/local/lib/php-4.4.2/lib/php.ini') && ($cfgfile !== '/usr/local/lib/php-5.1.4/lib/php.ini')) {
    $cfgfile_heading .= ' &nbsp;-- &nbsp;CUSTOM';
    $cfgfile_color = '#6699FF';
    $cfgfile_value = '<b>' . $cfgfile_value . '</b>';
}
$utd_heading = 'upload_tmp_dir';
$utd_color = '#FFFFFF';
$utd_value = $utd_now;
if ($utd_now === '/www/tmp') {
    $utd_heading .= ' &nbsp;-- &nbsp;INVALID!';
    $utd_color = '#FF0000';
    $utd_value = '<b>' . $utd_value . '</b>';
}
$ssp_heading = 'session.save_path';
$ssp_value = $ssp_now;
if ($ssp_now === '3;/www/php') {
    $ssp_heading .= ' &nbsp;-- &nbsp;INVALID!';
    $ssp_color = '#FF0000';
    $ssp_value = '<b>' . $ssp_value . '</b>';
}

// Display page
echo "<html><body>/n";
echo "<table border=/"2/" cellpadding=/"2/" cellspacing=/"2/"><tbody>/n";
echo "  <tr>/n";
echo "    <td width=/"300/"><b>$cfgfile_heading</b></td>/n";
echo "    <td bgcolor=/"$cfgfile_color/">$cfgfile_value</td>/n";
echo "  </tr>/n";
echo "  <tr>/n";
echo "    <td><b>$utd_heading</b></td>/n";
echo "    <td bgcolor=/"$utd_color/">$utd_value</td>/n";
echo "  </tr>/n";
echo "  <tr>/n";
echo "    <td><b>$ssp_heading</b></td>/n";
echo "    <td bgcolor=/"$ssp_color/">$ssp_value</td>/n";
echo "  </tr>/n";
echo "  <tr>/n";
echo "    <td colspan=/"2/"><br><br></td>/n";
echo "  </tr>/n";
echo "  <tr>/n";
echo "    <td colspan=/"2/"><b>Contents of $cfgfile</b></td>/n";
echo "  </tr>/n";
echo "  <tr>/n";
echo "    <td colspan=/"2/"><pre>$phpini</pre></td>/n";
echo "  </tr>/n";
echo "</tbody></table>/n";
echo "</body></html>";

?>

2.在你的cgi-bin里加一个文件php5-custom-ini.cgi 内容为:

#!/bin/sh
export PHP_FCGI_CHILDREN=3
exec /hsphere/shared/php5/bin/php-cgi -c /hsphere/local/home/你的用户名/你的域名/cgi-bin/php.ini
3.在你域名的目录.htaccess里加上

AddHandler phpini-cgi .php .htm
Action phpini-cgi /cgi-bin/php5-custom-ini.cgi
到这里我要说一下,这里就要注意了这个php5-custom-ini.cgi文件需要755权限的自己用FTP工具修改它权限

4.把刚才读到的php.ini改吧改吧传到cgi-bin里就好了
这样就好了,现在运行一下下面的,就应该可以看到效果了

<?php
   phpinfo();
?>