一、前言
最近有个小项目需要使用框架,一狠心决定抛弃 ThinkPHP3.2.3 直接使用新版本(ThinkPHP5.0.24)。在阿里云虚拟主机部署的时候遇到了些小问题,狂搜了很久才得已解决。写在这里,给新手节约些时间。
二、操作流程
第一步,下载框架
没什么好说的,直接官网下载最近版本的框架,本文中使用的版本是 ThinkPHP5.0.24。核心版和完整版都可以,新手建议下载完整版,便于以后学习。
下载地址:http://www.thinkphp.cn/down.html
第二步,上传ThinkPHP到阿里云服务器
用自己喜欢的工具打开阿里云服务器,这里我用 FlashFXP。
根目录中有若干文件夹,但是我们只能操作 htdocs 文件夹,其它的都是只读的。把 ThinkPHP5 解压到本地文件夹以后,直接拖拽到这个文件夹里。
我的文件是 thinkphp5 , 这是文件夹里面的内容。
第三步,设置 .htaccess 文件(重要)
经过以上步骤后,ThinkPHP5 已经成功的安装到服务器上了,但是通过 URL 访问时会提示错误,因为在根目录中没有可访问的资源文件。ThinkPHP5的入口文件在 /htdocs/thinkphp5/public 文件夹中,所以必须设置服务器默认访问这个文件夹而不是根目录。方法就是在 htdocs 文件夹中 新建一个 “.htaccess”文件,内容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?你的域名$ [NC]
RewriteCond %{REQUEST_URI} !^/thinkphp5/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ thinkphp5/public/$1
# 没有输入文件名的默认到到首页
RewriteCond %{HTTP_HOST} ^(www\.)?你的域名$ [NC]
RewriteRule ^(/)?$ thinkphp5/public/index.php [L]
</IfModule>
“你的域名”是指,如果你的URL是 www.baidu.com 的话,把 “你的域名” 四个字替换成 baidu.com 注意 “.” 之前有一个 “\”。修改完以后是这样的:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?baidu\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/thinkphp5/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ thinkphp5/public/$1
# 没有输入文件名的默认到到首页
RewriteCond %{HTTP_HOST} ^(www\.)?baidu\.com$ [NC]
RewriteRule ^(/)?$ thinkphp5/public/index.php [L]
</IfModule>
配置文件是按照我的目录结构来设置的,如果你的目录结构不一样,自己照猫画虎做相应的修改。
第四步,其它注意事项
正常的情况下通过前面三步操作,网站就可以正常访问了。但是我的服务器访问还是会报错:
这个错误是由于 阿里云中的PHP默认版本较低造成的:
阿里云中的PHP默认版本是 PHP5.2,而ThinkPHP5 的运行要求 PHP 最低版本是 PHP5.4,选择对版本点击 “保存设置” 就可以了。
注意:设置完成以后需要等几分钟或重启服务器设置才能生效。
三、结束语
头一次使用 ThinkPHP5 ,粗浅的感觉比 ThinkPHP3 版本结构更清晰,如果有 ThinkPHP3 的基础学习起来也没什么难度,大概了解一下就能上手。
如果对 .htaccess 有兴趣,可以参考这篇文章:
[1]: https://blog.csdn.net/cmzhuang/article/details/53537591
来源:CSDN
作者:cihron
链接:https://blog.csdn.net/cihron/article/details/103706820