Laravel下日志的权限的问题

最近网站老是当掉,于是先去storage/logs下看了下日志,发现日志里面只有一条信息,于是又去查看了系统日志,发现了在提示“laravel-log-20161030 have no permission to xxx”,

于是又回到了storage/logs目录下,发现了今天刚生成的日志的用户和用户组都是root,而前面生成的日志都是apache和apache,突然想到了自己刚加过计划任务,而计划任务的执行权限应该是root用户,所以生成的日志也是root用户生成,而应用是apache用户跑的,所以自然没有权限来读取日志。

那么解决办法呢,在bootstrap/app.php 里添加如下代码:

Android6.0下的权限请求问题

运行一个应用的时候在其他系统上跑的是正常的,但是放到一个Andriod6.0的机子上就直接闪退了,

看了下日志,发现这句提示

ATAL EXCEPTION: mainProcess: ..****, PID: 12847java.lang.SecurityException: Sending SMS message: uid 10092 does not have android.permission.SEND_SMS

根据提示,应该是说我没有SEND_SMS权限,于是去检查了AndroidManifest.xml,发现已经加过了

为什么会出现这个问题呢,原因在于Android6.0后针对没有root的机器有更加严格的权限控制请求。具体权限列表如下:

ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ADD_VOICEMAIL
BODY_SENSORS
CALL_PHONE
CAMERA
GET_ACCOUNTS
PROCESS_OUTGOING_CALLS
READ_CALENDAR
READ_CALL_LOG
READ_CELL_BROADCASTS
READ_CONTACTS
READ_EXTERNAL_STORAGE
READ_PHONE_STATE
READ_SMS
RECEIVE_MMS
RECEIVE_SMS
RECEIVE_WAP_PUSH
RECORD_AUDIO
SEND_SMS
USE_SIP
WRITE_CALENDAR
WRITE_CALL_LOG
WRITE_CONTACTS
WRITE_EXTERNAL_STORAGE

当然解决办法也有3种:

1)修改编译的版本为23.0以下 例如

targetSdkVersion 21

2)舍弃IMEI 的获取方式,更换为获取mac

3) 使用checkSelfPermissionrequestPermissions检查和请求权限

如果为了提升体验,也可以提示对话框让用户进行选择。

wordpress 自动更新提示输入ftp信息解决方案

当在使用wordpress自动更新的时候提示输入ftp信息的时候,主要原因可能是文件权限导致的,解决方案有2种:

1)修改wp-config.php

define(“FS_METHOD”,”direct”);

define(“FS_CHMOD_DIR”, 0777);

define(“FS_CHMOD_FILE”, 0777);

2) 修改文件主目录

(www用户为apache/nginx运行的主用户)

如果某一方法不适用,可以尝试2种结合使用。