记录
要搭建一个类似于微博功能的网站,在github
上没有找到合适的thinkphp
的repo
,所以就改用laravel
了,这个东西看着很复杂的样子。刚了解了一些,比thinkphp
应该是更难学一些,而且感觉文档也不是特别简单明了。在这里就把整个搭建过程记录下来。
过程
github
地址:
https://github.com/summerblue/weibo
把这个下载下来,放到网站根目录之后。
- 需要
php 7.3
版本,而我的虚拟机里装的是php7.0
,所以先装一下新版本。执行apt-get install php7.3
等待安装完成。 - 切换
php
版本,sudo a2dismod php7.0
+a2enmod php7.3
。重启apache2
服务。 - 在根目录下执行
composer install
,第一次执行是报错的,因为缺少很多依赖。按照错误提示,一次安装好。我这边都安装了:a)apt-get install php7.3-mbstring
; b)apt-get install php7.3-mbstring
; c)apt-get install php7.3-mysql
。同样重启之后,重新执行composer install
(这里要注意一下,一般我们下载到的repo
是没有vendor
文件夹的,这个文件夹包含了一些框架需要的基础东西,感觉应该是类似于thinkphp
框架的thinkphp
目录,执行了composer
指令之后,这个vendor
文件夹就自动生成了,里面包含所有的依赖文件) - 复制
.env.example
文件,命名为.env
,配置其中的database
相关内容。其中还涉及到邮箱的一些东西,所以把邮箱的相关配置也修改一下。 - 迁移数据库。这个和
thinkphp
差别还是很大的。使用thinkphp
只是在相关配置文件中数据库相关信息即可,数据库的创建是通过sql
语句完成的。而laravel
框架是集成了整个过程。执行php artisan migrate
,完成数据库的创建。 - 填充数据库。先后执行
sudo composer dump-autoload
和php artisan db:seed
,数据库的内容就创建好了。原理就是执行了databases
目录下的代码,随机生成了一些数据插入到数据库中。 - 修改权限。
chmod o+w storage/
,进入storage
目录,执行cd storage chmod -R 777 *
- 根目录下执行
php artisan key:generate
执行完这些步骤之后就可以正常访问了。
但是我还遇到一个问题。
我的weibo
项目文件夹是放在根目录下的,访问路径是http://xxx/weibo/public/
,项目会编译css
和js
,产生的文件路径是错的,直接是http://xxx/css/app.css
这样。所以为了可以正常访问,将根目录指向到了/var/www/html/weibo/public/
。
这个框架涉及到的css
和js
编译等等东西我还不是很清楚。之前没有接触过。
之后学习过程中遇到问题都会记录到这里。
2020.01.19
(不得不感慨,人家写的代码才是代码…)
今天将注册和登录部分改成用 用户名+密码 的方式了。主要是看懂原来的代码就可以了。比较简单。
另外,database
目录下,migrations
文件夹里的代码就是对应的创建数据库的代码。需要修改数据库结构或者自己要创建新的数据库的话从这里搞。
我仍然需要写OAuth
第三方登录的代码,所以首先安装好扩展。
在根目录执行composer require league/oauth2-client
。
(做到这一步的时候,我刚开始直接执行上面语句,提示我说连接不上,然后我百度之后换成了laravel-china
镜像源,结果一直说认证失败…也不知道咋回事。查了半天,感觉可能是这个镜像源的问题,我就又换回来了。结果!不提示连接不上了!🙃ok,fine。后面还是出问题,我就更新了新版本的composer
,然后终于可以安装这个扩展了)
小问题记录
执行composer self-update
提示:
[RuntimeException]
SHA384 is not supported by your openssl extension, could not verify the phar file integrity
解决方式:
rm -f /usr/local/bin/composer
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
之后执行composer require league/oauth2-client
提示
[Ru