系统环境:windows2019安装好各种vc,apache版本2.4.63,php版本7.4.33-ts-x64版
创建一个普通web用户密码为Ww123258,并且不属于任何组

net user web Ww123258 /add
wmic useraccount where name='web' set passwordexpires=false
net user web /passwordchg:no
net localgroup Users web /delete
mkdir D:\webserver\php
mkdir D:\webserver\apache\logs
mkdir D:\webserver\temp
icacls "D:\webserver\php" /grant web:(OI)(CI)RX /T
icacls "D:\webserver\apache" /grant web:(OI)(CI)RX /T
icacls "D:\webserver\temp" /grant web:(OI)(CI)F /T
icacls "D:\webserver\apache\logs" /grant web:(OI)(CI)F /T

D盘保留administrators和system完全控制everyone保留只读权限,并且只用于此文件夹不包子文件夹
目录:apache目录d:\webserver\apache、php目录d:\webserver\php、缓存目录d:\webserver\temp。
d:\webserver权限,保留administrators,system包留完权控制权限,web的目录权限如下
d:\webserver\temp读取写入,d:\webserver\apache、php,读取和运行,d:\webserver\apache\log,写入权限
目的:可以在windows下以普通用户运行apache、php7.4创建服务器生产环境。
一、下载apache和php7.4.33
apache下载地址:https://www.apachelounge.com/download/
PHP7.4.33下载地址:https://windows.php.net/downloads/releases/archives/
其它VC下载(基本不需要):https://windows.php.net/downloads/php-sdk/deps/vc14/x64/
apache下载解压到D:\webserver\apache
PHP下载解压到D:\webserver\php
二、配置安装apache和php
apache:打开apache目录里下的conf文件夹里面有个httpd.conf,用文本文档打开他,搜索并找到Define SRVROOT,把目录替换成解压目录也就是D:/webserver/apache,搜索Listen改成Listen 127.0.0.1:80
或者# Virtual hosts在下面加一行
IncludeOptional conf/vhosts/*.conf
在去掉Include conf/extra/httpd-ssl.conf前面的注释#
打开D:\webserver\apache\conf\extra\httpd-ssl.conf
开始一直删除到最后,就是不保留默认的VirtualHost,不然启动不了。
创建一个vhosts的文件夹,里面可以直接写虚拟主机配置文件了
php:打开D:\webserver\php目录把里面的php.ini-development改成php.ini
打开修改里面的extension,去掉前面注释;,比如要打开bz2,curl,fileinfo,gd2,gettext,intl,mbstring,mysqli,openssl,pdo_mysql,shmop,sockets,xmlrpc等组件,把前面的;删除即可。
;extension_dir = "./"改成extension_dir = "D:/webserver/php/ext"
;cgi.fix_pathinfo=1改成cgi.fix_pathinfo=1
upload_tmp_dir = 改成upload_tmp_dir = D:\webserver\temp
session.save_path = 改成session.save_path = "D:\webserver\temp"
三、apache结合php
在httpd.conf的最后面加上

LoadModule php7_module "D:/webserver/php/php7apache2_4.dll" 
PHPIniDir "D:/webserver/php"
AddType application/x-httpd-php .php .html .htm
#下面是加载php的curl模块
LoadFile "D:\webserver\php\libssh2.dll"
LoadFile "D:\webserver\php\libcrypto-1_1-x64.dll"
LoadFile "D:\webserver\php\libssl-1_1-x64.dll"
#开启gzip
<IfModule deflate_module>
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc|avi|mov|mp3|rm)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

需要取消注释的地方

LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule filter_module modules/mod_filter.so

安全生产防跨域,找到<Directory的下一行,
语法:php_admin_value open_basedir 目录
例默认的
php_admin_value open_basedir "${SRVROOT}/htdocs"
测试
127.0.0.1
多个站点配置

<VirtualHost *:80>
    ServerName www.example1.com
    DocumentRoot "C:/path/to/example1"
    <Directory "C:/path/to/example1">
       DirectoryIndex index.html index.htm index.php default.php
        php_admin_value open_basedir "C:/path/to/example1"
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
 
<VirtualHost *:80>
    ServerName www.example2.com
    DocumentRoot "C:/path/to/example2"
    <Directory "C:/path/to/example2">
        DirectoryIndex index.html index.htm index.php default.php
        php_admin_value open_basedir "C:/path/to/example2"
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

如果是SSL
把D:\webserver\apache\conf\里的openssl.cnf复制到D:\webserver\apache\bin目录
然后在

<VirtualHost *:443>
    ServerName www.example2.com
    DocumentRoot "C:/path/to/example2"
    <Directory "C:/path/to/example2">
        DirectoryIndex index.html index.htm index.php default.php
        php_admin_value open_basedir "C:/path/to/example2"
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    SSLEngine On
    SSLCertificateFile "目录/ssl.pem"
    SSLCertificateKeyFile "目录/ssl.key"
</VirtualHost>

打开CMD命令提示符把apache注册成服务

D:\webserver\apache\bin\httpd -k install -n apache
sc config apache obj= ".\web"

在去windows服务里找到apache服务,把改密码改成web用户的密码,然后确定在启动
删除apache服务

httpd -k stop -n apache
httpd -k uninstall -n apache
分类: apache使用方法 标签: windows下apache配置php7.4windows下apache配置ssl站点windows下apache配置网站

评论

暂无评论数据

暂无评论数据

目录