推荐一下提供git服务的网站 https://bitbucket.org/phpbird ,和https://github.com/差不多,但是可以有无限的private repositories。
git出来好多年了,没怎么用过,有用过的同学可以来交流一下。
标签归档:php
国外vps推荐
CentOS 6 PHP Mcrypt 支援問題
剛有學生詢問在 CentOS 6 底下 PHP 怎麼沒有 php-mcrypt 模組可以安裝,看了一下光碟內容確實沒這些套件,解決方式如下,可以透過EPEL (Extra Packages for Enterprise Linux) 套件庫來解決缺少的相關套件:
首先,安裝對應的Release檔案:rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
接著,更新套件庫:yum update
更新後,可以透過 yum repolist 看到套件庫清單中已經有一個新的套件庫,名稱為 epel
之後再試試看 yum install php-mcrypt 便可以透過 epel 套件庫來安裝
转自:http://figaro.neo-info.net/?p=754&cpage=1#comment-300
Deprecated: Function session_register() is deprecated
php从5.2.x升级到5.3.2.出来问题了。有些原来能用的程序报错了。
报错内容是
Deprecated: Function session_register() is deprecated
查了一下是5.3这个session_register就不让用了,降回去?不爽。
搜了一把,有个解决方法是写一个函数
<?php // Fix for removed Session functions function fix_session_register(){ function session_register(){ $args = func_get_args(); foreach ($args as $key){ $_SESSION[$key]=$GLOBALS[$key]; } } function session_is_registered($key){ return isset($_SESSION[$key]); } function session_unregister($key){ unset($_SESSION[$key]); } } if (!function_exists('session_register')) fix_session_register(); ?>
查了一下出现这个问题的地方不多,找到了另外一个方法,直接
把
session_register( “abc” ) ;
改成
$_SESSION[‘abc’] = null;
即可
freebsd升级mysql client
mysql serve 是5.1.x的,客户端是 5.0.x的,用phpmyadmin,总有一个提示,说版本不匹配,感觉不爽。
用Ports的方法升级客户端,不行,报错。说5.1和5.0有冲突,只能先删除。
用了 portmaster -o databases/mysql51-client mysql-client-5.0.89
也不行。
加上 export CONFLICTS=” 后执行,还是不行。看了
pkg_info mysql\*
有
Required by:
php5-mysql-5.2.12
php5-mysqli-5.2.12
因为还跑着网站,就没敢贸然行事。
这天趁网站人少的时候,干了一把
删除老的package
#pkg_delete -f mysql-client-5.0.89
到mysql5.1 client的目录
#cd /usr/ports/databases/mysql51-client
装
#make install clean
。。
。。
等待
。。
好了看一下版本
#mysql -V
mysql Ver 14.14 Distrib 5.1.42, for portbld-freebsd8.0 (amd64) using 5.2
用portmaster升级2个有依赖的php组件
#portmaster php5-mysql php5-mysqli
等待
。
。
重启apache,好了。
出乎意料的是安装过程中,php可以正常的链接mysql。网站正常,还以为pkg_delete会删除使用的so文件,导致网站出状况。
感谢hshh
ecshop 2.6.2 sitemaps.php的一个bug
生成的sitemap文件,商品分类文件,如果是
http://www.abc.com/category-1-b0.html
在sitemap文件里面少了一个”/”
结果变成了
http://www.abc.comcategory-1-b0.html
分类是
修改代码
sitemaps.php大约第66行
把
'loc' => "$site_url" . build_uri('category', array('cid' => $row['cat_id'])),
改成
'loc' => "$site_url/" . build_uri('category', array('cid' => $row['cat_id'])),
即可
FCKEditor XML Request Error:Internal Server Error(500)
原来一直能用的ecshop后台信息发布里面的fckeditor上传功能,换了个机器后不能用了。以为是文件损坏,上传一边不行。
什么xml错误,还弹出一个大的JavaScript alert警告框,内容就是服务器端错误的500内容
网上搜,又说是配置问题,主题问题,想想都不应该,直接请求
filemanager/connectors/php/connector.php
出了服务器的500错误,html文件能访问,txt也行。
后来从根目录开始查,发现到fckeditor目录里面的php文件开始不能访问。
改了fckeditor目录的属性为755,问题解决。
修改ecshop后台admin目录为任意目录名
ecshop有个地方配置admin的目录名
data/config.php
的
$admin_dir = “admin”;
但是直接改不行,因为很多地方,这个目录名字被硬编码进去了,直接改会有很多地方报错。
网上搜到一篇文章,整理了一些需要修改的地方,内容转帖如下:
1.修改data/config.php 1. $admin_dir = "admin"; 修改成 1. $admin_dir = "新目录名"; 2.修改admin/index.php 1. //货号 2. require_once(ROOT_PATH . 'admin/includes/lib_goods.php'); 修改成 1. require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php'); 3.修改admin/database.php 1. require_once(ROOT_PATH . 'admin/includes/cls_sql_dump.php'); 修改成 1. require_once(ROOT_PATH . $admin_dir.'/includes/cls_sql_dump.php'); 4.修改admin/get_password.php 1. $reset_email = $ecs->url() . 'admin/get_password.php?act=reset_pwd&uid='.$admin_id.'&code='.$code; 2. 修改成 3. $reset_email = $ecs->url() . $admin_dir.'/get_password.php?act=reset_pwd&uid='.$admin_id.'&code='.$code; 5.修改admin/goods.php 1. require_once(ROOT_PATH . '/admin/includes/lib_goods.php'); 2. 修改成 3. require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php'); 6.修改admin/check_file_priv.php 1. $dir[] = 'admin'; 2. 修改成 3. $dir[] = $admin_dir; 7.修改admin/includes/init.php 1. if (file_exists(ROOT_PATH . 'data/config.php')) 2. { 3. include(ROOT_PATH . 'data/config.php'); 4. } 5. else 6. { 7. include(ROOT_PATH . 'includes/config.php'); 8. } 9. 修改成下面代码,并将代码移至“/* 取得当前ecshop所在的根目录 */”注释之前。 10. if (file_exists('../data/config.php')) 11. { 12. include('../data/config.php'); 13. } 14. else 15. { 16. include('../includes/config.php'); 17. } 1. define('ROOT_PATH', str_replace('admin/includes/init.php', '', str_replace('\\', '/', __FILE__))); 2. 修改成 3. define('ROOT_PATH', str_replace($admin_dir.'/includes/init.php', '', str_replace('\\', '/', __FILE__))); 1. require(ROOT_PATH . 'admin/includes/lib_main.php'); 2. 修改成 3. require(ROOT_PATH . $admin_dir.'/includes/lib_main.php'); 1. require(ROOT_PATH . 'admin/includes/cls_exchange.php'); 2. 修改成 3. require(ROOT_PATH . $admin_dir.'/includes/cls_exchange.php'); 1. $smarty->template_dir = ROOT_PATH . 'admin/templates'; 2. 修改成 3. $smarty->template_dir = ROOT_PATH . $admin_dir.'/templates'; 1. $admin_path = preg_replace('/:\d+/', '', $ecs->url()) . 'admin'; 2. 修改成 3. $admin_path = preg_replace('/:\d+/', '', $ecs->url()) . $admin_dir; 8.修改include/lib_main.php 1. include_once(ROOT_PATH . 'admin/includes/lib_template.php'); 修改成 1. 2. global $admin_dir; 3. include_once(ROOT_PATH . $admin_dir.'/includes/lib_template.php'); 9.修改include/cls_ecshop.php 1. $curr = strpos(PHP_SELF, 'admin/') !== false ? 2. preg_replace('/(.*)(admin)(\/?)(.)*/i', '\1', dirname(PHP_SELF)) : 3. dirname(PHP_SELF); 修改成 1. global $admin_dir; 2. $curr = strpos(PHP_SELF, $admin_dir.'/') !== false ? 3. preg_replace('/(.*)('.$admin_dir.')(\/?)(.)*/i', '\1', dirname(PHP_SELF)) : 4. dirname(PHP_SELF); 10.如果担心$admin_dir变量注入安全问题可以在data/config.php文件中define('EC_CHARSET','utf-8');后增加 1. define('ADMIN_DIR','新目录名'); 然后将所有修改的$admin_dir变量修改成ADMIN_DIR,例如: 1. require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php'); 2. 修改成 3. require_once(ROOT_PATH . ADMIN_DIR.'/includes/lib_goods.php'); 11.根据pjb126 网友提示修改/admin/picture_batch.php 将 1. include_once(ROOT_PATH . '/admin/includes/lib_goods.php'); 2. 修改成 3. include_once(ROOT_PATH .$admin_dir.'/includes/lib_goods.php'); 12.新增修改quotation.php 1. include_once(ROOT_PATH . 'admin/includes/lib_main.php'); 修改成 1. 2. global $admin_dir; 3. include_once(ROOT_PATH . $admin_dir.'/includes/lib_main.php');
但是,我改过这些之后,还发现可能还有三个文件需要修改
admin/filecheck.php:
api/client/includes/lib_api.php
ecshopfiles.md5
关键字 ‘admin’
如何在wordpress的the_excerpt中使用nextgen-gallery(NGG)图片
NextGEN gallery是个很不错的wordpress相册插件。
新版本的wordpress有了一个the_excerpt的方法可以用,原来就有?不知道。
the_excerpt主要是调用原来的摘要部分,供模板调用。但是和the_content的区别是,the_excerpt里面不支持nextgen-gallery(NGG)的singpic,gallery等标签不能用。如果在模板里面用了the_excerpt,但是又想显示图片就不方便了。
用的是1.1.0版本,查了一下代码,找到
lib\shortcodes.php
的
class NextGEN_shortcodes
大概在18行,看到一行注释,说如果在the_excerpt里面用会有不期望的输出。如果你高兴就去掉下面的注释。
// add_filter('the_excerpt', array(&$this, 'convert_shortcode')); // add_filter('the_excerpt', 'do_shortcode', 11);
改成
add_filter('the_excerpt', array(&$this, 'convert_shortcode')); add_filter('the_excerpt', 'do_shortcode', 11);
测试可以,没发现啥异常。先用着吧。
——————–
新的版本已经去掉了这2行,要自己加进去。
ecshop关闭版本检查的功能
要修改如下几个文件
\upload\admin\shop_config.php(205):
\upload\install\includes\lib_installer.php(734):
\upload\admin\templates\start.htm
\upload\admin\templates\menu.htm
备案