图片 23

解决RHAS3中Apache2的PHP上传文件大小的限制

近日将论坛从VBB2升级到VBB3,将上传附件大小设置为2M,可每次上传超过500K的附件都会出错,而之前使用VBB2时却正常。
仔细检查php.ini,其中的upload_max_filesize=8m,没有任何问题,然后将其中的:

该博文参考的资料来源于:

max_execution_time = 30 max_input_time = 60memory_limit = 8M

数值分别调大到120、180、32M,还是没有任何作用,令人非常头痛!
然后开始怀疑是配置文件出现的问题,但从头到尾检查了一遍也没发现任何异相,此问题智能搁置。
有一天需要给服务器加入一个子域名,去更改/etc/文件夹下的access.conf文件,发现此文件夹下还有一个php.conf,赶忙打开,里面是如下内容:

 

## PHP is an HTML-embedded scripting language which attempts to make it# easy for developers to write dynamically generated webpages.#LoadModule php4_module modules/libphp4.soAddType application/x- php .php3## Cause the PHP interpreter handle files with a .php extension.#Files *.php SetOutputFilter PHP SetInputFilter PHP LimitRequestBody 524288/Files## Add index.php to the list of files that will be served as directory# indexes.#DirectoryIndex index.php

LimitRequestBody
524288中的524288正好跟512KB相等,将其更改为2097152,不能上传超过2M附件的问题解决!
再回忆一下,发现以前用VBB2时的操作系统为RHAS 2.1,用的自带的Apache
1.x版本,后来升级成VBB
3之前,顺便也把系统更换为RHAS3,而RHAS3自带的Apache为2.x版本,其配置文件的组织方式有所改变,也许自己编译安装的Apache就不会出现此种问题,可自己比较懒,不喜欢编译,呵呵.

昨天花了差不多一天的时间,跳过无数“坑”之后,把WAMP环境给搭建上了。为何说坑,是因为不理解不知道,原来最新版的Apache和最新版的php5.5存在不兼容的问题。还有Thread
safe 和no thread
safe版本之间的区别,PHP版本中的VC6、VC9、VC11之间的区别,现在记录一下我搭建的过程。包括各种谷歌后学习到的内容。

一、准备工作,下载软件

注:以下是我使用的版本。

apache:httpd-2.2.22-win32-x86-openssl-0.9.8t.

下载地址:

MySQL:mysql-installer-community-5.6.19.0.msi

下载地址:

PHP:php-5.3.1-Win32-VC6-x86

下载地址:

 

二、开始安装软件

(一)安装apache

 双击安装,与安装其他Windows软件没有什么区别,在填Server
Infomation时,并没有特殊规定,只要输入的信息符合格式即可。

图片 1

(注:这里选择安装类型,我一般选择Custom,这里可以自己设置安装路径,看自己喜欢)

图片 2

 

图片 3

图片 4

安装完成之后,在浏览器输入
Works!,表示Apache安装成功。

 

(二)安装PHP

安装PHP:将php-5.3.1-Win32-VC9-x86.zip解压到一个目录即可。 

(三)安装MySQL

插一句,昨天是因为下载错MySQL,所以搞得很头疼,建议到官网下载,我上面发的那个链接,下载的那个版本是ok的。

双击安装,如果需要更改安装目录,则在Choose Setup
Type选择Custom(我比较喜欢自定义安装,建议选择自定义Custom

 

 
 
MySQL下载完成后,找到下载到本地的文件,按照下面所示的步骤双击进行安装: 
步骤1:双击MySQL安装程序(mysql-installer-community-5.6.10.1)会弹出如下图1.4所示:  
 

图片 5

步骤2:单击图1.4中的“Install MySQL Products” 文字,会弹出的用户许可证协议窗口, 
如下图1.5所示:

图片 6

步骤3:选中“I accept the license terms”
的前面的选择框,然后点击【Next】按钮,会进入查        
找最新版本界面,效果如下图1.6所示:

图片 7

 步骤4:单击【Execute】按钮,会进入安装类型设置界面,效果如下图1.7所示。

图片 8

图片 9

步骤5:选择图1.7中的“Custom”选项,可修改安装路径或保持默认值,然后单击【Next】按钮, 
   弹出功能选择界面,如下图1.8所示。 

图片 10

步骤6:单击【Next】按钮,弹出安装条件检查界面,如下图1.9所示。

图片 11

步骤7:单击【Next】按钮,进行安装界面,如下图1.10所示。

图片 12

步骤8:单击【Execute】按钮,开始安装程序。当安装完成之后安装向导过程中所做的设置将在安装完成
       之后生效,如下图1.11所示的窗口 

图片 13

步骤9:单击【Next】按钮,会进入服务器配置页面,效果如下图1.12所示。

图片 14

步骤10:单击【Next】按钮,效果如下图1.13所示。

图片 15

图1.13中的“Server Configuration Type”下面的“Config Type”下拉列表项用来配置当着服务器的类
型。选择哪种服务器将影响到MySQL Configuration Wizard(配置向导)对内存、硬盘和过程或使用的决策,可以选择如下所示的3种服务器类型:

  Developer Machine(开发机器):该选项代表典型个人用桌面工作站。假定机器上运行着多个桌面应用程序。将MySQL服务器配置成使用最少的系统资源。 
  Server Machine(服务器):该选项代表服务器,MySQL服务器可以同其它应用程序一起运行,例如FTP、email和web服务器。MySQL服务器配置成使用适当比例的系统资源。 
 Dedicated MySQL Server Machine(专用MySQL服务器):该选项代表只运行MySQL服务的服务器。
假定运行没有运行其它应用程序。MySQL服务器配置成使用所有可用系统资源。 
作为初学者,选择“Developer Machine”(开发者机器)已经足够了,这样占用系统的资源不会很多。

在Enable TCP/IP Networking左边的复选框中可以启用或禁用TCP/IP网络,并配置用来连接MySQL服务器的端口号,默认情况启用TCP/IP网络,默认端口为3306。要想更改访问MySQL使用的端口,直接在文本输入框中输入新的端口号即可,但要保证新的端口号没有被占用。

 

步骤11:单击【Next】按钮,在图1.13所对应的界面中,我们需要设置root用户的密码,在“MySQL Root 
password”(输入新密码)和“Repeat Password”(确认)两个编辑框内输入期望的密码。也可以单击下面的【Add User】按钮另行添加新的用户。(注:Current Root Password:为空;如果输入密码了在后面安装会报错)

图片 16

  

 
步骤12:单击【Next】按钮,设置Windows Service Name<可默认>,此名为启动数据库服务名,要记住。 
效果如下图1.14所示。

图片 17

 

步骤13:单击【Next】按钮,打开配置信息显示页面,如下图1.15所示。

图片 18

图片 19

 

步骤14:单击【Next】按钮,即可完成MySQL数据库的整个安装配置过程。接下来就可以登录上我们的MySQL数据库进行操作了。

Example:启动MySQL

图片 20

可以直接使用命令行:

图片 21

三、整合Apache+MySQL+PHP

(一)配置Apache

 

首先使用文本编辑工具(推荐 EditPlus )打开 E:Program FilesApache
Software FoundationApache2.2confhttpd.conf
文件,这个文件是Apache的配置文件,下面几步都是在修改这个文件的内容。
要注意的是修改完 httpd.conf 文件需重新启动Apache服务,新设置才会生效。

 

1、让Apache加载PHP模块

找到 #LoadModule vhost_alias_module modules/mod_vhost_alias.so
(大概在第128行),在这行的后面添加以下内容:

 LoadModule php5_module "E:/StuSoftware/PHP/php/php5apache2_2.dll"   AddType application/x-httpd-php .php   PHPIniDir "D:/WAMP/PHP"

LoadModule php5_module “E:/StuSoftware/PHP/php/php5apache2_2.dll”
/*你下载的需要是VC6的版本,不然找不到这个php5apache2——2.dll文件,这是我遇到的其中一个坑,待会儿下面再说*
这句意思是以module方式载入PHP5模块。
AddType application/x-httpd-php .php
这句意思就是将.php扩展名的文件作为php脚本执行。你可以使用你喜欢的任何其他扩展名,如
.html、.php5 甚至是 .txt  来执行PHP。
PHPIniDir “D:/WAMP/PHP”
这句用来指定PHP的配置文件php.ini 所在的目录。
如果是Apache 2 以module模块方式运行php5的话,就可以使用 PHPIniDir 指令。

 

2. 修改网站存放目录

我们知道Apache默认的网站存放目录为Apache安装目录下的htdocs文件夹。当你更改网站存放目录,就必须修改相应的Apache配置。
在配置文件 httpd.conf 中查找
DocumentRoot(大概在182行),将其修改为指向网站目录的正确文件夹。我们这里改为

 DocumentRoot "F:/Workspace/PHP"

同时,查找 This should be changed to whatever you set DocumentRoot
to(大概在207行),在它下面有行 <Directoy 默认的DocumentRoot
>,将其修改为你自己配置的DocumentRoot 路径。我们这里修改为:

 <Directory "F:/Workspace/PHP">

我的网站存放目录是这般的:

图片 22

 

 

3. 修改目录首页文件

 在配置文件 httpd.conf 中查找 DirectoryIndex index.html
(大概在244行)(快捷键查找按ctrl+F)将其修改成:

 DirectoryIndex index.html index.htm index.php

DirectoryIndex
指的是当客户浏览器访问的路径是一个目录时,Apache默认执行的文件。
以我们所修改的为例:当客户浏览器访问一个目录时,Apache会去找该目录下的index.html,如果没有再找index.htm,还没有再找
index.php。都找不到则默认显示该目录下的文件列表。参考文档:如果防止Apache显示文件列表

(二)配置PHP

打开PHP安装目录,即E:StuSoftwarePHPphp,我们可以看到目录下有两个这样的文件
php.ini-development 和
php.ini-production,第一个是开发使用的配置文件,第二个是生产环境的配置,因为我们是在本机做开发,所以选择前者。将php.ini-development复制一份到同目录下,并改名为
php.ini。这个php.ini
就是当前使用的配置文件,以下几步都是在修改这个php.ini文件的内容。要注意的是,修改php.ini文件后需重新启动Apache服务,新设置才会生效。

1. 指定PHP扩展库的存放目录

在Windows下PHP的扩展库通常以 DLL 形式存放在PHP的ext目录中。
使用文本工具打开php.ini文件,查找extension_dir =
“ext”(大概在809行),也就是在 On windows
下面那一行。把它前面的分号“;”去除掉,改为如下:

        extension_dir = "E:/StuSoftware/PHP/php/ext"

extension_dir 表示PHP扩展库的具体目录,以便调用相应的DLL文件。

2. 开启相应的扩展库

默认情况下许多PHP的扩展库都是关闭的,比如默认PHP不支持连接Mysql数据库,需开启相应的扩展库。
这里我们开启一些常用的扩展库。
查找 ; Windows Extensions(大概在941行),在它的下面是extension列表。
找到如下扩展:

        ;extension=php_curl.dll          ;extension=php_gd2.dll          ;extension=php_mbstring.dll          ;extension=php_exif.dll          ;extension=php_mysql.dll          ;extension=php_mysqli.dll          ;extension=php_pdo_mysql.dll          ;extension=php_pdo_odbc.dll          ;extension=php_sockets.dll          ;extension=php_xmlrpc.dll          ;extension=php_xsl.dll  

把以上extension 前面的分号 “;”
去掉。如果你希望加载其它扩展模块,方法相同,只要去掉前面的分号即可。

 

提示1:重启Apache提示 “unable to load dynamic
library……php_curl.dll”,加载php_curl.dll错误。解决方法是拷贝 PHP
目录下的 libeay32.dll 和 ssleay32.dll 到 windows 目录或 windows/system32
目录下,只要是系统 Path
环境变量里包含的路径就可以。如果不想拷贝,你也可以直接把 PHP
路径放到系统 Path 环境变量里。
右击我的电脑=>属性=>高级=>环境变量=>系统变量里有个Path,双击打开,把你的PHP路径加个分号“;”再前面(
;D:WAMPPHP ),添加进去就OK了。重启Apache不再提示该错误。

提示2:Exif 扩展是用来显示图片的 exif 信息的,因为该扩展需要
mbstring.dll 支持,所以必须将 extension=php_exif.dll
这一行写到extension=php_mbstring.dll 的后面。

提示3:如果PHP自带的扩展库不能满足你的需要,你可以去 pecl.php.net 查找并下载你需要的库。windows用户可以去 pecl4win.php.net 或者  下载已经编译好的DLL文件,也可以去 载PECL集合压缩包。
提示4:很多人在找php_zip.dll,其实从php5.3开始已经集成了zip扩展,直接使用就行了。你可以用<?php
phpinfo()  ?> 找到zip扩展的说明。

目前针对不同用户,MySQL提供了2个不同的版本:  MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持。 
 
MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话及文档等技术支持。 
目前最新的MySQL版本为MySQL 5.6,可以在官方网站
件。下图1.2所示的MySQL官网上单击图片上的“Download”超链接 或 点击左边标记处,然后按照提示一步步操作就可以将MySQL软件下载到本地计算机中了。注意这里我们选择的是数据库版本是“Windows (x86, 32-bit), MSI Installer”,如下图1.3所示。

  1. 让PHP支持短标签

在 php.ini 配置文件查找 short_open_tag = Off
(大概在266行)把它修改成:short_open_tag = On 让其支持短标签。
php的代码一般包含在<?php …. ?>的标签内,设置 short_open_tag =
On 之后,可以写成更简洁的形式:<? …. ?>。

  1. 配置PHP的Session功能

在使用session功能时,我们必须配置session文件在服务器上的保存目录。我们需要为session建立一个可读写的目录,这个目录最好独立于网站目录之外。
这里把目录上建在了D:WAMPsessiontmp,然后在 php.ini 配置文件中找
;session.save_path = “/tmp” (大概在1467行),去掉前面的分号“;”
,改为如下:

        session.save_path = "D:/WAMP/sessiontmp"  
  1. 配置PHP的文件上传功能

同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败。
我们建立一个可读写的目录文件夹 D:WAMPfileuploadtmp,然后在 php.ini
配置文件中找到 ;upload_tmp_dir = (大概875行),修改为:

        upload_tmp_dir = "D:/WAMP/fileuploadtmp"  

PHP默认上传文件大小不超过2M,要想上传大于2M的文件,请参考文档  配置php.ini实现文件上传功能。

  1. 设置时区

在 php.ini 配置文件查找 ;date.timezone =
(大概在993行),去掉前面的分号“;” 改为如下:

 date.timezone = PRC  

date.timezone是PHP5.1开始新增加的配置参数,用来设置时区。默认date.timezone是被注释掉的,也就是默认时区是UTC格林威治标准时间。
我们这里改为 date.timezone = PRC(PRC,People’s Republic of
China,中华人民共和国),也就是日期使用中国的时区。这样可以解决时间相差八小时的问题。

 

(三)配置phpMyAdmin

直接在最开头给出的官网链接下载最新版的phpMyAdmin。

首先解压,然后将文件拷贝到网站根目录下,我的是F:WorkspacePHPphpMyAdmin

然后到浏览器访问

如图:

图片 23

【安装phpMyAdmin过程出现的一个问题】

 登录phpMyAdmin提示1045登录不上MySQL

解决方法:直接解压文件,放到php工作空间下,然后使用mysql的用户名和登录密码登录,无需更改任何的配置一文件

 

 

 

之前说的php的版本VC6/9/11的区别,以及Threadsafe和no Threadsafe的区别:

VC6版本是使用Visual Studio
6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。(现在PHP已经没有VC6了)。

VC9意思就是该版本PHP是用VisualStudio2008编译的,而VC11则是用VisualStudio2012编译的。这意味着

如果你下载的是VC9版本的,就需要先安VisualC++RedistributableforVisualStudio2008SP1,

如果你下载的是VC11版本的,就需要先安VisualC++RedistributableforVisualStudio2012.

搭建php首先看操作系统的版本,如果是Windows的在这里下:

操作系统是32位还是64位?如果是32位的,就选择带“x86”的版本,如果是64位的,就选择带“x64”的版本。然后看WEB服务器是什么?如果是IIS系列,就选择带“Non
Thread Safe”的版本,如果是Apache httpd系列,就选择带“Thread
Safe”的版本
。如果是Apache
httpd还要看这个二进制版本是怎么编译的,有三种编译类型,分别是:VC6、VC9、VC11(分别代表Visual
C++ 6、Visual C++ 2008、Visual C++
2012)。这里就有麻烦了:PHP官方的最新版本5.5已经用VC11编译,5.4是用VC9编译的。可是Apache
httpd的最新版本呢,至今还是用VC6编译。这意味着一个惊人的事实:Apache
httpd的官方版本和PHP的官方版本竟然是无法兼容的!

 到这里,全部安装都完毕,WAMP平稳运行。

 

 


发表评论

电子邮件地址不会被公开。 必填项已用*标注