今天在ubuntu上搭建了lamp环境,想本地调试一下wordpress,本来一切都非常顺利,但是到了安装插件的时候却提示:
要执行请求的操作,WordPress需要访问您网页服务器的权限.请输入您的FTP登录凭据以继续.如果您忘记了您的登录凭据(如用户名,密码),请联系您的网站托管商

这是肿么回事呢?是我的环境问题,还是别的问题呢?
经过一段时间的测试终于确定,这是本地权限的问题,因为apache2的运行用户是www-data,而不是你的当前用户。意思就是就算你拥有网站根目录的全部权限也是不行的,因为在wordpress中新上传的插件的权限都是www-data用户的,而不是你的,然后你需要解压这个插件压缩包来进行安装,但是你却没有它的使用权限,所以出现“WordPress 需要访问您网页服务器的权限”问题。


说了这么多,怎么解决呢?很简单:

方法一:

如果不是自己编译的LAMP环境,那么网站的根目录都会是/var/www/,那么把wprdpress解压到此目录后,执行

  1. sudochown-R www-data /var/www/wordpress
  2. sudochmod-R775/var/www/wordpress

这样就完全解决问题了.注意了,不需要把/var/www/目录的所有者也设置为www-data,而只需要设置wordpress文件夹的所有者.

方法二:

wp-config.php里加入下面代码:

  1. define(“FS_METHOD”, “direct”);
  2. define(“FS_CHMOD_DIR”, 0777);
  3. define(“FS_CHMOD_FILE”, 0777);

这个方法的原理也是和方法一的一样,它是直接在上传的时候把权限修改了,而方法一是在任何时候都拥有上传文件的权限。

方法三:

把apache2的运行用户改为你的当前用户

方法四:

把你的当前用户添加到www-data用户组

Magento数据库迅速膨胀,主要是由于一些日志数据的剧增,可以通过Magento自身的cron定时清理日志。
另外一种又快又好的办法是执行SQL清理,如下:
truncate dataflow_batch_export;
truncate dataflow_batch_import;
truncate log_customer;
truncate log_quote;
truncate log_summary;
truncate log_summary_type;
truncate log_url;
truncate log_url_info;
truncate log_visitor;
truncate log_visitor_info;
truncate log_visitor_online;
truncate report_viewed_product_index;
truncate report_compared_product_index;
truncate report_event;
set foreign_key_checks = 0;
truncate index_process_event;
truncate index_event;
set foreign_key_checks = 1;
数据库清理数据有风险,请注意备份好数据库。

Apache
在Apache下,利用mod_rewrite来实现URL的静态化。

编写一个.htaccess的内容如下:
# BEGIN WordPress

RewriteEngine On 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

上传到主机空间即可

Magento新站上线伊始,不料在邮件上遇到了问题。此时常用的邮件模板已经编辑完毕,诸如New Account, New Order, Password Forget等。 CentOS下发送邮件很简单的,只需安装sendmail就可以了,安装sendmail也很简单,只需yum install sendmail就可以了,Magento发送邮件也很简单,只需要在管理员后台设置发件人名称和邮箱就可以了。那么问题到底出在哪里呢? 几句话说不清楚,不如直接看图:

magento-send-mail-setting-1 magento-send-mail-setting-2

1. 在收件箱列表中,发件人为 www
2. 在邮件标题部分,出现 由([email protected]代发) 的安全提示。

客人收到邮件后,十有八九会认为网站太不专业不正规! 可能会有人问,上面的 [www] 和 [magentoeye.magentoeye.com] 是从哪里来的?问的好哇![magentoeye.magentoeye.com] 是网站服务器主机名字。 在服务器上运行 hostname 命令,就可以看到以下结果:

1 # hostname
2 magentoeye.magentoeye.com

其中,前部分的[magentoeye]是真正的host name,后一部分的[magentoeye.com]是域名(domain)。另一个问题的答案为:[www]是执行PHP脚本进程的用户名。sendmail发送邮件时,如果没有指定附加参数,默认它会把当前主机名作为邮件服务器、 以及命令它发邮件的Linux用户名作为发件者,加入到邮件头部信息。

好了,扯这么多,如何解决这两个问题,让Magento邮件看起来更专业呢?虽然寻找答案不容易,但操作起来很简单的。 只需在Admin -> System -> Configuration -> ADVANCED -> System -> Mail Sending Settings 中设置 [Set Return-Path] 的值为 [Yes]。如下图所示:

magento-send-mail-setting-3

保存设置后,再让Magento发送一次邮件,收到邮件后,效果如下:

magento-send-mail-setting-4 magento-send-mail-setting-5

看起来好多了,仍有些瑕疵,比如在邮箱列表中,希望看到的发件人是[MagentoEye.com],而不是[Support]。这也好办,设置下发件人名字即可,如下:

magento-send-mail-setting-6

最终效果如下:

magento-send-mail-setting-7

今日新购一个linode vps尝试使用WDCP控制面板,感觉这控制面板功能很是强大,但是当我安装wordpress的时候却发现了一个严重的问题。在安装第二步输入了数据库的信息之后,点击下一步就开始502了,为此查阅了网上很多内容都无济于事。最终总算被我找到。

mv /usr/lib64/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6.bak

参考 http://lyp.cn/444_lnmp_wordpress-3-8-1_nginx_502-bad_gateway