Windows下PHP 5.6+Apache 2.4+MySQL 5.5安装与配置

时间:2022-03-20 19:12:30

环境

Windows版本:Windows 7旗舰版,32位 PHP版本:php-5.6.8,线程安全(NT),VC11(VS2012)编译,32位版本 Apache版本:httpd-2.4.12,VC11(VS2012)编译,32位版本 MySQL版本:mysql-5.5.20,32位版本

版本选择

php安装配置的注意事项基本都在 http://windows.php.net/download/ 页面的左侧。

IIS or Apache

If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP. 如果你是在IIS服务器中使用PHP作为FastCGI,请使用非线程安全(NTS)版本的PHP。
Please use the Apache builds provided by Apache Lounge. They also provide VC11 builds of Apache for x86 and x64. We use their binaries to build the Apache SAPIs.
请使用Apache Lounge(http://www.apachelounge.com/download/)提供的Apache。他们提供了VC11(VS2012)编译的Apache。

If you are using PHP with Apache 1 or Apache2 from apache.org (not recommended) you need to use the older VC6 versions of PHP compiled with the legacy Visual Studio 6 compiler. Do NOT use VC9+ versions of PHP with the apache.org binaries.
如果你是使用的是来自apache.org(http://apache.org/)构建的Apache【这是不推荐的做法!!!】,你必须使用VC6(Visual Studio 6)编译的PHP版本!你不能使用VC9(VS2008)以及更高版本Visual Studio编译的PHP版本,以配合Apache.org的Apache服务器!

With Apache you have to use the Thread Safe (TS) versions of PHP.
使用Apache来装载PHP脚本,你必须使用线程安全(TS)的PHP版本!

VC9和VC11

More recent versions of PHP are built with VC9 or VC11 (Visual Studio 2008 and 2012 compiler respectively) and include improvements in performance and stability.
最近最新的PHP版本都是使用VC9(VS2008)和VC11(VS2012)编译的,使用这些VS编译可以提高性能和稳定性。

The VC9 builds require you to have the Visual C++ Redistributable for Visual Studio 2008 SP1 x86 or x64 installed.
使用VC9编译的PHP版本,需要根据Windows版本安装对应的Visual C++ Redistributable for Visual Studio 2008 SP1运行时,对于x86,下载http://www.microsoft.com/en-us/download/details.aspx?id=5582安装;对于x64,下载http://www.microsoft.com/en-us/download/details.aspx?id=15336安装

The VC11 builds require to have the Visual C++ Redistributable for Visual Studio 2012 x86 or x64 installed.
使用VC11编译的PHP版本,需要根据Windows版本安装对应的Visual C++ Redistributable for Visual Studio 2012运行时,可以在http://www.microsoft.com/en-us/download/details.aspx?id=30679下载对于的x86、x64和arm版本安装。

TS和NTS

TS refers to multithread capable builds. NTS refers to single thread only builds. Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a module into a web server. For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).

版本下载

PHP:php 5.6.8 VC11 x86 Thread Safe (2015-Apr-16 01:46:18)  地址:http://windows.php.net/downloads/releases/php-5.6.8-Win32-VC11-x86.zip
Apache:Apache 2.4.12 Win32  地址:http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.12-win32-VC11.zip
MySQL:MySQL Community Server,是完全开源免费的。地址:http://downloads.mysql.com/archives/get/file/mysql-5.5.20-win32.zip

Apache安装与配置

Apache安装

将httpd-2.4.12-win32-VC11.zip解压到F:\Program Files\Apache Software Foundation\Apache24下
将F:\Program Files\Apache Software Foundation\Apache24\bin添加到系统环境变量PATH中
打开cmd命令行,运行httpd -k install将Apache注册为服务,注册成功后,修改Apache2.4服务项,将启动类型设置为手动,以后,我们从命令行启动。相关命令如下
  • httpd -k start    # 启动Apache
  • httpd -k stop   # 停止Apache
  • httpd -k restart 或 httpd -k shutdown   # 重启Apache
  • httpd -k install    # 注册Apache为Windows服务
  • httpd -k uninstall    # 写作Apache服务项
        其他命令,使用httpd /?查询


Apache配置

简单的配置都在Apache安装根目录下的conf/httpd.conf完成

设置服务器根目录

ServerRoot "c:/Apache24"
改为
ServerRoot "F:/Program Files/Apache Software Foundation/Apache24"

设置Apache默认主页

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改为
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
可以设置多个默认首页,优先级从前往后

设置ServerName

#ServerName www.example.com:80
改为
ServerName localhost:8888


设置监听端口

Listen 80
改为
Listen 8888
Apache可以监听多个打开,可以编写多条上述语句,如
Listen 8888Listen 8889Listen 8890

设置主目录
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
改为
DocumentRoot "F:/Program Files/Apache Software Foundation/Apache24/htdocs"
<Directory "F:/Program Files/Apache Software Foundation/Apache24/htdocs">

Apache测试

命令行启动Apache:httpd -k start
浏览器输入:http://localhost:8888/如果出现“It works”字样,表示安装和配置成功!

PHP安装和配置

PHP安装

解压php-5.6.8-Win32-VC11-x86.zip到F:\Program Files\php\php-5.6.8下,
拷贝该目录下的php.ini-development,重命名为php.ini,作为PHP的主要配置文件

配置扩展目录

; extension_dir = "ext"
改为
extension_dir = "F:/Program Files/php/php-5.6.8/ext"

配置文件上传目录

;upload_tmp_dir =
改为
upload_tmp_dir = "F:/Program Files/Apache Software Foundation/Apache24/htdocs/upload"
需要先建立新文件夹upload

配置最大上传文件大小

upload_max_filesize = 2M
改为
upload_max_filesize = 100M

配置时区

;date.timezone =
改为
date.timezone = PRC

配置session保存路径

;session.save_path = "/tmp"
改为
session.save_path = "F:/Program Files/Apache Software Foundation/Apache24/htdocs/session"

添加curl、gd2、mbstring、mysql、mysqli和pdo_mysql扩展

在php.ini中,在一堆;extension=xxx.dll中将对于的语句前的;去掉改为
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
上面的mbstring扩展打开,是为了配置phpMyAdmin需要。

Apache与PHP整合

设置PHPIniDir

在httpd.conf中Listen 8888后添加
PHPIniDir "F:/Program Files/php/php-5.6.8"

加载php5_module

在httpd.conf中一堆LoadModule xxx xxx后添加
LoadModule php5_module "F:/Program Files/php/php-5.6.8/php5apache2_4.dll"

设置x-httpd-php

在httpd.conf中AddType application/x-gzip .gz .tgz后添加
AddType application/x-httpd-php .php

加载curl模块

前面在php.ini中已经设置了extension=php_curl.dll,此外还需要在httpd.conf中加载在httpd.conf中,在LoadModule php5_module xxx后添加
LoadFile "F:/Program Files/php/php-5.6.8/libeay32.dll"
LoadFile "F:/Program Files/php/php-5.6.8/ssleay32.dll"
LoadFile "F:/Program Files/php/php-5.6.8/libssh2.dll"

MySQL安装配置

免安装版的MySQL安装配置参照MySQL官方文档,地址:http://dev.mysql.com/doc/refman/5.5/en/windows-install-archive.html,选择里面的”2.3.7 Installing MySQL on Microsoft Windows Using a noinstall Zip Archive“小节,仔细查看说明。

安装MySQL

把mysql-5.5.20-win32.zip解压到F:\Program Files\Oracle\mysql-5.5.20并把F:\Program Files\Oracle\mysql-5.5.20\bin加入path

配置MySQL

在F:\Program Files\Oracle\mysql-5.5.20新建my.ini文件,写入以下内容
[mysqld]
# 设置MySQL安装目录
basedir=F:/Program Files/Oracle/mysql-5.5.20
# 设置MySQL数据存放目录,路径最后的文件夹必须是data
datadir=G:/oracle/mysql/mysql-5.5.20/data
# 设置MySQL服务器字符集
character_set_server=utf8
# 设置允许的最大连接数
max_connections=200
# 设置端口
port=3306

[client]
# 设置MySQL客户端的字符集
default-character-set=utf8
# 设置端口
port=3306

迁移数据

将F:\Program Files\Oracle\mysql-5.5.20\data下的所有文件剪切到G:\oracle\mysql\mysql-5.5.20\data。如果不迁移data,后面可能无法启动MySQL!

安装和删除服务

管理员身份打开cmd,输入mysqld --install完成服务注册。打开服务,将MySQL服务设置为手动,以后从命令行启动。删除服务使用:sc delete mysql

启动和关闭MySQL

管理员身份打开cmd:
启动:net start mysql关闭:net stop mysql

登录MySQL修改密码

启动MySQL后,输入mysql -h localhost -u root -p,密码初始为空,直接回车,成功登录。使用下面的命令修改:
UPDATE mysql.user SET password=password('123456') WHERE user='root';
FLUSH PRIVILEGES;
注意:需要使用加密的密码,如果直接使用明文的密码,可能无法登录!
修改完后,退出就可以使用新密码登录了。

删除匿名账户

删除匿名账户,以不允许匿名登录(直接输入mysql即可登录)!使用以下命令:
delete from mysql.user where user='';


忘记root密码

1. 管理员运行net stop mysql2. 管理员运行mysqld --skip-grant-tables3. 以管理员新开一个cmd,运行上面的修改密码命令即可。完成后关闭这2个cmd窗口,启动MySQL重新登录。
此外,查看MySQL用户的信息如用户名和密码等,可以使用下面的命令
SELECT host,user,password from mysql.user;

phpMyAdmin安装配置

安装

下载地址:http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.4.2/phpMyAdmin-4.4.2-all-languages.zip/download#!md5!bf7bbf870784aab4f6d54cbc7894acb5

配置

配置过程可以参考:http://docs.phpmyadmin.net/en/latest/setup.html#installing-on-windows手动配置参考:http://docs.phpmyadmin.net/en/latest/setup.html#manually-creating-the-file
To manually create the file, simply use your text editor to create the file config.inc.php (you can copy config.sample.inc.php to get a minimal configuration file) in the main (top-level) phpMyAdmin directory (the one that contains index.php). phpMyAdmin first loads libraries/config.default.php and then overrides those values with anything found in config.inc.php. If the default value is okay for a particular setting, there is no need to include it in config.inc.php.

将phpMyAdmin-4.4.2-all-languages.zip解压到htdocs下,重命名为phpMyAdmin,在phpMyAdmin文件夹中拷贝config.sample.inc.php重命名为config.inc.php。暂时没有额外配置。

PHP开发环境测试

测试前,先重启Apache:httpd -k restart

测试php与Apache是否配置成功

在Apache的htdocs下新建index.php文件,如下
<?php
echo 'PHP_VERSION = ' . PHP_VERSION;
phpinfo();
?>
在浏览器中输入http://localhost:8888/index.php,出现php所有环境配置,且里面有curl、gd2、mysql、mysqli和pdo_mysql的配置表格,说明php与Apache配置成功。

测试php与MySQL是否配置成功

在Apache的htdocs下新建text_mysql.php文件,如下
<?php
$conn = mysqli_connect("localhost","root","123456");
if (!$conn) {
die('数据库连接失败!');
} else {
echo '数据库连接成功!';
}
mysqli_close($conn);
?>
在浏览器中输入http://localhost:8888/text_mysql.php,出现数据库连接结果,表示php与MySQL配置成功。

测试phpMyAdmin

浏览器输入:http://localhost:8888/phpMyAdmin,输入MySQL用户名和密码即可操作MySQL数据库了。