Linux-find:自动设置文件的所有人

网站程序在关键的地方有输出日志,日志文件以日期为文件名,每天一个,同时也开启了计划任务也会执行这个关键地方的代码,这就造成计划任务执行后新建日志文件后,所有者为root,结果,前台执行的时候就会发生错误,老是提示权限不足的问题(关键词Permission denied….)。

怎么办呢?老是这么提示也不是办法,那就使用定时任务,定时查询日志目录的文件权限。

# crontab -e

1 */1 * * * find /data2/ -type f -user root -exec chown www:www {} \;

然后保存,就会每小时执行一次。

如果时间不懂得设置的话,可以使用下面的工具协助设置:crontab执行时间计算

当然,你要是觉得这样子很麻烦的,其实,你还可以直接使用www账户登录设置计划任务的。

域名在阿里万网,这么代续费

今天,因为种种的原因,居然发现公司下的一个项目域名居然到期三天还未续费,访问打不开了,只好到处找账号密码。

我们知道域名在哪里注册的,就只能在哪里续费,所以,如果有人告诉你,你的域名到期了,但是你从来不记得是在对方那边注册域名的,那么,请不要相信,因为他十有八九是骗你的。

不过,今天,我提交工单,居然发现,在阿里万网注册的域名,你可以不用找原先的注册商续费了,你可以用自己的账户给域名续费。

也许,这个服务不怎么神奇,主要是你没有经历,当年域名续费乱象的缘故,这些都不要紧,你只要知道你能帮人续费了。

这个有什么用呢?

比如你的域名到期了,续费费用只要50或者100元,而你的服务商可能收你100或者200元。

那么,我告诉你,你的续费费用是200或者300元。

早期,这笔费用我收了白收的,因为我没办法给你续费的,但是现在我可以了,只要我查一下,你的续费费用是50或者100元,然后,多的钱就是我的了。

具体流程如下:

详细请查阅《域名续费

域名代续费

域名代续费即指通过 A 账号为 B 账号下的域名进行续费。只要您有一个可以正常登录的阿里云会员账号,就可以直接对域名进行代续费操作。

适用场景:长时间不管理,忘记域名所在阿里云账号或账号密码,且账号下的手机和邮箱不可用,域名即将到期或处于续费宽限期。

支持代续费的域名:阿里云会员账号下注册的域名(渠道商下域名除外),且在可续费期限内的域名(.hk 域名和海外域名除外)。

代续费操作步骤如下:

  1. 通过阿里云会员账号 B 登录 阿里云域名代续费(若您无阿里云会员账号 B,需注册一个)。
  2. 单击 开始代续费
  3. 输入需续费的域名,单击 下一步
  4. 选择续费年限,单击 提交

系统将自动从账户余额中扣除相应金额,代续费成功。您可以进入 whois 域名信息查询 查询域名的到期时间,以确认域名是否续费成功。

注意:

  • 域名代续费只是对域名进行续费,域名的管理权限仍在原阿里云会员账号下。若您需要管理域名,仍需找回原阿里云会员账号,您可以通过 人工申诉 方式找回。
  • 域名代续费成功后,只有代续费一方可以申请发票。每个账号只能设置一个有效的发票抬头进行使用。
  • 域名代续费只能使用账户余额付款,提交订单前,请确保账号下有充足的余额。
  • 待续费成功后,会以短信、邮件方式通知代续和被续双方。

BackWPup备份WP全站

BackWPup是一款可以完整备份WP建站程序的插件。

安装

进入后台,在插件\安装插件\关键词输入BackWPup

然后你会看到

BackWPup – WordPress Backup Plugin这个插件,由Inpsyde GmbH开发的。

安装之后,启用。

在后台左边面板上会出现BackWPup的控制项,选择add new job后,根据选项填写。

主要选项如下:

job name:随便叫一个名字,不要看不懂就行。

job tasks:任务备份的选项,全站备份的话全部选择。

job destination:备份方式,怎么保存备份文件。请选择Backup to Folder就行。我们可以直接下载。

然后点击save changes就可以了。

接着在左边BackWPup的控制项,选择jobs后,你会看到你刚才新建的任务。

鼠标移动上去,然后选择Run now就可以了,剩下的就是等待。

等任务百分百后,在BackWPup的控制项,选择backups后你会看到多了一条记录,这个记录就是你的备份文档。

鼠标移到第二列,就是File列,然后你会看到多个一个delete跟download,按照你的需要点击吧。

备份完成哈。

最想要替代的应用

今天早上,在享受过不舒服服务经历后,我忽然觉得我特想取代的应用有如下。

这是我最近超级讨厌的应用了,拼多多我已经卸载了,百胜的公司还在用…

最喜欢看你看我不顺眼,却又干不掉我的样子……

慢慢来,总有机会,我会慢慢干掉这些看着不舒服的应用的。

  1. 拼多多,特价商品平台。
  2. 百胜efast365,ERP系统。

NGINX-设置phpmyadmin的别名(alias)以子目录的形式访问

最近买了一个云主机,这次用的系统是CentOS7的,安装了LNMP(LEMP)套装,然后用yum安装了phpmyadmin结果发现悲剧了~Apache的设置文档有,可以直接子目录的形式访问,但是Nginx的呢?

最简单的当然是新建一个站,网上基本上都是这类的,要是新建一个新站来访问,我还要这么麻烦做什么呢?!

下面就是我找到的能用的代码,能让你的网站以子目录的形式访问噢。

效果就是加了这个代码的网站直接就可以用:

http://www.ipodmp.com/phpmyadmin

这样子的形式访问。

location ~ ^/phpmyadmin/(.*\.php)$ {
    alias /usr/share/phpMyAdmin/$1;
    fastcgi_pass 127.0.0.1:9000; # OR unix:/var/phpfpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
}

Linux系统 Nginx Apache MySQL PHP 编译参数查看命令汇总

从前人手上接过服务器的话,最烦恼的就是以前编译的参数是那些,现在可以用下面的命令直接查看了噢。

本文摘自《云服务器 ECS Linux系统 Nginx Apache MySQL PHP 编译参数查看命令汇总

查看 nginx 编译参数


  1. root@ubuntu:~# nginx -V
  2. nginx: nginx version: nginx/1.0.8
  3. nginx: built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
  4. nginx: TLS SNI support enabled
  5. nginx: configure arguments: --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-http_stub_status_module --with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --add-module=../substitutions4nginx-read-only --add-module=../ngx_cache_purge-1.4 --add-module=../ngx_http_upstream_keepalive-d9ac9ad67f45 --add-module=../agentzh-memc-nginx-module-5b0504b --add-module=../agentzh-srcache-nginx-module-10d968e

查看 apache 编译参数


  1. root@ubuntu:~# cat /usr/local/apache2/build/config.nice
  2. #! /bin/sh
  3. #
  4. # Created by configure
  5. "./configure" \
  6. "--prefix=/usr/local/apache2" \
  7. "--with-included-apr" \
  8. "--enable-so" \
  9. "--enable-deflate=shared" \
  10. "--enable-expires=shared" \
  11. "--enable-rewrite=shared" \
  12. "--enable-static-support" \
  13. "--disable-userdir" \
  14. "$@"

查看 mysql 编译参数


  1. root@ubuntu:~# find /usr -name mysqlbug
  2. /usr/bin/mysqlbug
  3. root@ubuntu:~# cat "/usr/bin/mysqlbug"|grep configure
  4. # This is set by configure
  5. CONFIGURE_LINE="../configure '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--prefix=/usr' '--exec-prefix=/usr' '--libexecdir=/usr/sbin' '--datadir=/usr/share' '--localstatedir=/var/lib/mysql' '--includedir=/usr/include' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-server-suffix=-3ubuntu12.7' '--with-comment=(Ubuntu)' '--with-system-type=debian-linux-gnu' '--enable-shared' '--enable-static' '--enable-thread-safe-client' '--enable-assembler' '--enable-local-infile' '--with-pstack' '--with-fast-mutexes' '--with-big-tables' '--with-unix-socket-path=/var/run/mysqld/mysqld.sock' '--with-mysqld-user=mysql' '--with-libwrap' '--without-readline' '--with-ssl' '--without-docs' '--with-extra-charsets=all' '--with-plugins=max' '--without-ndbcluster' '--with-embedded-server' '--with-embedded-privilege-control' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=gcc' 'CFLAGS=-O3 -DBIG_JOINS=1 -fno-strict-aliasing' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS=' 'CXX=g++' 'CXXFLAGS=-O3 -DBIG_JOINS=1 -felide-constructors -fno-exceptions -fno-rtti -fno-strict-aliasing'"

查看 php 编译参数


  1. root@ubuntu:~# php5-fpm -i|grep configure
  2. Configure Command => './configure' '--prefix=/usr/local/php-5.3.3' '--with-config-file-path=/etc/php5' '--with-mcrypt' '--with-gettext' '--with-mysql' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-curl' '--with-freetype-dir' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-fpm' '--with-zlib' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--enable-xml' '--enable-bcmath' '--with-mhash'

 

rpm -qa |grep php 查看安装包的版本

Curl error: Problem with the SSL CA cert (path? access rights?)

今天发现微信公众号的JSSDK没办法工作了,提示是签名错误,哎呀,昨天可以用,今天却不行,真痛苦~

经过调试发现是jsapi_ticket的值为空,那就好玩了,这个怎么会是空呢?!

又继续跟踪下去,因为程序本身就没有错误输出,那么增加错误输出。

        $curl = curl_init();
        // ......
        $res = curl_exec($curl);
        
        if( $res === false ){
            echo '调用错误: ' . curl_error($curl);
        }else{
            echo '没有错误噢~';
        }

然后就出现错误提示了:

Curl error: Problem with the SSL CA cert (path? access rights?)

网上找了一下《 curl call error(77): Problem with the SSL CA cert (path? access rights?)

然后原因基本正确,因为昨天我对系统做了yum update操作了。

重启一下

service php-fpm restart

然后恢复正常。

Warning: http_build_query(): Parameter 1 expected to be Array or Object. Incorrect value given in …

今天,在开发微信公众号发送模板消息的时候调用ECSTORE系统的发送模块base_httpclient类。结果死活出错误,一直提示:

Warning: http_build_query(): Parameter 1 expected to be Array or Object.  Incorrect value given in /data/ECS_Site/Demo/app/base/lib/curl.php on line 31

其他时候基本上没有,没有看到错误,可能也许大概没有错误,但是增加模板调用就会出现错误,所以调试一圈发现没有涉及到相关的其他调用,完全是系统本身的调用,不知道哪里涉及到了,没时间一步步的调试了。

根据错误提示:

参数1预计的参数是数组或者对象,错误的值在…

好吧翻译的有点问题但是基本的意思我们懂啦,查看手册发现http_build_query()这个方法的参数1是:可以是数组或包含属性的对象。

那么问题就在于调用的时候不是这两类的类型。

查看错误代码所在的上下文发现,这个参数的来源可能是null类型,好吧,所以增加一个判断,问题解决。

至于会不会造成其他的错误那就不好说了噢。