LAMP(Linux, Apache, MySQL, PHP)是当今最流行的网站平台,不仅是因为它们是完全免费的,还因为它们自身的优点:稳定可靠,性能优越。更加因为那么多开源系统的涌现,常用的BBS和CMS系统,基本上都是基于LAMP的。
半年前在旧电脑上装了AMP,后来又在笔记本上装了一次,但是都没有记录下来安装过程。这次换了电脑,所以需要重装AMP,特记录如下。
1. 安装PHP
直接到PHP官方网站的下载页面:
上面列了几个下载项,下载Windows Binaries里面的PHP 5.2.5 zip packages就行了(目前最新的版本是5.2.5)
安装很简单,直接解压到一个文件夹就行了。最好解压到一个“好一点”的文件夹,就是文件夹路径中不含空格,中文,或者其他非ASCII码的字符。这里我使用E:\php5
2. 初步配置php
php的配置文件是php.ini,解压之后,将安装目录里面的php.ini-dist拷贝一份并重命名为php.ini。
3. 安装Apache
下载地址:
这个是Apache在国内的镜像,上面有用于windows的安装程序。最新的版本是2.2.6, 因为可能会用到SSL,所以选择带SSL的版本。
安装Apache跟安装普通的软件没有什么两样,在安装程序中有个对话框要求填写"Server Information",随便填写一个域名都可以。
安装完成后,在系统托盘会生成一个图标,可以方便地控制Apache server start and stop.
注意: 如果你的系统上有IIS服务器正在运行,由于IIS已经占用了80端口,这样Apache就无法再bind到80端口,会提示错误。你可以停止IIS,或者让Apache使用别的端口。
4. 配置Apache
Apache的主要配置文件是httpd.conf,在Apache的安装目录中的conf子目录可以找到这个文件。
4.1 配置DocumentRoot
DocumentRoot就是你的“网站”的文件的根目录,默认的根目录是在Apache的安装目录里面的htdocs目录。你可以改成其他的目录。
在httpd.conf中找到这一行(注意:你的安装路径可能跟下面所示的不一样):
DocumentRoot "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
我喜欢E:\htdocs, 所以将其修改为:(注意这里用的斜杠跟windows是相反的)
还有一行是设置DocumentRoot的权限,也是进行类似更改。
找到:
也修改成:
还有设置脚本目录的配置,最好也改成需要的目录(有两个地方)。
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/ "E:/htdocs/cgi-bin/"
#
# "E:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
AllowOverride None
Options None
Order allow,deny
Allow from all
这一步完成之后,重新启动Apache,应该已经可以访问“网站”了,在上面设置的DocumentRoot目录中放一个网页文件,如index.html, 在浏览器中输入:
应该能够出现页面。
4.2 加载PHP模块
PHP作为一种脚本语言,一般都是作为Apache的一个模块加入到Apache中。当浏览器请求一个PHP页面时,Apache就调用php模块对php源程序进行处理,并将处理的结果返回给浏览器。
下面时加载PHP模块的设置,把它们拷贝到httpd.conf中就可以。(注意:这里的设置仅针对PHP 5和Apache 2.2.x,其他版本可能不同,且注意路径需根据实际进行修改)
# For PHP
LoadModule php5_module "E:/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
# The directory for php.ini
PHPIniDir "E:/php5"
这一步完成之后,重启Apache,应该就可以使用PHP页面了。编写一个简单的php文件放在DocumentRoot里面,命名为phpinfo.php,在此文件中使用phpinfo()函数,显示php的配置信息:
然后在浏览器中输入:
应该会显示php的配置信息页面。
5. 深入配置PHP
PHP的配置是通过编辑前面所说的php.ini来实现的。
5.1 配置doc_root
把doc_root设置成httpd.conf中的DocumentRoot
5.2 设置PHP的模块所在的目录
PHP有一个基本的系统,其他的功能是通过模块扩展(extension)来实现的。因为PHP需要知道这些扩展模块的DLL文件所在的目录,所以需要设置。实际就是设置成PHP的安装目录的中的ext子目录。
; Directory in which the loadable extensions (modules) reside.
extension_dir = "E:\php5\ext"
5.3 设置需要安装的模块
找到php.ini中如下所示的行,去掉每行前面的";"注释符号,就安装相应的模块。
;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
5.4 拷贝libmysql.dll
将PHP安装目录中的libmysql.dll拷贝到系统的DLL文件夹中,一般是C:\WINDOWS\system32。这是php的一个BUG,如果不拷贝,PHP将无法加载mysql相关的扩展模块。
5.5 将PHP的安装目录加到PATH环境变量里面
这样就可以在DOS命令行运行php程序,有时便于调试。
以上的配置完成之后,重新启动Apache,再查看,应该可以看到相关模块的信息。
6. 安装MySQL
MySQL已经越来越商业化了,所以在其官网上下载也比较麻烦,还要注册,填写email地址等。最新的MySQL已经到了6.0版本,但是估计还很少人用,所以还是下载5.x的最新版。Google “mysql 5.1.22 下载”,可以搜到国内的下载地址。
因为有对应的安装程序,所以MySQL的安装也很简单。安装过程中需要设置MySQL的root密码,而且最好选中将MySQL的bin目录加到PATH环境变量里面,这样就可以在DOS命令行中运行mysql的客户端访问MySQL的数据库了。
安装好了之后,可以用mysql客户端测试一下。打开DOS窗口:
C:\Documents and Settings\user>mysql -u root -h localhost -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.22-rc-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
mysql>
7. 安装PHPMyAdmin
PHPMyAdmin是基于Web的MySQL管理系统,对不熟悉MySQL的人来说是一个不错的工具。到PHPMyAdmin的官方网站上下载最新的版本:
因为phpMyAdmin是基于WEB的,所以必须解压到Apache设置的DocumentRoot目录中。
解压之后,找到config.sample.inc.php这个文件,拷贝一份并命名为config.inc.php,然后进行编辑:
找到这一行:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
将其改为:
$cfg['Servers'][$i]['auth_type'] = 'http';
这样每次使用phpMyAdmin登录数据库时,就会弹出输入用户名和密码的对话框,用户名就使用root(当然如果配置了其他用户也可以使用),密码就使用安装MySQL时设置的密码。
当然也可以将密码直接写在配置文件里面,这样就不会每次都输入密码。设置如下:
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'your_password';