PHP经验分享ThinkPHP

ThinkPHP5.1 配置Nginx/Apache下的 URL

2018-11-13  本文已影响36人  泥豆芽儿MT

☪ 背景

① 首先出现的情况是,PHP 版本安装太低导致无法解析,需要 >5.6
② 当版本满足后,经过一番配置又发现不支持 URL 重写 (形如:"http://seasonpro.com/article/7.html" )
③ 分析后发现,本测试用的是Apache服务,线上 CentOS7.1 系统选用的是 Nginx 服务环境
> TP 框架:    ThinkPHP5.1.2 版本 
> PHP版本:    php-5.6.27(>= 及以上)
> 服务器 : Nginx
> 线上系统: CentOS7.1
> 测试环境: phpStudy2016  Apache/Nginx
  • 毕竟在这上面花费了太多时间,在此记录一番,愿道友们可做借鉴,最重要的是作为自己备忘记录咯.

☪ 解决方法

1. 环境配置上的注意点

① 首先,安装的 PHP版本不能太低,否则不支持 ThinkPHP5.1 框架的要求
② 其次, "3306,80,21,22"  等端口需求的开放
③ 对于 "php.ini" , "httpd.conf" 等服务配置文件的修改后,一定要重启服务

这里需要注意一点,如果使用的是 阿里云服务 ,一定要在其 安全组配置 中,添加需要的端口,不然仅仅是 Linux 命令操作也是白费

2. 不同应用服务器的区别操作

此处操作,请参考官方文档:URL访问·ThinkPHP5.1完全开发文档 ,个人梳理测试如下:

❉ apache

测试发现无影响,其中的源码如下:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>

❉❉ Nginx

if (!-e $request_filename){
        rewrite  ^/youdomain/(.*)$  /youdomain/index.php?s=/$1  last;
    }

为了本地环境测试的真实性,我都会习惯性对自己的项目进行虚拟域名的配置,可做参考:


☪ 附录

小插曲 【其实,这个项目真实的情况就是从零配置的

    首先
    从昨天申请完阿里云主机服务后,整个 CentOS7.1初始化系统一片白纸;
    然后
    我参考了之前整理的一篇博客(可见附录),按照操作步骤 “ Nginx->MySQL->PHP7->整合php-fpm ” 一套安装过程走下来
    最后
    卡在了URL重写的配置上,因为误删 nginx.conf 文件中的一丢丢内容,怎么也无法还原了
    一气之下
    我给初始化了系统,但是也觉得气不过,不愿意再这么安装一遍
    
    这时
    同事建议可以直接安装 WDCP(一套通过WEB控制和管理服务器的 Linux 服务器管理系统以及虚拟主机管理系统)
    个人百度看着介绍的确简单,主要是可以随意切换PHP版本
    所以
    我在系统上直接安装了这个管理系统(简单梳理安装步骤明天我再写篇备忘,可见附录)
    但是,又TM 但是
    在提示选择哪种服务环境时,我觉得要不试试 Apache 吧
    大坑出现了
    在管理系统页面不管怎么切换PHP版本,生效的都是 PHP5.5.38
    拜托
    根本不支持我的 ThinkPHP5.1 框架
    各种百度,看社区讨论
    得到的解释竟然是:这种模式下,不支持PHP版本的选择,也不知道官方为啥不来解决这个坑
    今天一早
    我重新安装 WDCP,小心的选择了Nginx 服务环境安装选项
    二十分钟过后
    一切安装就绪,然后源代码使用FTP工具上传显示服务器对应目录,并按照本地 phpStudy 测试的解决步骤,顺利完工
    
    紧接着
    发现了一个搞笑的问题
    在默认的 ThinkPHP5.1 框架下的 index目录下的访问一切正常,只是有一个自己新建的模块访问时总是报错 “找不到对应的控制器”
    原来!原来!
    Linux对目录、命名空间什么的大小写太过敏感,当然原来的代码在本地 Windows 机器上是没问题的
    得
    以后好生注意下吧,两天时间搭了进去,真是对Linux又爱又恨!!!
上一篇下一篇

猜你喜欢

热点阅读