在Windows平台上有很多PHP环境一键安装包,在OS X里只发现2个。一个XAMPP,一个MAMP。前者发现不支持Zend,我估计会导致一些程序不兼容,而后者就没这些问题。当然OS X里也自带环境,不过要装MySQL和phpMyAdmin,所以我就打算搞一键安装包算了。
在官网下载后安装免费版的MAMP,装好后进入phpMyAdmin,发现没有创建数据库选项。搜了国内很多教程,他们的截图跟我的截图不一样。google去搜国外phpmyadmin create database的文章,同样无果。卸载重装收费版的MAMP PRO,同样没有创建数据库。
之后无意中搜到一个视频,里面是一个老外在演示mac里装MAMP的步骤教程。几分钟看完后,发现他点出来的phpMyAdmin也是有创建数据库的,这就奇怪了。仔细看了下,他用的是MAMP 1.9.2,而我在官网下载的是最新版MAMP 2.2,官方只提供这个版本和MAMP 1.9.6.1,所以继续搜索MAMP 1.9.2的安装包。终于发现一个网站里有所有版本的安装包,找到1.9.2下载安装,跟视频教程里一模一样,点开phpMyAdmin,终于有创建数据库了。
我不确定官网提供的MAMP 1.9.6.1是否也可以,大家可以试试,然后给我反馈。我看了下MAMP 1.9.2的基本配置,里面的版本应该足够我用的了,所以暂时不需要升级到很高的版本。装了个最新版WordPress,居然支持伪静态,cool!
搞了半下午加半晚上,终于解决了,希望对大家有用。不过不知道是不是运行PHP环境的原因,我的Air掉电明显比之前快很多。
可能有不少用户会发现自己的ecshop经常会使用关就超时了,这个问题解决办法有很多种,我们可以直接在ecsho中进行修改,具体方法如下在includescls_session.php中修改
代码如下 | 复制代码 |
var $max_life_time = 1440; |
// SESSION 过期时间、单位秒这段代码中的数字。此数字单位为秒,前台登录和后台登陆都是调用这里设置的时间。
2 关于在后台编辑产品经常由于时间长而超时,可以在登录的时候,勾起“请保存我这次登录信息”就可以不提示超时了,或者直接修改admintemplateslogin.html,,让页面默认选中这一项!现在的新版本,对安全打高了一些,几乎是5分钟没有操作后台就重新登陆,有没有办法可以改掉因为只有3分钟,所以我们往往在录入过程中就超时了,所以我们需要增加超时时间。
修改方法如下:
includes/init.php
api/init.php
admin/includes/init.php
wap/includes/init.php
将以上这几个文件中,找到下面的代码
代码如下 | 复制代码 |
@ini_set(’session.cache_expire’, 180);//单位秒 |
当然除了上面方法我们还可以修改php配置文件来操作了
继续PHP中的Session话题,在PHP中主要通过设置session.gc_maxlifetime来设定Session的生存周期。例如:
代码如下 | 复制代码 |
<?php |
下面提供一个别人封装好的函数,但是我没有测试过,仅供参考:
代码如下 | 复制代码 |
<?php |
使用方法:
加入start_session(600);//600秒以后过期。
可能有很多朋友在本地使用phpmyadmin时过了下会发现又需要重新登录了,这个很不方便下面我来介绍修改phpMyAdmin默认登录超时方法。phpMyAdmin的默认超时时间是1800秒,太短了开发过程中写几行代码回来一看数据库就超时了,反复登录很烦人。
修改方法:
打开phpMyAdmin/libraries/config.default.php
代码如下 | 复制代码 |
找到$cfg['LoginCookieValidity'] = 1440; |
行把1440调大一些就ok了
本文章今天来给大家介绍一个libcurl升级后找不到libcurl.so.3解决之法,希望对各位朋友有帮助呀。系统装的是libcurl 7.19的版本,编译的动态库是libcurl.so.4
自己的程序编译是在libcurl 7.15的版本下编译的,用的是libcurl.so.3的版本,要做下软链接即可:
根据自己使用的是32位系统或者64位系统 做如下处理:
代码如下 | 复制代码 |
cd /usr/lib 或者 cd /usr/lib64 |
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。
给出我的一个简单的代码例子:
说明:
1.关键在curl_easy_setopt函数设置option,可以设置ftp,http,get,post等许多选项,请根据具体使用情况设置。
2.对取回来的数据需要进行判断,比如http下载文件,如果文件不存在,需要进行处理。因为writer是可以将buf填充404 not found等网页内容的,不能将这个内容当成文件内容,所以需要判断http web返回来的code,进行判断。
3.我有个问题,就是想得到服务器上filename的具体名称,verbose调试已经返回了,但是我在getinfo的时候,试过好多选项,但未找到这个存放真实服务器文件名的选项,如果有知道的麻烦告诉我,谢谢了!
代码如下 | 复制代码 |
long writer(void *data, int size, int nmemb, string &content); void main() } bool CurlInit(CURL *&curl, const char* url,string &content) long writer(void *data, int size, int nmemb, string &content) bool GetURLDataBycurl(const char* URL, string &content) code = curl_global_init(CURL_GLOBAL_DEFAULT); //struct curl_slist *list; return true; |
错误提示
提示信息:Warning: Failed to write session data (files).
Please verify that the current setting of
session.save_path is correct () in Unknown on line 0
解决办法
代码如下 | 复制代码 |
session.save_path = "D:/phprun/tmp" |
这个为自定义文件夹 指向错误导致,系统默认不会出现,提示有时还有可能是目录没有写的权限哦,所以大家给权限就可以了。
由于PHP的工作机制,它并没有一个daemon线程来定期的扫描Session信息并判断其是否失效,当一个有效的请求发生时,PHP 会根据全局变量 session.gc_probability和session.gc_divisor的值,来决定是否启用一个GC, 在默认情况下,session.gc_probability=1, session.gc_divisor =100也就是说有1%的可能性启动GC(也就是说100个请求中只有一个gc会伴随100个中的某个请求而启动).
PHP垃圾回收机制的工作就是扫描所有的Session信息,用当前时间减去session最后修改的时间,同session.gc_maxlifetime参数进行比较,如果生存时间超过gc_maxlifetime(默认24分钟),就将该session删除。
但是,如果你Web服务器有多个站点,多个站点时,GC处理session可能会出现意想不到的结果,原因就是:GC在工作时,并不会区分不同站点的session.