Ubuntu使用+ThinkPHP学习——21(老师给的项目部署到Ubuntu上所遇到的问题汇总)

13号上午,老师发来了他的项目,因为老师的开发环境是wamp,而我的是lamp,除了系统不一样,其他的都一样。

下午我开始了部署,问题来了。

问题一:老师发的项目中public目录下没有index.php文件(原因是老师忘记发了)。

解决办法:下载一个干净的框架,将老师的文件一个个拷贝到相应的目录下。

问题二:老师启动了强制路由,在他的电脑上直接输入localhost就可以进入主页,而我的电脑都需要输入完整的路径包括.../public/index.php/...。

分析:在看视频的过程中,视频中的项目也是只需要输入一个域名就可以进入首页,但是视频中的都是Windows系统。还有一点就是,关闭强制路由是不现实的,因为这样就需要好多文件地址都需要改动。还有就是老师的html文件引入资源文件的路径直接是/static/....,而我需要写/tp5/public/static/....,看来这一点必须要改成和老师一样才行。

解决办法:

1、将入口文件改为public,然后每次就不需要输入/localhost/tp5/public/index.php,而是输入/localhost/index.php即可。

方法:sudo vi /etc/apache2/sites-available/000-default.conf,修改为DocumentRoot /var/www/html/tp5-git/public,只需要修改这一处就可以,然后重启服务器就可以了sudo /etc/init.d/apache2 restart 。修改如图所示:

2、隐藏index.php,是的路径地址变为由localhost/index.php变为localhost。

方法:sudo vi /etc/apache2/apache2.conf,将里面的的全部改为AllowOverride All,然后将public目录下的.htaccess修改为:

<IfModule mod_rewrite.c>
  RewriteEngine On

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

继续重启服务器sudo /etc/init.d/apache2 restart。

至此,大功告成!!!

问题三:在首页上,输入正确的用户名密码,点击登录没有反应,输入错误的会提示报错。

解决方法:我通过$this->error('1');一步步debug发现,缺少thinkphp/library/think/Auth.php文件,去那个目录下寻找发现的确没有。原来我没有将老师的thinkphp文件完全拷贝过来,将我自己的删干净后就可以了,再将老师的复制过来就可以了。

问题四:进入系统后,系统提示下图报错:

解决办法:第二天我联系老师,跟老师约了个时间去找他。发现是缺少dwz.frag.xml文件(老师以为自己之前发的项目有,其实里面public目录下少了index.php、.htaccess、dwz.frag.xml),老师给我发过来之后就可以了。

问题四:打开部分页面时会报错,提示没有缓存。问老师,老师给我弄了一个小时也没能解决(老师非常地有耐心)。到网上问,有人说是权限,可是给了权限还是不可以。这个问题足足困扰了我一天,14号晚上10点左右才弄好。

解决办法:我通过查看刚刚下载的tp5框架中的/config/cache.php,发现它此处写的为'path'   => '',而老师的/config/cache.php写的为'path' => '/runtime/cache/',然后我改为'path' => 'CACHE_PATH'后就可以正常运行了。但是每次改正完第一次点击会出现报错,之后再点击就变得正常了。原因至今还知道为啥。改为'path' => ''也可以。

总结:不管怎么说,这个过程总算熬过去了,接下来的就是调代码了,加油!!!!

posted @ 2019-03-16 11:06  UnderScrutiny  阅读(451)  评论(0编辑  收藏  举报