winodws+apache+mod_php环境搭建:(mod_php指apache使用php5_module加载php目录dll文件方式支持php)
请注意环境搭建要求与版本环境支持:
apache官方站点:https://httpd.apache.org/
php官方下载站点:http://windows.php.net/download/
VC6 需要预先安装Visual C++ 2005 SP1 x86 or x64
VC9 需要预先安装Visual C++ 2008 SP1 x86 or x64
VC11 需要预先安装Visual C++ 2012 SP1 x86 or x64
VC14 需要预先安装Visual C++ 2015 SP1 x86 or x64
PHP在Apache2.2作为模块加载,需要使用PHP的TS版本,且只支持PHP5.2~PHP5.4,支持XP和Server2003系统及以上版本
PHP作为Apache2.4作为模块加载,需要使用PHP的TS版本,且只支持PHP5.3~PHP7,支持win7和2008Server系统及以上版本(不在支持XP和Server2003系统)
经测试:Apache加载PHP扩展后有且仅支持一种PHP版本,不支持不同站点使用不同PHP版本。
apache2.2有安装包和压缩包,可直接安装使用或手动配置。Apache2.4是压缩包,需要注册服务。
ServerRoot "D:/Program Files (x86)/Apache2.2"
httpd -k install #安装 httpd -k install -n "服务名" #指定服务名称的安装 httpd -k install -n "服务名" -f "c:\files\my.conf" #指定服务名称和配置文件的安装
Apache服务常用命令
httpd -n "服务名" -t #检查指定服务名称的配置文件的正确性 httpd -k stop #停止 httpd -k start #启动 httpd -k restart #重启 httpd -k uninstall #卸载
也可使用控制台命令:(不限定文件路径,但需要服务已注册)
net start apache2.2 #启动服务 net stop apache2.2 #停止服务 net restart apache2.2 #重启服务
cmd命令:service.msc 查看Apache服务是否正常启用
cmd命令:netstat -an | find “80” 查看80端口是否监听
添加Apache程序 防火墙例外
打开浏览器访问http://localhost 是否显示:It's Work。
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory>
<Directory "D:/server/Apache24/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
<IfModule dir_module> DirectoryIndex index.php index.html index.htm </IfModule>
引入PHP配置文件,这里单独建立PHP配置文件为httpd-php_mod.conf(文件名可自定义)
#php_mod的加载文件 Include conf/extra/httpd-php_mod.conf
httpd-php_mod.conf文件内容如下:(经测试:有且仅支持一种PHP版本,不支持不同站点使用不同版本)
#apache2.2版本加载php5.2版本内容 #loadmodule php5_module "D:/Program Files (x86)/PHP_TS/php-5.2.17/php5apache2_2.dll" #PhpIniDir "D:/Program Files (x86)/PHP_TS/php-5.2.17" #AddType application/x-httpd-php .php #apache2.2版本加载php5.3版本内容 #loadmodule php5_module "D:/Program Files (x86)/PHP_TS/php-5.3.29/php5apache2_2.dll" #PhpIniDir "D:/Program Files (x86)/PHP_TS/php-5.3.29" #AddType application/x-httpd-php .php #apache2.2版本加载php5.4版本内容 loadmodule php5_module "D:/Program Files (x86)/PHP_TS/php-5.4.45/php5apache2_2.dll" PhpIniDir "D:/Program Files (x86)/PHP_TS/php-5.4.45" AddType application/x-httpd-php .php
[v_organge]1、时区设置:[/v_organge]
date.timezone = Asia/Shanghai
[v_organge]2、禁用函数:[/v_organge]
disable_functions =exec,system,passthru,popen,pclose,shell_exec,proc_open,dl,chmod
[v_organge]3、常用扩展开启:[/v_organge]
;以下常用组件取消分号注释(开始) extension=php_bz2.dll extension=php_curl.dll extension=php_gd2.dll extension=php_mbstring.dll extension=php_mcrypt.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_openssl.dll extension=php_zip.dll
[v_organge]4、其他设置:[/v_organge]
short_open_tag = On ;短标签开启 extension_dir = "c:\php\ext" ;组件存放路径更改 post_max_size = 20M ;POST发送最大数据包限制更改,且必须post_max_size ≥ upload_max_filesize upload_max_filesize = 20M ;上传文件大小限制更改
引入apache虚拟主机配置文件,这里单独建立vhost文件夹为每个站点独立创建一个配置文件(便于后期维护)。
#虚拟主机站点配置文件加载 Include conf/vhost/*.conf
其中windows下虚拟主机配置模板如下:
NameVirtualHost *:80 <VirtualHost *:80> <Directory "D:\wwwroot\longtao1"> Options -Indexes FollowSymLinks DirectoryIndex index.php index.html index.htm </Directory> ServerAdmin [email protected] DocumentRoot "D:\wwwroot\longtao1" ServerName host1.longtao.pro ServerAlias www.host1.longtao.pro ErrorLog "logs/host1.longtao.pro-error.log" CustomLog "logs/host1.longtao.pro-access.log" common php_admin_value open_basedir "D:\wwwroot\longtao1;C:\Windows\Temp" </VirtualHost>
net user apache apache_password /add net localgroup users apache /del
设置添加的用户属性为密码永不过期。
安装apache的D盘,apache用户仅仅需要读取权限
D:/Program Files (x86)/Apache2.2作为apache的安装根目录需要“列出文件夹内容、读取”的权限
bin、cgi-bin、modules目录为:“列出文件夹内容、读取和执行、读取”的权限
conf、error、htdocs、icons、manual目录为:“列出文件夹内容、读取”的权限
logs目录为:“列出文件夹内容、读取、写入”的权限
D:\wwwroot为网站存放目录,apache用户需要“读取、写入”的权限。(如果需要不定时上传文件就需要写入权限,如果长期不上传可删除写入权限)
目录结构如图:
修改apache程序启动用户为apache后,如启动失败需要重新检测apache程序目录配置权限是否不够或遗漏配置的的情况。
具体无法正常启动可通过计算机管理的日志查看器进行检查。(如下图)