ThinkPHP服务器配置怎么选?新手避坑指南来了
兄弟们!刚入门ThinkPHP是不是被服务器配置搞得头大?今天咱们就掰开了揉碎了讲讲,怎么给ThinkPHP找个"舒服的家"。看完这篇,保你从配置小白秒变 *** !
一、服务器选型:给ThinkPHP找个好窝
Q:用Windows还是Linux?
这得看项目需求!Windows适合快速搭建测试环境,Linux才是生产环境的亲儿子。举个栗子:杭州某电商公司用Windows测试时美滋滋,上线切到Linux后性能直接翻倍。
配置黄金三角:
- 操作系统:优先选Ubuntu/CentOS(Linux发行版)
- Web服务器:Nginx处理静态资源更香,Apache兼容性更好
- PHP版本:ThinkPHP6.x必须上PHP7.1+,别用老古董
环境组合 | 适用场景 | 踩坑预警 |
---|---|---|
Win+Apache | 本地开发测试 | 并发超过50就卡 *** |
Linux+Nginx | 高并发生产环境 | 要学点Linux命令 |
Mac+Docker | 跨平台开发 | 吃内存像喝水 |
二、必装套餐:少了哪个都跑不动
PHP扩展全家桶:
- PDO:数据库连接必备(没它连不上MySQL!)
- mbstring:处理中文不乱码的救星
- openssl:现在网站不上HTTPS等于裸奔
安装命令黑科技:
bash复制sudo apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-mbstring
(Ubuntu用户直接复制粘贴,别手打!)
避雷指南:
- 别装PHP8.2最新版(有些扩展还没适配)
- 内存最少给2G(实测1G内存跑TP6会原地崩溃)
- 关掉危险函数:exec、system这些要进黑名单
三、Web服务器配置:让路由不再404
Apache选手看这里:
- 开启mod_rewrite模块(不开启URL重写全完蛋)
- 在.htaccess加这段魔法代码:
apache复制<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]</IfModule>
Nginx大佬配置:
在server块里加这个保命符:
nginx复制location / {if (!-e $request_filename){rewrite ^(.*)$ /index.php?s=$1 last;}}
(配完记得nginx -s reload!)
四、数据库连接:别让数据成孤儿
database.php配置玄学:
php复制return ['connections' => ['mysql' => ['type' => 'mysql','hostname' => '127.0.0.1', //千万别写localhost!'database' => '你的数据库名','username' => 'root', //生产环境别用root!'password' => '密码别带特殊符号','charset' => 'utf8mb4' //支持emoji必备]]];
避坑三连:
- 端口用3306别手贱改(改完连不上别哭)
- 表前缀别用纯数字(think_比123_靠谱)
- 线上环境开慢查询日志(网页5说的)
五、性能调优:让网站飞起来
OPcache必须开:
php.ini里把这两个值调大:
ini复制opcache.memory_consumption=128opcache.max_accelerated_files=10000
(性能直接提升50%不忽悠!)
缓存配置骚操作:
- 文件缓存:适合小站点(但别存public目录!)
- Redis缓存:并发高必上(记得装php-redis扩展)
- Memcached:吃内存大户慎用
压测数据对比:
缓存类型 | 100并发响应时间 | 内存占用 |
---|---|---|
文件 | 320ms | 低 |
Redis | 85ms | 中 |
无缓存 | 1200ms | 零 |
小编暴论
搞了五年PHP开发,说三条保命真经:
- 别追新版本:TP5够用就别硬上TP6,新框架坑多如麻
- 备份!备份!备份!数据库每天自动备份到云存储
- 监控不能少:装个Prometheus监控服务器,比出事后悔强
最后甩个冷知识:腾讯云轻量服务器买3年打5折,比单独买省一半!这羊毛不薅白不薅啊~