I found an easy solution here.
Do the following:
Navigate to the apache folder
cd /var/www/html
Ensure ownership of the folder (assuming signed in with ec2-user)
sudo chown ec2-user .
Download phpMyAdmin
wget https://files.phpmyadmin.net/phpMyAdmin/4.5.0.2/phpMyAdmin-4.5.0.2-all-languages.tar.bz2
Unzip
tar -jxf phpMyAdmin-4.5.0.2-all-languages.tar.bz2 -C /var/www/html
Rename the folder
mv phpMyAdmin-4.5.0.2-all-languages phpmyadmin
Remove the zip file
rm -rf phpMyAdmin-4.5.0.2-all-languages.tar.bz2
That's the basics. You can find more info in the link provided above.
http://superuser.com/questions/291230/how-to-install-phpmyadmin-on-linux-ec2-instance
2016年3月11日星期五
sudo -s 变超级用户
sudo -s 变超级用户
-V
|
显示版本编号
|
-h
|
会显示版本编号及指令的使用方式说明
|
-l
|
显示出自己(执行 sudo 的使用者)的权限
|
-v
|
因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
|
-k
|
将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
|
-b
|
将要执行的指令放在背景执行
|
-p
|
prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
|
-u
|
username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
|
-s
|
执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
|
-H
|
将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
|
command
|
要以系统管理者身份(或以 -u 更改为其他人)执行的指令
|
2016年2月25日星期四
ecshop修饰符preg_replace/e不安全的几处改动
主要集中在 upload/includes/cls_template.php 文件中:
1:line 300 :
原语句:
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
修改为:
return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
2:line 495:
原语句:
$out = "<?php \n" . '$k = ' . preg_replace("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";
修改为:
$replacement = preg_replace_callback("/(\'\\$[^,]+)/" ,
function($matcher){
return stripslashes(trim($matcher[1],'\''));
},
var_export($t, true));
$out = "<?php \n" . '$k = ' . $replacement . ";\n";
3:line 554: //zuimoban.com 转载不带网址,木JJ
原语句:
$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);
修改为:
$val = preg_replace_callback("/\[([^\[\]]*)\]/is",
function ($matcher) {
return '.'.str_replace('$','\$',$matcher[1]);
},
$val);
4:line 1071:
原语句:
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace($pattern, $replacement, $source);
修改为:
$source = preg_replace_callback($pattern,
function ($matcher) {
return '{include file=' . strtolower($matcher[1]). '}';
},
$source);
查看更多 ecshop教程 ecshop模板
ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback
是不是对最新版本的php 适配ecshop很苦恼.最近我就遇到了这个事情,最终我花了一个小时的时间把这个问题解决了.
特放出来,方便大家查阅.
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \includes\cls_template.php on line 300 的错误,请问我应该怎么改?
这个错误存在于ecshop 最高版本2.7.3 ,在php 5.4 以上版本都存在.
下面我列出需要改动的地方.
用editplus或者其他工具,不建议用记事本,因为可能会改变原有文件的编码格式.
第300行
原有内容:
//return preg_replace("/{([^\}\{
]*)}/e", "\$this->select('\\1');", $source);
修改后内容:
return preg_replace_callback("/{([^\}\{
]*)}/", function($r) { return $this->select($r[1]); }, $source);
第491行
原有内容:
//$out = "<?php
" . '$k = ' . preg_replace("/(\'\\$[^,] )/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";
";
修改后内容:
$out = "<?php
" . '$k = ' . preg_replace_callback("/(\'\\$[^,] )/" ,
function($match){return stripslashes(trim($match[1],'\''));}
, var_export($t, true)) . ";
";
第550行
原有内容:
//$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);
修改后内容:
$val = preg_replace_callback(
'/\[([^\[\]]*)\]/is',
function ($matches) {
return '.'.str_replace('$','\$',$matches[1]);
},
$val
);
第1080行
原有内容:
//$replacement = "'{include file='.strtolower('\\1'). '}'";
//$source = preg_replace($pattern, $replacement, $source);
修改后内容:
$source = preg_replace_callback($pattern,
function ($matches) { return '{include file='.strtolower($matches[1]). '}';},
$source);
替换为后,上传到服务器.然后进入后台,清空缓存即可.
( 2015-06-24 16:18:12 )
ECShop报错mktime(): You should be using the time() function instead in
时间:2016-01-18 18:15来源:未知 作者:最模板 点击:240次
ECShop安装之后,在后台发现一个错误提示: StrictStandards:mktime():Youshouldbeusingthe time() function instead in E:\web\shopex\admin\shop_config.php on line 32 这个错误提示的意思:mktime()方法不带参数被调用时
ECShop安装之后,在后台发现一个错误提示:
Strict Standards: mktime(): You should be using the time() function instead in E:\web\shopex\admin\shop_config.php on line 32
这个错误提示的意思:mktime()方法不带参数被调用时,会被抛出一个报错提示。
找到文件第32行:
$auth = mktime();
将mktime()替换成time()方法,代码为:
$auth = time();(责任编辑:最模板)
1 php5.4下安装的时候处理问题,Strict Standards: Non-static method cls_image::gd_version() should not be called statically in \install\includes\lib_installer.php on line 31
解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
将function gd_version()改成static function gd_version()即可。
2 安装好后出现Warning: require(languages//common.php): failed to open stream: No such file or directory in \includes\init.php on line 120
缓存问题 缺少配置信息 缺少文件temp\static_caches/shop_config.php
经测试在ecshop论坛http://help.ecshop.com/data/backup/ECShop_V2.7.3_UTF8_release1106.rar下载的文件有问题,重新到http://download.ecshop.com/2.7.3/ECShop_V2.7.3_UTF8_release1106.rar 下载后测试没问题。
3 安装好后出现 Strict standards: Only variables should be passed by reference in \includes\lib_main.php on line 1329
修改为:
Strict standards: Only variables should be passed by reference in \includes\cls_template.php on line 418
tag_sel = array_shift(explode(' ', $tag));
修改为:
array_shift() 的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值 end(&array) 也一样(后面也会有end的函数,也需要拆分为两行)。
修改后到后台更新缓存
4 后台 Strict standards: Redefining already defined constructor for class alipay in \includes\modules\payment\alipay.php on line 85
后台更新缓存
5 Strict standards: mktime(): You should be using the time() function instead in \admin\sms_url.php on line 31
php版本问题 mktime()修改为 time()
6 Strict standards: Redefining already defined constructor for class alipay in \includes\modules\payment\alipay.php on line 85Call Stack
这里是php4与php5的区别
PHP4中构造方法是一个与类同名的方法,而从PHP5开始,用__construct()做为构造方法,但仍然支持PHP4的构造方法。如果同时使用的话,如果 同名方法在前的话,则会报错
PHP4中构造方法是一个与类同名的方法,而从PHP5开始,用__construct()做为构造方法,但仍然支持PHP4的构造方法。如果同时使用的话,如果 同名方法在前的话,则会报错
只需要把 function __construct()移到同名函数之前
7 Deprecated: Assigning the return value of new by reference is deprecated in \admin\sitemap.php on line 46
$sm =& new google_sitemap();
在5.3版本之后已经不允许在程序中使用”=&”符号。如果你的网站出现了Deprecated: Assigning the return value of new by reference is deprecated in 错误,别着急,先定位到出错的文件,查找下是不是在程序中使用了”=&”,例如阿兹猫刚才定位到网站程序中发现了下图的程序,发现使用了”=&”符号,去掉‘&’符号之后程序运行正常。
8 PHPStrict Standards: Declaration of ucenter::login() should be compatible with integrate::login(username, password, remember=NULL)in\includes\modules\integrates\ucenter.phponline52PHPStrictStandards:Declarationofucenter::adduser()shouldbecompatiblewithintegrate::adduser( username, password, email, gender=−1, bday = 0, regdate=0, md5password = '') in \includes\modules\integrates\ucenter.php on line 52 PHP Strict Standards: Declaration of ucenter::set_cookie() should be compatible with integrate::set_cookie(username=′′, remember = NULL) in \includes\modules\integrates\ucenter.php on line 52
PHP5.4,子类的方法名如果和父类方法名相同,则子类的参数列表也要和父类的参数列相同。
修改接口文件里面的方法
修改接口文件里面的方法
9 ecshop2.7.3 gbk版在php5.4下安装后,分类名称文字不显示问题
htmlspecialchars()从 php5.4.0 版本开始第三个参数字符串编码的默认值改成了 UTF-8,而ecshop2.7.3 gbk版的中文编码是 GB2312 编码的,跟现在的默认参数不一致,导致所有htmlspecialchars()处理的字符都无法显示。
解决办法:
$str_converted = htmlspecialchars($str, ENT_COMPAT ,'GB2312');
建议php5.4下不要安装gbk编码ecshop。
Strict Standards: Only variables should be passed by reference in E:\Tools\ECShop_V2.7.3_UTF8_release1106\upload\includes\cls_template.phpon line 418 第418行:$tag_sel = array_shift(explode(' ', $tag));
解决办法 1 5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: $tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr); 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
在安装Ecshop的时候,遇到两个问题:
1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\www\ecshop\install\includes\lib_installer.php on line 31
解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
1)将function gd_version()改成static function gd_version()即可。
2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
$p = new cls_image(); return $p->gd_version();
2.检测环境的时候提示:是否支持 JPEG是不支持的。
解决:查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第100行,JPEG写成了JPG,正确的应该是:
$jpeg_enabled = ($gd_info['JPEG Support'] === true) ? $_LANG['support'] : $_LANG['not_support'];
为何说Ecshop写错了,因为我打印数组gdinfo的时候,里面的键名是:JPEGSupport。而 gd_info数组里的值都是直接调用系统环境变量的。
3.默认时区问题:Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in D:\X\www\ecshop\install\includes\lib_installer.php on line 225
解决:方法1,将php.ini里是date.timezone前的";"去掉,改成:date.timezone = PRC;
方法2,在页头使用 ini_set('date.timezone','Asia/Shanghai');
方法3,在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');
当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及。
关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合
1、admin/index.php
admin/sms_url.php
报错:Strict Standards: mktime(): You should be using the time() function instead in /data/web/ledetaoadmin/sms_url.php on line 31
$auth = mktime();
替换为:
$auth = time();
报错:Strict Standards: Only variables should be passed by reference in /data/web/includes/lib_main.php on line 1336
2、lib_main.php
$ext = end(explode('.', $tmp));
替换为:
$ext = end();
$ar = explode('.', $tmp);
$ext = end($ar);
继续报错 ECSHOP模板
Warning: end() expects parameter 1 to be array, null given in /data/web/includes/lib_main.php on line 1336
将刚刚的代码改成:
$arr=array();
$ext = end($arr);
$ar = explode('.', $tmp);
$ext = end($ar);
3、cls_template.php
$tag_sel = array_shift(explode(' ', $tag));
替换为: ECSHOP模板
$tag_arr = explode(' ', $tag);
$tag_sel = array_shift($tag_arr);
4、cls_captcha.php
/**
* 构造函数
*
* @access public
* @param
*
* @return void
*/
function __construct($folder = '', $width = 145, $height = 20)
{
$this->captcha($folder, $width, $height);
}
移动到:
/**
* 构造函数
*
* @access public
* @param string $folder 背景图片所在目录
* @param integer $width 图片宽度
* @param integer $height 图片高度
* @return bool
*/
前面
5、admin\includes\cls_sql_dump.php
/**
* 类的构造函数
*
* @access public
* @param
*
* @return void
*/
function __construct(&$db, $max_size =0)
{
$this->cls_sql_dump($db, $max_size);
}
移动到:
/**
* 类的构造函数
*
* @access public
* @param
*
* @return void
*/
前面
Strict Standards: Redefining already defined constructor for class chinabank in /data/web/includes/modules/payment/chinabank.php on line 85
Strict Standards: Redefining already defined constructor for class paypal_ec in /data/web/includes/modules/payment/paypal_ec.php on line 96
Strict Standards: Redefining already defined constructor for class shenzhou in /data/web/includes/modules/payment/shenzhou.php on line 81
Strict Standards: Redefining already defined constructor for class ips in /data/web/includes/modules/payment/ips.php on line 82
Strict Standards: Redefining already defined constructor for class balance in /data/web/includes/modules/payment/balance.php on line 79
Strict Standards: Redefining already defined constructor for class alipay in /data/web/includes/modules/payment/alipay.php on line 85
Strict Standards: Redefining already defined constructor for class tenpay in /data/web/includes/modules/payment/tenpay.php on line 83
Strict Standards: Redefining already defined constructor for class post in /data/web/includes/modules/payment/post.php on line 79
Strict Standards: Redefining already defined constructor for class paypal in /data/web/includes/modules/payment/paypal.php on line 82
Strict Standards: Redefining already defined constructor for class tenpayc2c in /data/web/includes/modules/payment/tenpayc2c.php on line 83
Strict Standards: Redefining already defined constructor for class cappay in /data/web/includes/modules/payment/cappay.php on line 81
Strict Standards: Redefining already defined constructor for class bank in /data/web/includes/modules/payment/bank.php on line 79
Strict Standards: Redefining already defined constructor for class kuaiqian in /data/web/includes/modules/payment/kuaiqian.php on line 83
Strict Standards: Redefining already defined constructor for class cod in /data/web/includes/modules/payment/cod.php on line 82
Strict Standards: Redefining already defined constructor for class paypal_ec in /data/web/includes/modules/payment/paypal_ec.php on line 96
Strict Standards: Redefining already defined constructor for class shenzhou in /data/web/includes/modules/payment/shenzhou.php on line 81
Strict Standards: Redefining already defined constructor for class ips in /data/web/includes/modules/payment/ips.php on line 82
Strict Standards: Redefining already defined constructor for class balance in /data/web/includes/modules/payment/balance.php on line 79
Strict Standards: Redefining already defined constructor for class alipay in /data/web/includes/modules/payment/alipay.php on line 85
Strict Standards: Redefining already defined constructor for class tenpay in /data/web/includes/modules/payment/tenpay.php on line 83
Strict Standards: Redefining already defined constructor for class post in /data/web/includes/modules/payment/post.php on line 79
Strict Standards: Redefining already defined constructor for class paypal in /data/web/includes/modules/payment/paypal.php on line 82
Strict Standards: Redefining already defined constructor for class tenpayc2c in /data/web/includes/modules/payment/tenpayc2c.php on line 83
Strict Standards: Redefining already defined constructor for class cappay in /data/web/includes/modules/payment/cappay.php on line 81
Strict Standards: Redefining already defined constructor for class bank in /data/web/includes/modules/payment/bank.php on line 79
Strict Standards: Redefining already defined constructor for class kuaiqian in /data/web/includes/modules/payment/kuaiqian.php on line 83
Strict Standards: Redefining already defined constructor for class cod in /data/web/includes/modules/payment/cod.php on line 82
解决办法:
将所有的构造函数放到前面:
如alipay.php
将
function __construct()
{
$this->alipay();
}
放到
function alipay()
{
}
前面。
订阅:
博文 (Atom)