php ini怎么修改,PHP的运行环境难配置吗?
PHP的运行环境不难配置!下面是个案例:
PHP开发环境配置(Windows版)
Apache+MySQL+PHP+phpMyAdmin
系统:Windows XP
Step1:下载以下文件
(1)php-5.2.0-Win32.zip
pecl-5.2.0-Win32.zip
(2)apache_2.2.3-win32-x86-no_ssl.msi
(3)mysql-5.1.12-beta-win32.zip
(4)phpMyAdmin-2.9.1.1-all-languages.zip
Step2:安装PHP, 配置php.ini
有两种方法在 Windows下安装PHP:手工安装或者使用安装程序安装。自动安装的安装程序php-5.2.0-win32-installer.msi不包含任何外部的PHP扩展(PHP_*.dll)。如果需要,可以在 Windows ZIP 包和 PECL 中找到。据PHP官方手册上称安装 PHP 最好的选择是手工安装。在手工安装中安装 PHP 最好的方式便是将所有 PHP 有关的文件都放入同一目录,并在系统的 PATH 环境变量中设置此目录。本例为手工安装.
1. 将下载的php-5.2.0-Win32.zip解压到C:\PHP\ 这个目录.
2. 再将C:\PHP\ 目录下的*.dll和 C:\PHP\ext目录下的所有文件文件复制粘贴到C:\windows\system32\下.
如果需要更多扩展,就将pecl-5.2.0-Win32.zip中的文件也放到C:\windows\system32\下.
3. 配置php.ini。
在ZIP 包中有两个ini文件,php.ini-dist和php.ini-recommended。建议使用 php.ini-recommended,因为在该文件中优化了性能和安全。复制所选择的 ini 文件到 PHP 能找到的目录中,并将其重命名为 php.ini 。
再用记事本打开 php.ini ,查找register_globals = Off,把off改成On.
再查找short_open_tag = Off,把off改成On有一处.
再查找extension_dir = "./" 改为 extension_dir = "C:\PHP\ext"
然后再查找;extension=php_mbstring.dll,把前面的分号去掉.
extension=php_mbstring.dll(不选这个phpMyAdmin会错)
以下几个dll作相同更改.
extension=php_dba.dll
extension=php_dbase.dll
extension=php_filepro.dll 可选
extension=php_gd2.dll 支持GD库的,一般要选
extension=php_imap.dll 可选
extension=php_ldap.dll
extension=php_mysql.dll 支持MySQL的
接下来修改了一些文件上传以及内存使用最大限制:
memory_limit = 20M ;内存容量
post_max_size = 20M ;闪存容量
upload_max_filesize = 20M ; 附件容量
asp_tags = On ;可选,On允许ASP风格的标记,Off禁止
4. 将 PHP 目录添加到 PATH 环境变量中
系统环境变量path=C:\php
5. 使 php.ini 文件在 Windows下被 PHP 所用
系统环境变量PHPRC=C:\php
Step3: 安装Apache,配置 httpd.conf 使之支持PHP
1.安装apache_2.2.3-win32-x86-no_ssl.msi,一路按Next即可.
安装完成后输入[url]http://localhost[/url] 查看Apache是否安装成功.
(如果安装了IIS请关闭,或者请改变安装端口,不然无法启动Apache服务)
2. 打开文件C:\Apache2\conf\httpd.conf,查找以下设置项.
即注册文件后缀.
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
AddType application/x-httpd-php .php .phtml .php3 .php4
AddType application/x-httpd-php-source .phps
</Directory>
绿色为我们新增的设置.
3.查找LoadModule模块
LoadModule php5_module "C:/ php/php5apache2_2.dll"
注意斜杠方向与Windows中路径”\”相反.
4.查找以下,并增加index.php
根据需要还可以增加其它自定义首页如index.htm
<IfModule dir_module>
DirectoryIndex index.html index.html.var index.php
</IfModule>
5. 查找 Documentroot "C:/Apache2/htdocs" 将其改为你的WEB路径; (这里是WEB主目录,可以不修改)
6.重启apache.
7. 在web根目录 C:\Apache2\htdocs\ 下新建index.php,内容如下:
<?php
phpinfo();
?>
在浏览器中输入URL: [url]http://localhost/index.php[/url] 测试结果.
如果不能正常运行,请检查配置.
Step4: 安装MySQL
MySQL安装过程
注意:安装中,一定要正确配置MySQL Server
安装完成后,新建conn.php
<?php
$link=mysql_connect('localhost','root','root');
if(!$link) echo "MySQL 数据库连接失败";
else echo "MySQL 数据库连接成功!";
mysql_close();
?>
运行该文件,测试数据库连接.
Step5:安装phpMyAdmin配置config.inc.php
phpMyAdmin并不是必需的,只是为了方便管理MySQL数据库,本身是用PHP编写而成.但是有了它,会大方便MySQL数据库管理.
1. 解压phpMyAdmin-2.9.1.1-all-languages.zip到C:\phpMyAdmin
2. 将C:\phpMyAdmin\config.sample.inc.php重命名为config.inc.php
3. 对照原文件进行如下更改,绿色为新增的.
$cfg['blowfish_secret'] = 'root';
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = 'root';
4. 将C:\phpMyAdmin\下所有文件和目录复制到
C:\Apache\htdocs\phpMyAdmin,
在浏览器中输入[url]http://localhost/phpMyAdmin/index.php[/url]进行测试
phpini?
问题有些模糊;不知是要问服务器还是操作命令,还是具体的配置参数如何设置;
服务器命令:
vim /usr/local/php/etc/php.ini
如果是CentOS 系统 非root用户 可能提示没有权限,还需要加 sudo
然后 输入 i 进入编辑模式;
修改完成后输入 :wq 保存并推出;此时还要重启PHP才可生效;
还要注意的是 PHP使用的配置文件具体是不是这个路径;可以通过phpinfo();查看配置文件路径。
php语言网站如何加强安全性?
PHP是一种非常流行之网站脚本语言,但是它本身所固有之安全性是非常薄弱。本文讲述了PHP增强计划(Hardened-PHP project)和新之Suhosi计划,Suhosin提供了增强之PHP之安全配置。
PHP是带有争论地但又是最流行之一种网站脚本语言。它之所以流行,是因为它低廉之价格,然而,这低廉之价格导致用PHP写之网站应用程序越来越多 之同时也越来越多之展现出PHP本身在安全上之脆弱,这种安全特性显示出PHP是极不可靠,不过同时对这个脚本语言本身而言它又是非常灵活之,使用它就能 很容易之实现代码,不过这些代码都是臃肿之且不安全之,虽然是这样它还是一直都拥有很多之使用者。你可以根据实际情况来假设,一次又一次,各种应用软件都 体现了这种脆弱性:容易受到SQL注入、跨站脚本、任意执行指令等等之攻击。
因为象safe_mode和open_basedir这样内置之PHP安全措施将被忽略,PHP增强计划创建之PHP更具有安全性,同时也对PHP 进行校验检查。最初,这些是由增强之PHP补丁完成之,这些补丁需要修补并重新编译PHP自身。最近,PHP增强计划发布了一个名为Suhosin之新工 程。
Sohosin包括有两部分:第一部分是PHP之补丁,这个补丁强化了Zend引擎自身,以免可能产生缓冲溢出,也可以防止相关之弱点。第二部分是 Suhosin之扩展,这是一个PHP之独立使用模块。这两部分可以一起工作,或者是扩展部分单独工作。
开发人员不希望为了达到安全性而总去维护他们自己之PHP安装设置和他们当然更喜欢直接使用销售商提供之Linux分布系统上PHP,使用扩展模块 能提供更多PHP本身所不能具有之安全特点。
扩展模块很容易安装;它也能通过PECL安装,或者是下载后通过编译安装:
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
为了使用suhosin,还需要增加/etc/php.ini,如下所示:
extension=suhosin.so
对于大部分人来说默认之配置选项已经足够了。为了加强设置,可以在/etc/php.ini中增加相应之值。网站中详细地介绍了有关之各种配置选 项,这些说明可以帮助你进行初始化配置。
使用Suhosin,你可以得到一些错误日志,你能把这些日志放到系统日志中,也可以同时写到其他任意之日志文件中去;它还可以为每一个虚拟主机创 建黑名单和白名单;可以过滤GET和POST请求、文件上载和cookie。你还能传送加密之会话和cookie,可以设置不能传送之存储上线等等。它不 像原始之PHP强化补丁,Suhosin是可以被像Zend Optimizer这样之第三方扩展软件所兼容之。
下面是我写的一个操作方法:
wget -c http://soft.vpser.net/web/suhosin/suhosin-patch-5.2.10-0.9.7.patch.gz
gzip -d ./suhosin-patch-5.2.10-0.9.7.patch.gz
cd php-5.2.10
patch -p 1 -i ../suhosin-patch-5.2.10-0.9.7.patch
编译的时候
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin
把suhosin编译进去就好了
php设置页面超时时间解决方法?
php完成某些操作的时候,可能需要较长的执行时间。这就需要设置他的执行时间,否则服务器会在执行时间超时后,停止执行,页面出现空白的情况。下面推荐两种解决方案:
php文件页面设置:
<?php//修改最大执行时间ini_set('max_execution_time', '0');//修改此次最大运行内存ini_set('memory_limit','128M');/*** * * 代码块省略...... * * */?>
php.ini配置文件设置(具体值,根据需要设置):
max_execution_time = 60
memory_limit = 128M
注意:如果执行内存完全满足的话,就不需要设置了。具体设置,根据情况灵活设置。
PHP后台怎么接收post请求的参数?
1、$_POST['paramName'] 只有在Content-Type为application/x-www-form-urlencoded或者为multipart/form-data的 时候,PHP才会将http请求数据包中的body相应部分数据填入$_POST全局变量中,其它情况PHP都忽略。填入到$_POST数组中的数据是进行urldecode()解析的结果。
2、file_get_contents("php://input") 适用大多数类型的Content-type
php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。
3、$GLOBALS['HTTP_RAW_POST_DATA']; 总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。
如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。需要设置php.ini中的always_populate_raw_post_data值为On,PHP才会总把POST数据填入变 量$http_raw_post_data。
看官方文档,在高版本里,这个变量$HTTP_RAW_POST_DATA被弃用了
This feature wasDEPRECATEDin PHP 5.6.0, andREMOVEDas of PHP 7.0.0. In general,php://inputshould be used instead of$HTTP_RAW_POST_DATA.