skys215 发布的文章

Laravel中,多个项目共享session

现有多个laravel项目,需要在切换项目的时候,做到保留用户的登录信息。
也就是说,用户使用另外一个项目的时候,不需要重新登录,而是使用原来的登录态。

其实很简单,只需要两个项目在同一域名下,cookie名也相同即可。

设置cookie名可以在config/session.php中,'cookie'=>'token'(例如设为token)。

当然了在.env中,APP_KEY也一样才可以。
否则,需要在app\Http\Kernel.php中注释\App\Http\Middleware\EncryptCookies::class这一行。
因为cookie的加密会用到APP_KEY。

Lumen中路由不支持可选参数

在Lumen所使用的FastRoute中,对可选参数提供了支持。
例如/user/1来查看用户id为1的用户信息,/user来查看自己(已登录)的用户信息。
此时路由/user后面的/1是可以省略的。
用FastRoute写规则就是/user[/{id}]

但是在Lumen中并不支持这种写法。
需要分开写两条路由:
/user/user/{id}

特此记录

php mail debug

在用dokuwiki的时候,他会在注册的时候将密码发送给注册用户的邮箱,但是始终没人收到。
我之前也没有用过php自带的发送邮件功能,所以也不知道怎么debug。
google了一番之后,顺利解决了。(哪里顺利了……)

首先,php的mail函数是只会返回truefalse的。
谷歌之后,了解到mail的日志通常在/var/log/mail*
果然,找到了。

Jul  2 07:31:53 vultr sendmail[21578]: unable to qualify my own domain name (vultr) -- using short name
Jul  2 07:31:53 vultr sendmail[21578]: NOQUEUE: SYSERR(www-data): /etc/mail/submit.cf: line 1: fileclass: cannot open 'ATURE(use_ct_file)###': No such file or directory
Jul  2 07:31:53 vultr sendmail[21578]: NOQUEUE: SYSERR(www-data): No local mailer defined
Jul  2 07:31:53 vultr sendmail[21578]: NOQUEUE: SYSERR(www-data): QueueDirectory (Q) option must be set

复制sendmail.mcsubmit.mcm4 submit.mc > submit.cf就好了

配置服务器发送email

最近搭了好几个系统在服务器上,其中都用到了发送注册邮件的功能。
但是我没配置过email,所以一直没发送出去。
为了以后装系统能正常发送邮件,现在把安装过程记录下来,以便以后换服务器时又得去找文档配置。

根据DigitalOcean上的回答,敲sendemailconfig开始配置。
但提示我没安装,要我安装sendmail-base
那我们装一下吧。
sudo apt-get install sendmail-base
然后再敲sendemailconfig,问了一堆问题,我都完全不知道怎么搞,反正一路next了。

然后尝试发送邮件给自己

sendmail skys215(at)gmail.com

却提示我sendmail-bin没装。尴尬……或许我装错了?
装了sendmail-bin之后,提示各种错误……