Browsed by
Month: November 2015

lightdm 配置

lightdm 配置

卸掉了gdm 换成了轻量级的lightdm,  配置很简单(不过我脑残的输错了背景图片的地址) sudo pacman -S lightdm lightdm-gtk-greeter sudo vim /etc/lightdm/lightdm-gtk-greeter.conf 在conf中将[greeter]下面的那个background 注释去掉  并且添加上自己的背景图片的地址,注意 lightdm 这个用户是没有访问我的home的权限的, 要给图片放到 /usr/share/pixmaps/里 ,并且给/usr/share/pixmaps/ 添加 x 权限, 该文件夹下面的文件添加 r权限 sudo chmod a+x /usr/share/pixmaps/ sudo chmod a+r /usr/share/pixmaps/ -R   然后就可以用了~ 不过我发现我电脑上的锁屏键不好用了,于是给锁屏重新配置了一个快捷键, 在gnome settings 里 的keyboard 配置的 shortcut 命令为 dm-tool lock 效果图 (至今不知道该如何截取这个屏幕 , 除了使用虚拟机 , 所以凑合看吧各位QAQ

setcap wine 遇到的问题解决

setcap wine 遇到的问题解决

之后为了让普通用户也能通过wine访问到网络接口,需要给wine的相关程序(wine-preloader 和 wineserver wine) 一些特权   参考  man capabilities 和 setcap  首先需要给CAP_NET_RAW 权限 这个要给到 wine-preloader 上,不过在设置完这个权限之后,执行 wine XXX.exe 会报错 wine: error while loading shared libraries: libwine.so.1: cannot open shared object file: No such file or directory 这是因为特权模式的程序运行的时候是不会检测到相对路径的lib库的, 具体参考文章如下:http://stackoverflow.com/q/6493846/296473  解决方法在文中已有了 就不赘述了  上述问题解决后,运行wine 会提示  Internal errors- Invalid parameters  , 而且winedbg不可以attach到进程, 这个问题的解决方法是给wineserver(不是wine-preloader)CAP_SYS_PTRACE权限    

[被迫参加的hackathon] 在线编译系统开发小记

[被迫参加的hackathon] 在线编译系统开发小记

吐槽 因为某种原因我没有参加MSC举办的Hackathon, 不过我的部员们参加了 0.0 然后我本来想去蹭点Pizza之类的东西吃,结果(我感觉他们是给我诱拐过去了) 到了比赛现场之后告诉我, 这里封馆了 Orz 于是乎我就被迫开始写代码(连电脑都没有带只为了去蹭口pizza吃的我TAT[结果最后还没吃到pizza]) 实现的是一个简单的在线编译系统 TOC (Toy Online Compiler) 支持多种语言, 下面简单说一下实现的思路和核心的代码 实现思路 简单分析一下这个系统,由两部分组成 ,代码提交模块和代码编译运行模块 ,前者负责将代码交给后者,后者编译运行完毕将结果返回给前者,然后前者将结果展示给用户. 具体实现方式是: 代码提交模块负责将代码文件保存到服务器, 然后通过socket将消息通知到代码编译模块,然后代码编译模块执行完毕的结果再通过通信的方式传递回来, 很显然实现代码提交模块实现难度很容易,主要的问题在后者的编译模块的通信和编译问题, 下面给出编译模块的核心代码 <?php error_reporting(E_ALL); require_once(‘function.php’); require_once(‘queue.php’); require_once(‘actionclass.php’); $socketQueue = new actionQueue(); $socketQueue->initQueue(); $mainSocket = SocketOpen(); socket_set_option($mainSocket, SOL_SOCKET, SO_REUSEADDR, 1); while(TRUE) { if($socketQueue->len > 5)//Maximum count continue; //Do not accept create new socket $resSocket = socket_accept($mainSocket); if($resSocket != FALSE) { $socketQueue->push($resSocket); } if($socketQueue->isempty() == FALSE) { $currentSocket = $socketQueue->pop(); $rawMsg = SockRead($currentSocket); echo “Raw Msg is $rawMsgn”; if(Auth($rawMsg)…

Read More Read More

[Laravel] 配置phpstorm支持laravel语法补全

[Laravel] 配置phpstorm支持laravel语法补全

QAQ 不得不说,想使用我喜欢的vim来完美的做到larvel的智能补全太难了(以后自己试试能不能写出来插件吧QAQ*() 因此我回到了以前开发时用过的phpstorm, 给phpstorm配置laravel插件, 操作很简单, 不过要注意版本的兼容问题. 1. (其实没有顺序啦) 安装PhpStorm的Laravel Plugin 在phpstorm里连按两下Shift ,打开指令输入窗口,输入 Plugin,  选择 Install Plugin, 搜索laravel插件并且安装. 2.使用Composer 安装 laravel-ide-helper 这个laravel-ide-helper插件是我们要想让上面的插件实现补全的必备依赖, 如果不安装这个插件的话是没有办法使用laravel的补全的功能的, 而这个插件安装的版本要和自己的laravel版本配套 使用的是 4.2.*版本的laravel 需要安装1.11.*的插件 5.* 版本的安装2.*的插件 注意如果版本不匹配是不能安装成功的 , 会提示你缺少依赖   附上laravel-ide-helper插件的地址: Laravel-Ide-Helper

[Laravel] 使用artisan时遇到的问题 (更新中)

[Laravel] 使用artisan时遇到的问题 (更新中)

运行 php artisan migrate 的时候 报错(错误信息见下面) 的解决方法 报错信息如下 [IlluminateDatabaseQueryException] SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name ” (SQL: create table “ (`migration` va rchar(255) not null, `batch` int not null) default character set utf8 collate utf8_unicode_ci) [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name ” 这是因为配置里面少了 一个参数 “migrations” 的值, 加上这个参数 “migrations” => “migration” 之后问题就解决了 ~~~   执行db:seed 时,遇到问题(问题见下文) 主要错误信息: PHP Fatal error: Class User contains 3 abstract methods and must therefore be declared abstract…

Read More Read More

[Laravel] laravel目录下执行 php composer.phar install遇到的各种问题的解决

[Laravel] laravel目录下执行 php composer.phar install遇到的各种问题的解决

由于我们在国内需要做的一些其他设置: 大家都知道,国内有一些奇异的魔力, 导致composer的官方源packagist.org不能使用或者使用起来不顺手,下载速度特别慢之类的问题. 幸运的是国内的一些好心的巨巨们还是提供了一个供国人使用的packagist镜像 : packagist.cn , 想要使用这个镜像的话,需要在你的composer.json文件最下面加入这样一段(诶,你问最下面是指整个文件的最下面么? =  = 少年你先去看看json的格式再来问问题吧Qrz,) “repositories”: [ { “packagist”: false }, { “type”: “composer”, “url”: “http://packagist.cn” } ] 然后 执行 php composer.phar install 使用的镜像就是国内的镜像咯~~ PHP Fatal error:  Class ‘Phar’ not found in %Yourpath% 遇到这个问题 , 说明你的php配置中没有打开对phar文件的支持, 而如果你用的是xampp里内置的php的话(比如我用的就是xampp的php),那么说明 你的path里没有加入xampp的php的执行路径, 注意这个路径一定要放在/usr/bin/php的前面 ,放在系统自带的php的前面,不然的话一会儿还会遇到其他的坑,我下面也会说明, 不过现在只要记住将xampp的php的执行路径放在path里的所有系统自带的php的执行路径的最前面就好. 如果你用的是系统自带的php的话, 那么就用php –ini 看一下配置文件的位置, 并且将配置文件中 extension=phar.so启用(去掉前面的注释即可) [RuntimeException]:Mcrypt PHP extension required. 嘛嘛,这就是我前面说的那个问题咯~ 如果你是用的xampp里的php,一定要把xampp中php的路径放在所有php执行路径的最前面哦~ 不然的话就会出现这种问题了呢, 这个问题是由于你用/opt/lampp/bin/php composer.phar install 后 他去$PATH里找第一个PHP的$PATH结果找到了系统自带的php的path,而恰好你又没有给系统自带的php配置mcrypt module, 所以就GG了哦~ 如果你用的是系统自带的php的话,那么很显然你应该启用libmcrypt了哦~ , 具体怎么做查查就知道了 不能执行 php composer self-update 提示https链接不支持blabla 你需要给xampp的php(或者系统自带的php)配置一个cacert.pem 证书文件  下载地址在这里哦~ , 下载完毕之后,…

Read More Read More