为什么不选一键包呢,因为脑残 因为 XAMPP 不太好控制控制版本,反正也就当学习了。
本文长期保持更新,比如我更新环境各种 Boom 了之后就会更新。
20190511 Update:又发现一些设置有猫饼,就改了下。
PHP
先配置个 PHP,反正配置好了随便丢哪都行不用管,以后要升级了基本覆盖一下就行,怕有问题就留着 php.ini
别的删掉,在解压进同一个文件夹即可。
Step 1
去 PHP官网下载 最新版,因为是搭建 Apache 环境所以就要下载线程安全(Thread Safe)版的
Step 2
随便解压到一个地方,因为是本地开发,所以要使用开发版配置模板 php.ini-development
,复制一份改名为 php.ini
,改点设置:
- 搜索
max_execution_time
,数值改成300
- 搜索
upload_max_filesize
,数值改成20M
- 搜索
post_max_size
,数值改成20M
- 搜索
extension_dir
,把 for Windows 下面一行的分号去掉,即extension_dir = "你电脑\\ext"
- 搜索
extension=mysqli
,分号去掉,然后再看看自己需要哪些库 - 搜索
date.timezone
,分号去掉,值为Asia/Shanghai
基本就这些了,然后在 PHP 的目录开一下 PowerShell 或者 CMD,输入 php -v 看看有没有别的报错,正常的话应该如下:
$ php -v
PHP 7.2.3 (cli) (built: Feb 28 2018 05:47:26) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
如果跑不起来的话就装个 VC++ 2017 运行库,下载:64 位 - 32 位
Step 3
把 PHP 目录加进 Path 里面方便以后测试啥的,虽然用到的时候也比较少吧。
还有就是 disable_functions
,我这里用的是 Hostker 的配置:
disable_functions = "disk_total_space,disk_free_space,diskfreespace,exec,passthru,shell_exec,system,popen,show_source,pclose,proc_open,dl,php_real_logo_guid,php_egg_logo_guid,php_ini_scanned_files,php_ini_loaded_file,readlink,linkinfo,symlink,link,passthru,proc_close,proc_terminate,proc_get_status,proc_nice,getmyinode,putenv,getopt,sys_getloadavg,get_current_user,import_request_variables,debug_zval_dump,ini_alter,dl,pclose,popen,mb_send_mail,openlog,syslog,closelog,posix_kill,apache_child_terminate,apache_get_version,apache_lookup_uri,apache_reset_timeout,apache_response_headers,virtual"
Apache
这个就比较麻烦了,当时配个 HTTPS 我都要吐了。
Step 1
官方的 2.4 只有源码了,不过可以去合作站点下载。先去官方下载页,点击 ApacheHaus,我选的是 OpenSSL 1.1.0 版本的,右边的 Download Location 选择下载源即可。
Step 2
解压到某个文件夹,把 Apache24/bin
目录加到 Path 方便控制。然后修改 Apache24/conf
的 httpd.conf
文件,在最后加入以下:
##### Load PHP mod
LoadModule php7_module "你电脑\php\php7apache2_4.dll"
PHPIniDir "你电脑\php"
<FilesMatch \.php>
SetHandler application/x-httpd-php
</FilesMatch>
##### end Load PHP mod
然后做别的修改:
- 搜索
Define SRVROOT
,修改为Define SRVROOT "你电脑\Apache24"
- 搜索
LoadModule http2_module modules/mod_http2.so
,去掉注释 - 搜索
LoadModule ssl_module modules/mod_ssl.so
,去掉注释 - 搜索
LoadModule headers_module modules/mod_headers.so
,去掉注释 - 搜索
modules/mod_rewrite.so
,去掉注释 - 搜索
<Directory />
,把AllowOverride none
改成AllowOverride All
,注释Require all denied
- 搜索
DirectoryIndex
,最后加入index.htm index.php
如果不设置太多的话其实已经可以用了,网站文件放在 Apache24/htdocs
里面。
20190516:更新了 PHP 版本之后发现 curl
挂了,所以要执行一下指令:
mklink "你电脑\apache2.4\bin\libssh2.dll" "你电脑\php7\libssh2.dll"
为 你电脑\apache2.4\bin\libssh2.dll <<===>> 你电脑\php7\libssh2.dll 创建的符号链接
这就把 PHP 的 libssh2.dll
给 Apache 用了,然后就正常了。
因为前面加了 Path
,所以用管理员权限运行 Powershell 或者 CMD,然后 httpd -k install
即可安装成服务并启动,需要重启的时候就 httpd -k restart
。
然后就可以测试了:https://127.0.0.1,可以丢个 PhpMyAdmin 进去测试,应该能跑起来了,不能的话我也不知道该怎么解决。
Step 3(可选)
如果想用域名(比如用 local.web
来访问)来做的话那就要多设置点东西了,没那么多要求就可以跳过这部分。
在 Apache24/conf/extra
新建个 local.web.conf
文件,内容参照这个:
20180314:修改了一下,解决了局域网访问的小问题,其他机子想用域名访问的话记得也加个 Hosts。
<VirtualHost *:80>
DocumentRoot "你网站目录\\wwwroot\\local"
ServerName local.web
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
ServerName local.web:443
DocumentRoot "你网站目录\\wwwroot\\local"
SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
</virtualhost>
然后在 Apache24/conf/httpd.conf
加一句 Include conf/extra/local.web.conf
,然后 httpd -k restart
就生效了。
反正本地测试而已,证书无视就行,非要搞证书的话自己想办法咯。
MySQL
为了保证跟大多数主机环境一致所以选 MySQL,当然你也可以自己选 MariaDB,反正我平时搞 WordPress 比较多没什么区别。
Step 1
去官网下载,如果需要 5.6 或者 5.5 的话也在同一个页面可以找到,然后点击下载。
Step 2
下好之后开始安装,不过需要 .Net Framework 4.5 以上版本,点击下载 .Net Framework 4.7.1 离线包。
然后进入安装过程如下:
- Choosing a setup type 处,选择 Developer Default
- 如果还要搞 VS 或者 Python 3 的话就选 Execute,不需要就直接 Next,然后 Yes,然后 Execute,反正以后需要了还能重新装
- 然后一路 Next 到 Type and Networking,选 Standalone MySQL Server / Classic MySQL Replication
- Type and Networking 的 Config Type 选 Development Machine,其他默认,如要换端口就把 3306 改成其他的
- Accounts and Roles 这里输入 root 用户的密码,然后 Next
- 然后就是创建 Windows 服务,默认创建,服务名为 MySQL57,系统启动时跟着启动,以标准账户启动服务,保持默认就行,不会的还是别乱改的好
- Plugins and Extensions,一般不需要,Next,Execute,Finish
- 然后又 Next,Finish,然后 Connect To Server 测试连接情况,这里输入 Root 的密码点 Check 测试能不能连接上,然后 Next,Execute,Finish
- 最后 Next,安装完成,那两个勾去掉就行了,反正一般用不着
然后用 PMA 试试:
剩下的该咋咋了,反正搭好了,过程有问题的话就说,反正我是不会改的。
hooyes
写得很清晰,必须点个赞。
Eiko 回复 hooyes
毕竟自己搭的时候查了一堆有用没用的,然后在虚拟机再来一次
Flyer
收藏 以后也许用的到
灰常记忆
这个搞得有点麻烦了,试试upupw或者宝塔!
Eiko 回复 灰常记忆
我这是在 Windows 里搭开发环境,我自己本身用的还是算虚拟主机一类,毕竟 Linux 真的玩不过来
紫菜
写个mac的
Eiko 回复 紫菜
点击赠送 RMBP
山野愚人居
有个phpstudy,一键搞定的,比较方便!
Eiko 回复 山野愚人居
文章开头就写了,这是在不想用一键包的情况下写的教程