记录:被laravel框架坑的一天。从早上8:00忙到下午17:30, 特此记录 共查阅330个网站
想法:我采用分布式的结构,开发一个动态网站。
nginx作为负载均衡加反向代理服务器
两个上游服务器
(1)被坑的位置,先将laravel框架安装到本地,Windows环境,由于PHP版本的不同,需要将compos.json中的PHP版本做一下修改
(2)提交给GitHub,然后在一台服务器上安装Jenkins,进行代码拉取,并转发给另一台服务器。此时我发现,在转发给另一台服务器时,有一个目录并没有被全部转发(别问我咋发现的,我快把服务器翻烂了),然后手动将文件拖过去。
(3)处理完后,发现两个网站,不是
思路:感觉像是Apache服务器的问题,以为他没有进行转发。但是我在它的相邻位置新建了一个index1.php 竟然可以访问到,
而且查看Apache服务,一切正常。此时陷入迷茫。
网上有的说是
display_errors | On | On |
display_startup_errors | On | On |
需要打开,但是我一直是保持开启状态的。
然后有一个说
从git版本库克隆下来Laravel项目之后,忘了composer install ,结果爆了如下错误(此处和我一样)
PHP Fatal error: require(): Failed opening required '/bcc/production/BCCAdminV1.0/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/php') in
~composer install
此处需要安利一下 composer 安装
执行composer install 报错, 需要删除 composer.lock
composer使用时需要非root用户,所以新建一个用户,使用新用户进行composer操作(但也可以不用,嘻嘻)
这里又调试了4个多小时,(因为刚开始PHP版本的原因,所以composer一直出问题),
需要配置php.ini 时,没有找到,在源码里,有php.ini-production ,拷贝过来改个名字。
然后重启服务,这里的服务可以是绑定的Apache服务,也可以是独立的php-fpm服务
拷贝时,如果拷贝的是文件夹,需要用 cp -r 来递归的进行拷贝
解决 Laravel/Lumen 出现 "Please provide a valid cache path" 问题,我的原因就是因为上面写的,没有cache文件,拷贝过来就行
后来安装其他laravel必备的模块时,出现错误,PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'curl.so' in Unknown on line 0
原因是,我在安装PHP时已经默认安装了,
只是缺少fileinfo模块, 去动态加载fileinfo模块 链接拿去
需要注意的是,fileinfo是我刚开始安装php没有安装的扩展,是在 ./configure后面补充的,所以不必再进行安装。 而其他的有,所以只需安装fileinfo即可,然而我因为这个又错了好一会
因为PHP版本的原因,好几次想卸载,但又不忍心,看来是对的,但是今后一定注意, 开发和发行的版本一定要一致,不然会很烦
我又想着通过nginx服务器来访问上游服务器(这应该是本来的顺序,而不是直接访问),此时nginx也报了502错误,那肯定了,直接都访问不到,nginx作为一个代理人,肯定也访问不到,但是,重要的是学到了,要设置
proxy_set_header Host $http_host , 以防止上游服务器以为你是网络爬虫而无法访问。
laravel框架在迁移时,出现了,问题,由于是使用git上传,会将.env(本地环境下的配置) 文件过滤掉,所以需要手动改config文件中的配置文件,包括
(1)laravel中的config 文件夹下 app.php 中的APP_key ( APP_key 的 作用)保证laravel框架的安全性。由于是在本地创建的,将其复制过去即可
(2)顺手看下laravel的优点, 反正今天我是感受不到他的好处
在最后,隆重感谢博主 精哥哥,双手奉上他的博客 打开 laravel的错误调试,之前一直有用的,但是,这次是真的没想到。在打开错误调试后,一切问题迎刃而解, 无论是storage文件缺少权限,还是配置laravel 的APP_key出错,都显示在网页上。
错误调试: config文件夹下 app.php 的debug,修改为true。
完结:撒花(撒泪)