背景
一直用 XAMPP 做开发,兼容性稳定性很好,部署到服务器也没啥大问题,有台服务器跑了快两年了从来没崩过,也用过 XAMPPS 三天两头崩。但是发现个问题,用 绿盟检测 发现这种集成环境会有好多漏洞未修复,就尝试着自己从官网下载最新版的Apache、PHP、MySQL重新搭建了一下,中间遇到了好多坑在这里记录一下。
本文测试环境
https://www.apachelounge.com/download/
官网最新的是Apache 2.4 VC15,apachelounge这里还特别贴心的给了VC15的下载链接,如果已经有VC11或14的话,可以直接点左侧选择合适的版本。
将Apache压缩包解压后,到bin目录下打开httpd.exe,若黑框正常停留,说明服务已启动,浏览器输入localhost或127.0.0.1则能正常访问,如下图所示:
出错情况:
若是闪现后消失,那就说明默认80端口冲突,直接将httpd.exe拖到cmd窗口运行查看报错信息,如下图所示:
解决方案:
方案①:找到占用80端口的程序并终止,重新运行httpd.exe;
方案②:修改默认端口,打开Apache/conf/httpd.conf,建议使用 Notepad++,因为记事本有时会导致格式错误,58行左右找到Listen 80,改为Listen 8080,保存后重新运行httpd.exe;
服务器上为了长期稳定运行,一般将httpd.exe添加成服务
操作方法:
# 打开CMD
#1. cd 到 Apache/bin 目录下;
cd C:\Apache24\bin
#2. 添加到系统服务
httpd -k install
添加完成后在服务中可以找到Apache2.4,设置启动类型为自动就会开机启动了,以后重启服务也都在这里操作,如下图所示
如果外网访问不了的话需要到防火墙里添加例外才行
http://www.thinkphp.cn/down.html
这里我们直接下载 ThinkPHP 5.0.20 核心版
① 将解压后的ThinkPHP文件复制到C:\Apache24\htdocs目录下;
② 用Notepad++打开C:\Apache24\conf\httpd.conf,找到248行左右,将DocumentRoot和Directory改为ThinkPHP目录,因为ThinkPHP5的index.php放在public目录下,所以我们将根目录设为thinkphp_5.0.20/public,如下所示;
#
# 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 "c:/Apache24/htdocs/thinkphp_5.0.20/public"
③ 保存后到服务里重启Apache,浏览器输入localhost,效果如下图所示,因为此时Apache还配有配置PHP,所以此时不识别index.php;
https://windows.php.net/download
选择合适版本下载,本文因使用ThinkPHP5.0.20,需要PHP >= 5.4.0,官方建议在PHP7下使用,因此选用 PHP 7.2 VC15 x64 Thread Safe (2018-Apr-26 07:51:55)
① 解压下载的PHP压缩包到任意目录,本文解压到了C:\Apache24\php;
② 用Notepad++打开C:\Apache24\conf\httpd.conf,在最后添加;
# php7 support
LoadModule php7_module c:/Apache24/php/php7apache2_4.dll
AddType application/x-httpd-php .php .html .htm
# configure the path to php.ini
PHPIniDir "c:/Apache24/php"
③ httpd.conf的282行左右添加 index.php ,否则将不会识别默认页面,如果以后有需求可以再添加其他格式,比如index.htm、index.phtml;
DirectoryIndex index.html index.php
④ 保存后到服务里重启Apache,浏览器输入localhost,效果如下图所示,表明PHP已经配置成功;
https://dev.mysql.com/downloads/mysql/
选择系统版本后下载,注意可以跳过登录直接下载
原生的环境中,ThinkPHP连接MySQL会报错,一般会提示找不到函数或组件等。
可以将index.php中内容改为:
phpinfo();
?>
这样重新访问localhost便可查看当前已加载的组件。
修改下面配置来添加PHP对MySQL连接的支持:
① 找到php根目录下有两个文件,php.ini-development和php.ini-production,我们这里使用后者,拷贝一份后重命名为php.ini;
② 找到783 、904行左右,去掉前面的;号;
783 extension_dir = "ext"
904 extension=mysqli