用php到现在一年多了,一直都是使用的PHPnow这款整合包,固然很方便,但对apache、php、mysql的配置一直都没个很明确的概念,前段时间公司分配给我的一台电脑,决定全手动配置,配置完成后试用至今,嗯,至少我用的还算顺手……闲话不提,配置详情如下。
一、软件版本
apache2.2.16、php5.3.3、mysql5.1.50、phpMyAdmin3.3.6
apache版本为2.2.16,不过现在最新的已经是2.2.17了,就不提供下载地址了。
php版本为5.3.3,在下载时注意下载VC6 x86 Thread Safe版,建议下载zip包。
说明(关于VC6与VC9):VC6是指在vs6下编译的,适用于非IIS的web server,例如apache,vc9指在vs2008下编译,适用于IIS。Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。
说明(thread safe与no thread safe): PHP 的两种执行方式分别SAPI 和 FastCGI。ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。
mysql版本为5.1.50。
phpMyAdmin版本为3.3.6。
以上四款软件,建议去对应的官网下载。准备开工……
二、目录构造
我个人的目录安排如下,仅作参考,可自行安排。
E:/www为根目录
E:/www/apache为apache所在目录
E:/www/php为php所在目录
E:/www/mysql为mysql所在目录
E:/www/svn为svn所在目录
E:/www/htdocs为个人测试程序所在目录
E:/www/webroot为项目所在目录
其中htdocs为平时做小程序时临时存储位置,webroot为项目所在,配置apache的httpd-vhosts.conf来实现,具体后面会提到。开始安装……
三、Apache+PHP安装配置
apache安装:
一路点next,选择custom,将apache所在目录修改为E:/www/apache即可,点击install,等待片刻finished后,浏览器中输入localhost,即可发现It works!的提示,说明安装成功,暂且无视之……
PHP安装:
将php的zip包解压释放到E:/www/php内,释放完成后则开始配置使得Apache和php能正常运行……
apache+php配置:
打开E:/www/apache/conf/httpd.conf,在大串的LoadModule下增加如下两行代码:
LoadModule php5_module E:/www/php/php5apache2_2.dll
PHPIniDir “E:/www/php”
分别为载入php5模块,并指定php.ini所在目录。
找到DocumentRoot “E:/www/apache/htdocs”这行代码,修改为”E:/www/htdocs”,指定网站根目录,可根据目录的安排自行指定目录位置。
找到<Directory “E:/www/apache/htdocs”>这行代码,将之后的代码修改为:
<Directory “E:/www/htdocs”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
该代码用于指定相关目录的权限,第一行Indexes作用为,当此目录中没有默认显示的文件时,显示目录列表,Order allow,deny为先检查允许设定,再检查禁止设定,用于禁止某些IP或指定某些IP的访问。上句为允许所有的访问。
找到DirectoryIndex index,html代码,修改为:
DirectoryIndex index.php default.php index,html index.htm default.html default.htm
代码作用为指定默认显示的文件及顺序,从前至后……
找到AddType代码,在之后加入:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
保存关闭,OK,apache配置完成,还需要配置php。
打开E:/www/php,目录中有php.ini-development,php.ini-production两个文件,前者是开发使用的配置文件,而后者是生产环境下的配置文件,讲前者改名为php.ini,打开,对其进行配置。
找到short_open_tag = Off,其作用为关闭类似“<?=>”这中短标识,有需要的可以把Off改为On开启。
找到; extension_dir = “ext”这行代码,改为extension_dir = “E:/www/php/ext”。
分别找到;extension=php_curl.dll、;extension=php_mbstring.dll、;extension=php_sockets.dll删除之前的“;”号开启,(mysql将在安装配置mysql时另外说明),如需要其他功能可自行开启。
找到;date.timezone =这行代码,改为date.timezone = PRC,目的为设置默认时区。保存关闭。
打开E:/www/htdocs/目录,在其中建立index.php文件,输入一下代码保存。
<?php
phpinfo();
?>
在浏览器中输入http://localhost/,如出现PHP Version 5.3.3的相关信息,则说明配置已经完成了……
打开“我的电脑”属性,在环境变量中加入E:/www/php;E:/www/php/ext;这样可以在命令行中直接使用php index.php类似的命令来执行PHP文件。
四、MySQL安装配置
安装mysql,选择custom,将mysql的目录选择至E:/www/mysql,install进行安装,完成后一路next,选择configure mysql server now,单击finished进行配置。
选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,选择detailed configuration进行逐一配置。
选择服务器类型,“Developer Machine(开发测试类,mysql 占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,用于本机开发测试,固选择developer machine。
选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“TransactionalDatabase Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional)。我这里选择multifunctional database。
选择inno db的数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,我选择默认的……
选择你网站的一般mysql 访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,我这里为本机测试,依然选择第一个,继续……
是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql 数据库了,我这里启用,把前面的勾打上,Port Number:3306,在这个页面上,您还可以选择“启用标准模式”(Enable StrictMode),这样MySQL就不会允许细小的语法错误。勾选,继续next……
然后是mysql默认数据库语言编码进行设置,选择utf8,下一步……
选择是否将mysql 安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -u username -p password;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变。按“Next”继续……
然后是设定root用户密码,Enable root access from remotemachines(是否允许root 用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它),我这边打勾,继续,单击安装……等待片刻即可完成安装,下面是配置了……
打开cmd命令行,输入mysql -h localhost -u root -p,看是否能正确连接mysql,如果可以则说明安装成功了。(一般不会出问题……)
打开E:/www/php/php.ini文件。找到;extension=php_mysql.dll和;extension=php_mysqli.dll两行代码,去掉前面的分号,保存关闭,重启apache,再打开http://localhost/,搜索mysql字段。
如图所示,则说明一切正常……
注意:有些win7用户会出现cmd下连接mysql正常,但使用mysql_connect(“localhost”, “root”, “123456″)则超时,一般是因为你的C:/windows/system32/drivers/etc/hosts文件中没有127.0.0.1 localhost的对应关系,增加即可……
六、phpMyAdmin安装配置
在E:/www/htdocs目录下新建文件夹phpmyadmin,将phpMyAdmin压缩包中的文件释放到此目录中,找到config.sample.inc.php文件,重命名为config.inc.php。打开此文件。
找到$cfg['blowfish_secret'] = ”;代码,在引号中随便填入任意字符,不填也没关系,只是有个错误提示很犯人……
找到$cfg['Servers'][$i]['AllowNoPassword'] = false;将false修改为true,允许空密码登录……我一般习惯本机mysql使用空密码,看需要自行修改。
保存关闭,输入http://localhost/phpmyadmin,一切正常……
至此,apache+php+mysql+phpmyadmin便配置完成了,一下是一些我的配置习惯,有兴趣的可以继续观看,没兴趣的可以关掉这篇blog了……希望它对您有些或多或少的帮助。
七、开启vhosts功能
打开E:/www/apache/conf/httpd.conf,找到#LoadModule vhost_alias_module modules/mod_vhost_alias.so这行代码,将#号删除,找到#Include conf/extra/httpd-vhosts.conf删除之前的#号,另外其他一些功能,rewrite等等,可自行增添。保存关闭。
打开E:/www/apache/conf/extra/httpd-vhosts.conf文件将其中内容全部删除,输入以下代码:
NameVirtualHost *
<VirtualHost *:80>
ServerName localhost
DocumentRoot E:/www/htdocs
<Directory “E:/www/htdocs”>
Options All FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.php default.php index.html default.html
index.htm default.htm
AllowOverride All
Order Deny,Allow
Allow from all
RewriteEngine on
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
DocumentRoot E:/www/webroot/test
<Directory “E:/www/webroot/test”>
Options All FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.php default.php index.html default.html
index.htm default.htm
AllowOverride All
Order Deny,Allow
Allow from all
RewriteEngine on
</Directory>
</VirtualHost>
保存并关闭。打开C:/windows/system32/drivers/etc/hosts文件,在其中加入127.0.0.1 test.com的对应关系,保存并关闭。
进入E:/www/webroot/目录,新建文件夹test,在test中建立文件index.php,输入以下代码:
<?php
echo “test”;
?>
保存并关闭,在浏览器中输入http://test.com即可发现浏览器效果如图:
在项目很多时可用这种方法进行保存、开发……
利用这种依赖关系,我封装了一个类来实现自动完成上更改的效果:
如有需要可以留言。
总结
其实这些并不复杂,使用php认真点的朋友就都可以完成,希望我的这篇日志对你有帮助……
昨天刚配置的svn+apache,有时间再把配置过程发上来。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。