windows安装php,apache,mysql及其配置

PHP

下载

下载解压包

windows安装php,apache,mysql及其配置_第1张图片
windows安装php,apache,mysql及其配置_第2张图片
windows安装php,apache,mysql及其配置_第3张图片

选择适合你的版本下载,我的是64位线程安全的。
解压。

修改配置

接下来将php.ini-production文件重命名为php.ini,修改设置。

; On windows:
extension_dir = "ext"

;apache不识别php-ini中的相对路径,最好写上绝对路径
extension_dir = "E:\study-environment\php\ext"



;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_fileinfo.dll
extension=php_ftp.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll

; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=php_snmp.dll

extension=php_soap.dll
extension=php_sockets.dll
;extension=php_sqlite3.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll


#指定站点路径
查找”doc_root”,修改为doc_root = "E:\study-environment\www"

加入环境变量

把php加入环境变量:
Control Panel\All Control Panel Items\System----->Advanced system settings----->Environment Variables----->System variables----->Path
添加php的安装路径,如:
E:\study-environment\php

Apache

下载

下载解压包

windows安装php,apache,mysql及其配置_第4张图片
windows安装php,apache,mysql及其配置_第5张图片

注意:在Windows上,确保PHP(5.5以上)与Apache(2.4)可以协同运作的唯一方法是Apache和PHP都是32位(x86)或64位(x64) )和Apache和PHP都是线程安全(TS)。 使用非线程安全(NTS)不适用,并且线程安全版本捆绑了所需的Apache模块PHP“php7apache2_4.dll”。 NTS版本没有这个模块。
还要注意检查它们是否都使用相同版本的Visual Studio(例如VC14)进行编译。

修改配置

下载完后,解压,找到conf/httpd.conf,进行配置。

Define SRVROOT "/Apache24"
ServerRoot "${SRVROOT}"
改为
Define SRVROOT "E:\study-environment\Apache"  ##你的安装目录
ServerRoot "${SRVROOT}"


#修改端口的配置
#Listen 12.34.56.78:80
Listen 80

ServerName localhost:80


#设置php7module
#查找”LoadModule”,新增行,输入加载的php模块信息
LoadModule php7_module "E:\study-environment\php\php7apache2_4.dll"

#修改默认站点
#DocumentRoot "${SRVROOT}/htdocs"
#
DocumentRoot "E:\study-environment\www"


#查找”AddType”,新增行,输入允许执行php的文件类型
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html

#查找”DirectoryIndex”,更改默认首页为
DirectoryIndex index.php index.html

#注意使用英文字符,使用中文字符会解析出错


保存,win+x打开命令提示符(管理员)(以管理员方式运行),定位到bin目录,安装Apache:httpd -k install

windows安装php,apache,mysql及其配置_第6张图片
启动

Apache常见命令操作

#Start Apache 
httpd -k start 

#Stop Apache
httpd -k stop

#Restart Apache  
httpd -k restart

#Uninstall Apache Service  
httpd -k uninstall

#Test Config Syntax  
httpd -t

#Version Details 
httpd -V

#Command Line Options List  
httpd -h

启动时可能会发生错误。

(OS 10048)Only one usage of each socket address (protocol/network address/port)
is normally permitted.  : AH00072: make_sock: could not bind to address [::]:443

(OS 10048)Only one usage of each socket address (protocol/network address/port)
is normally permitted.  : AH00072: make_sock: could not bind to address 0.0.0.0:
443
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

这是因为443端口被占用了,服务启动不了,有两个解决方法

方法一
可以在conf/extra/httpd.conf查找 Include 
如果找到

#Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-ahssl.conf

说明 https 应用的配置文件是conf/extra/httpd-ahssl.conf 
打开该文件,修改https端口

Listen 443 https



方法二
1.查看所有的端口占用情况
C:\>netstat -ano
2.查看指定端口的占用情况
C:\>netstat -aon|findstr "443"
协议    本地地址                     外部地址               状态                   PID
  TCP    127.0.0.1:443         0.0.0.0:0              LISTENING       2016

端口被进程号为2016的进程占用,继续执行下面命令: (也可以去任务管理器中查看pid对应的进程)
3.查看PID对应的进程
C:\>tasklist|findstr "2016"
 映像名称                       PID 会话名              会话#       内存使用
 ========================= ======== ================
  tor.exe                     2016 Console                 0     16,064 K


tor进程占用了443端口。

4.结束该进程
C:\>taskkill /f /t /im tor.exe

测试

启动了Apache后,在站点文件”E:\study-environment\www”内新建文件”index.php”,添加:



重启Apache,在浏览器访问apache配置的端口。

windows安装php,apache,mysql及其配置_第7张图片
后续配置

apach配置多个端口。
在httpd.conf中设置监听多个端口。

Listen 8000
Listen 8099
Listen 8077

启用httpd-vhosts.conf设置。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

注意,在http.conf中设置的DocumentRoot,在httpd-vhosts.conf配置的所有的虚拟目录都应该在这个目录之下设置。
比如我的DocumentRoot

DocumentRoot "E:\study-environment\www"

然后在httpd-vhosts.conf中配置目录和地址:

#NameVirtualHost *:8099  //2.4已弃用

ServerName 0.0.0.0:8099
DocumentRoot "E:\study-environment\www\8099"

#NameVirtualHost *:8077 //2.4已弃用

ServerName localhost:8077
DocumentRoot "E:\study-environment\www\8077"


新建index.php访问测试

windows安装php,apache,mysql及其配置_第8张图片
windows安装php,apache,mysql及其配置_第9张图片

Mysql

下载

下载安装包

windows安装php,apache,mysql及其配置_第10张图片

直接安装,设置root密码。

配置php数据库模块

php_mysql由于安全问题被弃用了,可以用php_mysqli和php_pdo_mysql代替
详见这里。

5.x开始,PHP连接MYSQL无论使用哪种方式都是使用的mysqlnd驱动。包括mysql_*、pdo_mysql、mysqli。

mysqlnd和mysql/mysqli/pdo_mysql关系打比方说 mysqlnd是金属,而mysql mysqli pdo_mysql只是金属制品。

例:使用PDO连接mysql

$pdo = new PDO('mysql:host=localhost;dbname=database_name;port=3306','用户名','密码');
$pdo->exec('set names utf8');

$stmt = $pdo->prepare("select * from table where id =:id");
$stmt->bindValue(':id',1,PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

$rows = $pdo->query("select * from table where id = 1")->fetchAll(PDO::FETCH_ASSOC);

你可能感兴趣的:(windows安装php,apache,mysql及其配置)