admin 管理员组

文章数量: 886993

文章目录

  • 1 配置Apache服务器
    • 1.1 下载Apache服务器
    • 1.2 修改配置文件httpd.conf
    • 1.3 安装Apache服务
  • 2 配置php
    • 2.1 下载php
    • 2.2 修改配置文件php.ini
    • 2.3 再次修改配置文件httpd.conf
    • 2.4 验证
      • 2.4.1 重启Apache服务
      • 2.4.2 验证效果
      • 2.4.3 说明

本文所使用的服务器为Apache

1 配置Apache服务器

1.1 下载Apache服务器

打开Apache官网,依次按如图所示点击:


下载完之后解压到任意目录即可:

C:\wsr\Apache\Apache24\
├──bin
├──cgi-bin
├──conf
├──error
├──htdocs
├──icons
├──include
├──lib
├──logs
├──modules
├──ABOUT_APACHE.txt
├──CHANGES.txt
├──INSTALL.txt
├──LICENSE.txt
├──Licenses.txt
├──NOTICE.txt
├──OPENSSL-NEWS.txt
├──OPENSSL-README.txt
└──README.txt

1.2 修改配置文件httpd.conf

打开配置文件C:\wsr\Apache\Apache24\conf\httpd.conf,修改以下三处:

1、 SRVROOT。将SRVROOT的值改为解压后的文件夹路径。

# least PidFile.
#

Define SRVROOT "c:/wsr/Apache/Apache24"
ServerRoot "${SRVROOT}"

#
# Uncomment below line to enable TLS/1.3 in server.
# (Requires OpenSSL 1.1.1 and up)

2、端口号。为避免端口号冲突可以将端口号修改为其它值(也可不修改)。我将默认端口8080修改为了8081

#Listen 12.34.56.78:80
Listen 8081

3、ServerName。ServerName中的端口号也修改为Listen对应的值。

# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost:8081

1.3 安装Apache服务

经过以上两步,其实已经算是配置好了。不过每次需要使用Apache服务器的时候都要进入到其bin目录,手动执行命令开启Apache服务。

更简单的方法是安装Apache服务,让其一直运行。首先进入Apache的bin目录C:\wsr\Apache\Apache24\bin,以管理员身份运行powershell,执行下述命令。

1、安装Apache服务。

PS C:\wsr\Apache\Apache24\bin> .\httpd.exe -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.

2、服务安装后为关闭状态。所以需要开启Apache服务。

PS C:\wsr\Apache\Apache24\bin> .\httpd.exe -k start

3、验证Apache服务器是否运行,在浏览器地址栏访问http://localhost:8081/。

出现如图所示界面说明Apache服务器配置成功。

服务器的更多命令请执行下述命令查看(执行命令时记得进入bin目录,且要以管理员身份执行):

PS C:\wsr\Apache\Apache24\bin> .\httpd.exe -h
Usage: C:\\wsr\\Apache\\Apache24\\bin\\httpd.exe [-D name] [-d directory] [-f file]
                                            [-w] [-k start|restart|stop|shutdown] [-n service_name]
                                            [-k install|config|uninstall] [-n service_name]
Options:
  -D name            : define a name for use in <IfDefine name> directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -k start           : tell Apache to start
  -k restart         : tell running Apache to do a graceful restart
  -k stop|shutdown   : tell running Apache to shutdown
  -k install         : install an Apache service
  -k config          : change startup Options of an Apache service
  -k uninstall       : uninstall an Apache service
  -w                 : hold open the console window on error
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed vhost settings
  -t -D DUMP_RUN_CFG : show parsed run settings
  -S                 : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
  -t -D DUMP_MODULES : show all loaded modules
  -M                 : a synonym for -t -D DUMP_MODULES
  -t -D DUMP_INCLUDES: show all included configuration files
  -t                 : run syntax check for config files
  -T                 : start without DocumentRoot(s) check
  -X                 : debug mode (only one worker, do not detach)

2 配置php

2.1 下载php

打开php官网,按如图所示选择版本下载。我下载的是php 8.0.9

下载之后解压到任意文件夹:

C:\wsr\php\
├──dev
├──ext
├──extras
├──lib
├──deplister.exe
├──glib-2.dll
├──gmodule-2.dll
├──icudt68.dll
├──icuin68.dll
├──icuio68.dll
├──icuuc68.dll
├──libcrypto-1_1-x64.dll
├──libenchant2.dll
├──libpq.dll
├──libsasl.dll
├──libsodium.dll
├──libsqlite3.dll
├──libssh2.dll
├──libssl-1_1-x64.dll
├──license.txt
├──news.txt
├──nghttp2.dll
├──phar.phar.bat
├──pharcommand.phar
├──php-cgi.exe
├──php-win.exe
├──php.exe
├──php.ini
├──php.ini-development
├──php.ini-production
├──php8apache2_4.dll
├──php8embed.lib
├──php8phpdbg.dll
├──php8ts.dll
├──phpdbg.exe
├──readme-redist-bins.txt
├──README.md
└──snapshot.txt

2.2 修改配置文件php.ini

php.ini-developmentphp.ini-production复制一份,将文件名修改为php.ini

PS C:\wsr\php> ls .\php.ini*


    目录: C:\wsr\php


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2021/7/30     16:55          74559 php.ini
-a----         2021/7/29     22:42          74326 php.ini-development
-a----         2021/7/29     22:42          74474 php.ini-production

打开C:\wsr\php\php.ini,修改以下四处:

1、设置扩展文件路径。将extension_dir的值改为php解压后的路径值。

; On windows:
;extension_dir = "ext"
extension_dir = "c:/wsr/php/ext"

2、设置要加载的扩展文件。这些扩展文件都在目录extension_dir = "c:/wsr/php/ext"中。下面将此目录下的扩展全部添加进去。

PS C:\wsr\php> ls .\ext\ |select Name

Name
----
php_bz2.dll
php_com_dotnet.dll
php_curl.dll
php_dba.dll
php_enchant.dll
php_exif.dll
php_ffi.dll
php_fileinfo.dll
php_ftp.dll
php_gd.dll
php_gettext.dll
php_gmp.dll
php_imap.dll
php_intl.dll
php_ldap.dll
php_mbstring.dll
php_mysqli.dll
php_oci8_19.dll
php_odbc.dll
php_opcache.dll
php_openssl.dll
php_pdo_firebird.dll
php_pdo_mysql.dll
php_pdo_oci.dll
php_pdo_odbc.dll
php_pdo_pgsql.dll
php_pdo_sqlite.dll
php_pgsql.dll
php_phpdbg_webhelper.dll
php_shmop.dll
php_snmp.dll
php_soap.dll
php_sockets.dll
php_sodium.dll
php_sqlite3.dll
php_sysvshm.dll
php_tidy.dll
php_xsl.dll
php_zend_test.dll

; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
;   extension folders as well as the separate PECL DLL download (PHP 5+).
;   Be sure to appropriately set the extension_dir directive.
;
;extension=bz2
;extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
;extension=gd
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
;extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=oci8_19  ; Use with Oracle Database 19 Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
;extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop

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

;extension=soap
;extension=sockets
;extension=sodium
;extension=sqlite3
;extension=tidy
;extension=xsl

;zend_extension=opcache

; 这里添加扩展文件
extension=php_bz2.dll
extension=php_com_dotnet.dll
extension=php_curl.dll
extension=php_dba.dll
extension=php_enchant.dll
extension=php_exif.dll
extension=php_ffi.dll
extension=php_fileinfo.dll
extension=php_ftp.dll
extension=php_gd.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_imap.dll
extension=php_intl.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
extension=php_oci8_19.dll
extension=php_odbc.dll
extension=php_opcache.dll
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_phpdbg_webhelper.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_soap.dll
extension=php_sockets.dll
extension=php_sodium.dll
extension=php_sqlite3.dll
extension=php_sysvshm.dll
extension=php_tidy.dll
extension=php_xsl.dll
extension=php_zend_test.dll
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

3、设置时区。

[Date]
; Defines the default timezone used by the date functions
; http://php/date.timezone
;date.timezone =
date.timezone = Asia/Shanghai

4、设置openssl。

[openssl]
; The location of a Certificate Authority (CA) file on the local filesystem
; to use when verifying the identity of SSL/TLS peers. Most users should
; not specify a value for this directive as PHP will attempt to use the
; OS-managed cert stores in its absence. If specified, this value may still
; be overridden on a per-stream basis via the "cafile" SSL stream context
; option.
;openssl.cafile=
openssl.cafile=cacert.pem

2.3 再次修改配置文件httpd.conf

打开配置文件C:\wsr\Apache\Apache24\conf\httpd.conf,修改以下三处:

1、设置默认索引。按如下所示修改DirectoryIndex的值。

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    # DirectoryIndex index.html
    DirectoryIndex index.html index.htm index.php
</IfModule>

2、开启 rewrite 功能。将下面第2行的注释去掉即可。

#LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule sed_module modules/mod_sed.so

3、在文件末尾添加如下设置。

PS C:\wsr\php> ls php.ini,php*.dll


    目录: C:\wsr\php


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2021/7/31     10:35          75438 php.ini
-a----         2021/7/29     22:42          35840 php8apache2_4.dll
-a----         2021/7/29     22:42         339968 php8phpdbg.dll
-a----         2021/7/29     22:42        9449472 php8ts.dll
#php8
LoadModule php_module "c:/wsr/php/php8apache2_4.dll"
PHPIniDir "c:/wsr/php"
AddType application/x-httpd-php .php .html
  • 若使用php 5,则使用LoadModule php5_module xxx
  • 若使用php 7,则使用LoadModule php7_module xxx
  • 若使用php 8,则使用LoadModule php_module xxx

我使用的为php8,所以用的是php_module。上面的三个配置中,前两个根据自己解压文件的路径设置其对应的值,第三个直接照抄。

2.4 验证

2.4.1 重启Apache服务

1、方法一

按快捷键win+r,输入services.msc,找到Apache服务,按如图方式重启:

2、方法二

管理员身份运行powershell,进入Apache的bin目录C:\wsr\Apache\Apache24\bin,执行下述命令:

PS C:\wsr\Apache\Apache24\bin> .\httpd.exe -k restart

3、方法三

管理员身份运行powershell,执行下述命令:

PS C:\wsr\Apache\Apache24\bin> Restart-Service -Name Apache2.4
PS C:\wsr\Apache\Apache24\bin> Get-Service -Name Apache2.4

Status   Name               DisplayName
------   ----               -----------
Running  Apache2.4          Apache2.4

2.4.2 验证效果

C:\wsr\Apache\Apache24\htdocs\目录下分别新建index.phpdir1\test.html

C:\wsr\Apache\Apache24\htdocs\
├──dir1
│  └──test.html
├──index.html
└──index.php

其内容分别如下所示:

PS C:\wsr\Apache\Apache24\htdocs> cat .\index.php
<?php phpinfo(); ?>
PS C:\wsr\Apache\Apache24\htdocs> cat .\dir1\test.html
<!DOCTYPE html>
<html>
<body>

<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>

</body>
</html>

在浏览器地址栏分别访问http://localhost:8081/index.php、http://localhost:8081/dir1/test.html,可以看到如下的效果:

2.4.3 说明

其中,目录C:\wsr\Apache\Apache24\htdocs为部署项目的目录,如果不想使用默认值,可以修改配置文件C:\wsr\Apache\Apache24\conf\httpd.conf,将DocumnetRoot的值修改为其它的:

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
# DocumentRoot "${SRVROOT}/htdocs"
DocumentRoot "c:/Users/fy/Desktop/project"
# <Directory "${SRVROOT}/htdocs">
<Directory "c:/Users/fy/Desktop/project">

    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

每次修改配置文件后都需要重启Apache服务,否则修改不生效。至此,所有配置结束。

本文标签: 环境 Windows php