ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PHPStudy新手教程:从零搭建本地PHP网站环境

PHPStudy新手教程:从零搭建本地PHP网站环境 做网站的第一步是什么不是写代码而是把运行环境折腾明白。很多新手一上来就卡在“我代码写好了但浏览器里什么都看不到”然后开始怀疑人生。PHPStudy这类集成环境工具能成为这么多人的首选就是因为它把PHP、Apache/Nginx、MySQL这些零散组件打包成了“一键启动”的完整环境。你在本机装好它就相当于有了一台能跑PHP网站的简易服务器。这篇内容我尽量把“从下载安装到做成一个能访问的完整网站”的流程讲透中间穿插一些我在实际使用中遇到的问题和解决办法希望能帮你把这条路走通。1. 先把思路捋清楚phpstudy为什么能解决“搭网站”这件事1.1 一句话理解phpstudy到底做了什么事很多人第一次看到PHPStudy的界面会有点犯怵觉得又是Apache又是MySQL又是phpMyAdmin东西太多看不懂。其实它的本质很简单就是一个“集成环境管家”。你不需要自己去官网分别下载Apache、PHP、MySQL再手动改配置文件让它们互相认识。PHPStudy把这三样主力软件打包在一起再配上一个可视化的管理面板启动哪一个服务、切换哪个PHP版本、创建网站、改配置都在界面上点点点就能完成。打个比方以前你做饭需要自己种菜、杀猪、磨刀、生火PHPStudy相当于一个“中央厨房”食材切好了、灶台点好了、调料备齐了你要做的就是直接开炒。对于只想尽快把网站跑起来的开发者和学生党来说这可以说是最低成本的起步方案。1.2 phpstudy和“一个一个装软件”相比赢在哪里、输在哪里我见过不少人在本地折腾过“纯手工”环境。具体流程是去Apache官网下载一个压缩包去PHP官网下载另一个压缩包去MySQL官网又下载一个大块头然后手动配置httpd.conf、php.ini、my.ini还要处理版本兼容、端口占用、环境变量。运气好一小时搞定运气不好一下午就没了而且报错信息零基础根本看不懂。用PHPStudy就省了很多麻烦。它优势在于三件事版本管理直观同一台机器可以装多个PHP版本建站时站点绑定指定版本。老项目用PHP 5.6新项目用PHP 8.2一个面板随时切换互不干扰。配置文件位置好找每个服务、每个版本的配置目录都集中在程序目录底下改错了还能重新初始化不像手工装的散落各处。集成了常用辅助工具phpMyAdmin、数据库管理、端口检测、命令行终端、FTP甚至还有一键申请SSL证书的功能。这些原生环境里全得自己配。缺点当然也有。最典型的是“过度封装”导致新手不理解原理一旦遇到面板层面解决不了的问题就懵。比如站点配置出错了很多人不知道配置文件在哪、日志在哪看。所以我一直建议用PHPStudy归用但不要只看界面要多点开“配置文件”按钮看看里面的逻辑长期下来你会学到不少真实环境的知识。1.3 谁适合用PHPStudy、用它做完项目的整体流程PHPStudy的使用者我总结了大概三类第一类是刚学PHP的小白。比如计算机相关专业在做课程设计老师要求写一个图书管理系统、排班系统之类的PHP项目你不需要深究环境配置原理只需要一个稳定可控的环境把项目跑起来交作业就行。第二类是接私活或者做外包的前端/全栈开发者。可能在本地同时维护好几个客户的网站项目环境版本各不相同用PHPStudy隔离管理就很香。第三类是做产品演示或教学演示的人。比如给客户演示一套开源CMS系统或者给学生演示PHP语法效果本地起一个站点几秒钟的事。用PHPStudy做网站的整体流程大致是下面这样下载并安装PHPStudy启动Apache/Nginx和MySQL。编写PHP源码或下载现成的PHP开源项目放到指定站点目录。在PHPStudy里“创建站点”配置域名、端口、根目录。用hosts本地解析域名或直接使用127.0.0.1/localhost。浏览器访问调试排错完成网站。如果需要上线要么把环境迁移到云服务器要么过段时间用面板的“部署”功能这里先不展开。我把这整条链路拆成几个关键环节下面一个一个细说。2. 建站之前的准备工作下载、安装与目录规划2.1 从官网下载安装包时的几个细节先强调一个习惯下载软件尽量去官网下不要用搜索引擎结果页里的第三方下载站尤其不要点那些标注“高速下载”“立即下载”的推广链接。这类站点捆绑下载器和广告软件的概率极大。我帮人重装环境时见过不少电脑里莫名多了一堆浏览器和弹窗就是从这里来的。PHPStudy官网上针对Windows用户提供的是一个较新的版本安装包如果你用的是老电脑也可以去下载历史版本。下载时注意选择64位还是32位现在主流电脑基本是64位。另外PHPStudy还有Linux版适合在云服务器上使用但本篇讲的是Windows本地方案Linux版的操作逻辑以后有机会再单独说。双拼输入法设置里的“中文模式”对PHPStudy没有影响但它对部分运行库有要求。安装包运行后如果提示缺少.dll文件通常意味着系统里缺少Visual C运行库。你可以自己去微软官网下载vc_redist.x64.exe来装装完再打开PHPStudy就正常了。2.2 安装路径的建议不要带中文和空格这一点非常重要。PHPStudy要求安装路径里不要有中文、空格、特殊符号。原因很简单PHP在Windows上处理中文路径经常会出现乱码、文件读写失败等问题空格也可能导致命令行工具的参数解析出错。所以路径尽量简单比如D:\phpstudy_pro。你可能会觉得“我放D盘的‘我的软件’文件夹里不也带中文吗”我干脆点说别试这是无数人踩过的坑。有段时间我为了图方便把环境装在了C:\Program Files\phpstudy结果PHP的某个扩展一直加载失败后来才发现就是因为路径带空格。改到D:\phpstudy_pro后一次通过。安装完成后程序目录里会有一个WWW文件夹这就是默认的网站根目录。以后你写的PHP代码、放置的开源CMS源码都放在这个目录底下。WWW下每个子目录就相当于一个站点文件夹PHPStudy创建站点时指定根目录默认就会指到WWW\你的项目名。2.3 第一次启动前检查端口占用启动Apache和MySQL之前最好先做一件事检查80端口和3306端口是否被占用。很多学生机装了QQ、迅雷、Foxmail或者某些开发软件会偷偷占用80端口导致Apache怎么都启动不了然后开始怀疑人生。检查方法很简单在Windows命令行执行netstat -ano | findstr :80 netstat -ano | findstr :3306如果返回结果里有LISTENING状态的记录说明端口已经被占用。查看最后一列的PID进程标识符再用命令查看是哪个程序tasklist | findstr 5684如果发现占用80端口的不是自己认识的软件直接在“任务管理器-详细信息”里结束该进程或者在PHPStudy面板里把Apache端口改成8080。不过我更推荐直接解决端口占用问题因为很多开源程序和伪静态规则默认就是按80端口配置的改端口之后你还会遇到挺多小麻烦。关于端口和防火墙的问题后面“常见问题”部分我会专门列几条情况。3. 核心实操从零到一做出第一个能访问的PHP网站3.1 创建站点时要填的几个配置项环境启动成功后在PHPStudy面板左侧菜单栏找到“网站”这一项点击“创建站点”你会看到一个表单。这里我逐个解释每一项该填什么以及背后的逻辑。域名这个位置不仅支持真正的域名也可以填你本地自定义的假域名比如test.com、www.myproject.cn只要后面在hosts文件里做好解析就行。也可以填localhost或127.0.0.1。我一般习惯给每个项目单独起一个域名比如shop.local这样以后想访问哪个项目一目了然而且互不冲突。端口默认填80。如果你本机有其他Web服务占用了80端口可以改成8080或者8000。注意改了端口后浏览器访问时要加上端口号比如http://shop.local:8080。根目录站点文件存放的物理路径。默认会生成D:\phpstudy_pro\WWW\shop.local这样的路径。也可以手动改成任意路径但尽量不要用中文路径和空格。创建数据库这一步是可选的。如果你做的是动态网站需要用到MySQL数据库可以在这里顺便创建。PHPStudy会弹出一个二级表单填写数据库名、用户名、密码。默认用户名一般是root密码留空或者设置一个自己能记住的。PHP版本新建站点时可以指定一个PHP版本一般是默认的版本即可。如果你装了多个版本就可以在这里为不同项目绑定不同版本。这是原生自建环境很难做到的便利。填完这些点击“确认”PHPStudy会自动完成站点配置文件的生成并且把站点信息写入MySQL或配置文件里。这就相当于“虚拟主机”建好了。3.2 本地域名解析理解hosts文件的原理如果你在创建站点时填的是shop.local这种自定义域名此时直接在浏览器输入它一定会打不开因为域名系统DNS根本不知道这个域名指向哪里。你也没有花钱买域名、没有租服务器所以唯一的办法是在本机设置一个“本地DNS解析”。Windows的hosts文件路径是C:\Windows\System32\drivers\etc\hosts用记事本以管理员身份打开这个文件在末尾加一行127.0.0.1 shop.local这行配置的含义是当本机访问shop.local时直接解析到本机IP127.0.0.1。保存后浏览器再访问http://shop.local就会请求到你本机的Apache服务再由PHPStudy里的站点配置转向对应根目录。这里我普及一个背后的概念域名解析的优先级。正常访问互联网时浏览器会先查系统hosts文件查不到再走本地DNS缓存、网络DNS服务器。因此hosts文件的解析优先级相当高适合开发环境使用。很多新手不理解为什么要改hosts以为填了shop.local就自动可以访问了。其实不是的PHPStudy做的事是“当你请求这个域名时我知道把请求交给哪个目录”但“这个域名怎么找到你的电脑”还得靠hosts解析。两者配合才构成完整的访问链路。3.3 写一段真实的PHP代码验证全链路是否打通做了这么多准备接下来就是验证成果的时候了。在刚才创建站点的根目录里新建一个index.php写下这段经典代码?php echo 站点运行正常当前时间 . date(Y-m-d H:i:s); $conn new mysqli(127.0.0.1, root, 你的密码, 你的数据库名); if ($conn-connect_error) { die(数据库连接失败 . $conn-connect_error); } else { echo br数据库连接成功; }这段代码测试了两件事第一PHP解析是否正常第二PHP能否连接MySQL数据库。如果浏览器打开http://shop.local看到“数据库连接成功”说明你的整个环境已经完全跑通了——Apache处理HTTP请求PHP解析执行代码MySQL提供数据存储PHPStudy把这些协调得明明白白。如果你在这一步就报错了别急着往下走。最常见的两种情况是数据库连接失败检查PHPStudy里MySQL是否启动、密码是否填对、数据库是否存在。404 Not Found看一下根目录路径是否正确、index.php文件是否真的存在于根目录下。这几个问题处理完本地网站的“最小闭环”已经建立起来了。4. 进阶必学版本切换、伪静态规则与更多实用操作4.1 切换PHP版本时到底在切什么很多人用PHPStudy一段时间后会遇到一个需求某个老项目是用PHP 5.6写的但默认环境是PHP 7.x或8.x一运行就报错。这种时候就需要切换PHP版本。在PHPStudy的“软件管理”里可以单独下载安装多个不同PHP版本比如PHP 5.6、7.4、8.2等。装好后在“网站-修改-PHP版本”里选择项目要用的版本应用后站点立即切换。背后的原理是PHPStudy会在Nginx/Apache与PHP之间做一层“版本代理”。Apache通过加载不同的PHP处理模块把.php请求交给对应版本的PHP解释器执行Nginx则是通过FastCGI配置把PHP请求转发到某个端口对应的PHP-CGI进程。对用户来说这就是一次下拉框选择的切换但对系统内部来说整个请求链路都发生了变化。我建议你尽量不要给所有网站用同一个PHP版本而是“一项目一版本”。比如课程作业里的老项目用PHP 5.6新学的ThinkPHP 8项目就用PHP 8.2。这样既能让老代码正常运行也能体验新语法特性。4.2 伪静态规则与一键部署开源程序日常使用中不少网站在配置完伪静态规则后才能正常访问。什么叫伪静态简单解释就是你访问的URL看起来是静态的比如http://shop.local/article/123.html但实际后端会把它映射到index.php?id123这样的动态请求。这种能力在CMS系统和框架开发里经常用。在PHPStudy里如果你用的是Nginx可以为主机绑定伪静态规则。进入“网站-管理-伪静态”选择预设规则比如WordPress、ThinkPHP、Discuz等PHPStudy会自动写入对应的重写规则代码。背后的原理是Nginx的location指令和try_files参数把所有符合条件的请求重写到入口文件Apache则是在目标目录下放置.htaccess文件利用mod_rewrite模块完成重写。如果你下载的是现成的开源PHP网站比如WordPress、企业站CMS通常压缩包解压到根目录后还需要到“创建数据库”那一步把数据库信息填写进去才能安装。这类程序一般自带了安装向导按屏幕提示填数据库名、用户名、密码再设置一个管理员账号就完成了。这里还要提醒一下下载开源代码时不要选来路不明的站点。很多代码包被人专门塞了后门文件一旦部署到公网等于把服务器拱手送人。尽量去项目的GitHub官方仓库或者知名的软件中心下载。在本地测试时也要注意文件来源这属于安全习惯不只在PHPStudy使用中有效。4.3 局域网手机访问与小程序接口调试等你把本地网站做出来了如果想用手机在同一个WiFi下访问不需要额外安装任何东西。Windows防火墙放行Apache服务后手机浏览器里输入http://你的电脑局域网IP:端口就能访问。前提是电脑和手机在同一个局域网。创建站点时填的端口没有被防火墙拦截。项目代码里没有写死localhost这种绝对地址否则在手机上访问时请求会重新指向手机自身。查看本机局域网IP的方式在命令行执行ipconfig找到“无线局域网适配器 WLAN”里的“IPv4”地址即可常见的是192.168.x.x这种段。这一招在做微信小程序后端接口调试时特别有用。小程序开发者工具调试时可以跳过域名校验但不方便真机预览如果把后端地址改成局域网IP手机上就能直接请求到本地环境里的接口。程序跑通后再切换到线上服务器整个开发周期会顺畅很多。注意小程序上线时必须使用HTTPS协议的真实域名本地这套只是开发辅助两者不冲突。5. 常见问题与排查技巧实录用PHPStudy建网站的流程讲完了但我知道你真正打开软件动手时大概率还是会遇到各种奇怪的问题。我把实操中最常见的情况做成了“症状-原因排查-解决办法”的速查表收藏备用就好。症状常见原因解决办法Apache启动失败80端口被其他程序占用用netstat -ano查占用进程结束进程或改Apache端口MySQL启动失败3306端口占用 / 数据目录损坏先查占用再用面板的“重置MySQL”功能会清空数据慎用访问域名显示404根目录路径不对 / 文件不存在检查站点根目录是否有index.php/index.html文件页面能打开但样式全丢了网址和真实路径不一致 / 伪静态未配确认CSS路径是相对路径检查伪静态规则是否启用PHP代码没生效直接显示源码PHP未启动或网站绑定的是静态文件处理检查PHP版本是否正常运行重启Apache/Nginx改了php.ini没反应PHP扩展配置未生效修改后必须重启PHP或Apache/Nginx服务数据库连接报密码错误修改过root密码但站点配置没更新检查代码里数据库连接参数的账号密码访问网站时提示“页面不安全”本地HTTPS证书问题开发环境可忽略或使用面板的SSL功能生成自签名证书在这些问题里有两个是我特别想单独拿出来讲的。第一个是“修改php.ini后不生效”。PHPStudy不是像Windows服务那样常驻它的Nginx和PHP进程有可能被缓存。你在面板里编辑php.ini后如果不重启服务新配置不会加载。这个“重启”指的不是刷新首页而是在面板里手动“停止-启动”对应服务。养成习惯改完任何配置文件后先重启一下服务再测试。第二个是“错误日志去哪看”。遇到报错或白屏时先不要到处乱猜直接看日志。PHPStudy的日志目录通常在D:\phpstudy_pro\Extensions\Logs里面每个服务都有单独的日志文件Nginx的访问日志和分析日志是分开的。SQL报错则会记录在MySQL日志里。看日志找问题的时间往往比在浏览器上反复刷新F5要短得多。尤其是PHP执行到一半白屏多半是代码里有Fatal Error不打开日志根本无从下手。除了这些常见情况我还想强调两个“安全习惯”这比任何功能技巧都重要。第一不要用默认的弱密码。有些教程里说数据库密码留空那是本地学习时可以这样如果你的电脑有公网IP或者你之后把站点部署到云服务器一定要改强密码。默认的root账号加上空密码在公网上被扫描到就是分分钟被入侵的结果。第二不要在本机一直开着生产环境不需要的端口。如果你是做课程设计、本地练习用完PHPStudy可以停掉MySQL和Apache。如果你部署到云服务器就用云平台的安全组规则只放行80/443端口数据库端口只允许内网访问。这个习惯能避免一大半被扫描攻击的麻烦。说实话PHPStudy这工具用顺手之后你会觉得建站真就两分钟的事。下载、启动、建站、放代码、开访问五个步骤一气呵成。但在“顺手”之前弄清楚它背后的逻辑更重要——站点配置在哪、PHP如何解析、数据库怎么连接、日志去哪看。这些原理掌握了换任何一套环境工具你都不会再犯怵。我自己刚开始折腾PHP测试环境的时候也干过“照着教程装完、点了两下、然后关了再也不打开”的事。后来接的实训项目多了才发现环境管理这件事本质上就是“知其所以然然后一劳永逸”。现在PHPStudy对我来说就像一台随开随用的服务器廉价的入门成本换来了极大的折腾空间。你可能不会一直用它但用它把PHP网站这条路走通绝对是你编程生涯里投回报率最高的一步。
返回列表