configure: error: Cannot find libmysqlclient under /usr解决办法

通过查找64位机器上面libmysqlclient.so在 /usr/lib64/mysql/libmysqlclient.so里面

php默认会到/usr/lib/libmysqlclient.so 查找。

[bash]

cp  /usr/lib64/mysql/libmysqlclient.so  /usr/lib/libmysqlclient.so

[/bash]

参考:

http://wangmukun.blog.51cto.com/651644/236029

发表在 笔记 | 留下评论

openssl编译动态扩展

openssl 1.0.1编译动态扩展的时候

[bash]

./config –prefix=/usr/local/openssl -d shared

[/bash]

加上-d 的时候出现如下错误

/usr/bin/ld: libcrypto.a(x86_64-gcc.o): relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC

openssl

换成下面的方式就正常了。

[bash]

./config no-asm shared –prefix=

[/bash]

发表在 笔记 | 2条评论

centos安装vsftp

[bash]

yum install vsftpd

useradd -d /var/www/html/ -s /sbin/nologin ftp_user

passwd ftp_user

vim /etc/vsftpd/vsftpd.conf

[/bash]

将anonymous_enable改为NO,阻止匿名上传
将chroot_list_enable和chroot_list_file的注释去掉,阻止用户访问上级目录

在/etc/vsftpd下建立chroot_list文件
建立完成后,在其中添加用户ftp_user,(一行一个)使其只允许访问指定目录。

重启

[bash]

/etc/init.d/vsftpd restart

[/bash]

参考:

http://cuimk.blog.51cto.com/6649029/1306637

发表在 笔记 | 留下评论

解决curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

最近一台测试机器使用curl访问 https://api-3t.sandbox.paypal.com/nvp,报如下错误。

curl

在其他机器上访问确是正常的。可能是openssl库引起,打算升级下openssl库

[bash]
wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1.tar.gz
tar xvf openssl-1.0.1.tar.gz
cd openssl-1.0.1
./config –prefix=/usr/local/openssl
make && make install
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" /etc/ld.so.conf
/sbin/ldconfig -v
openssl version -a
[/bash]

查看版本

opensslversion

编译Curl

[bash]
wget https://curl.haxx.se/download/archeology/curl-7.15.0.tar.gz
tar xvf curl-7.15.0.tar.gz
cd curl-7.15.0
./configure –disable-shared –prefix=/usr/local/curl –with-ssl=/usr/local/openssl/
make && make install
/usr/local/curl/bin/curl -V
#如果编译报relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC错误 请在 configure 后面加上 disable-shared
[/bash]

curlversion

发现 OpenSSl版本为1.0.1

再次测试

[bash]
/usr/local/curl/bin/curl https://api-3t.sandbox.paypal.com/nvp
[/bash]

curl_paypal

可能由于CA过期,于是到,https://curl.haxx.se/ca/cacert.pem下载最新的CA ,重新编译curl进Curl,cacert.pem是从https://curl.haxx.se/ca/cacert.pem下载下来的。/etc/pki/tls/certs/ca-bundle.crt是目标位置。

[bash]
./configure –disable-shared –prefix=/usr/local/curl –with-ssl=/usr/local/openssl/  –with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt –with-ca-path=cacert.pem
[/bash]

再次访问,成功了。

[bash]
/usr/local/curl/bin/curl    https://api-3t.sandbox.paypal.com/nvp
[/bash]

参考文档:

http://www.jb51.net/LINUXjishu/287588.html

https://curl.haxx.se/docs/sslcerts.html

https://curl.haxx.se/ca/cacert.pem

https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1766&expand=true&locale=en_US

发表在 笔记 | 留下评论

卡西欧EF550更换电池

几年前淘宝买的EF550,我估计是高仿的,中间好几年没有戴过,最近翻出来发现不走了,可能没电了吧,去外面买了个电池,型号是SR927W,纽扣电池(氧化银)。买了25元,也不知道真假。

IMG_20160205_212915

由于没有工具,找来起子,用起子顶住后盖的卡口处,逆时针旋转。

IMG_20160205_212955

取出来的电池。

IMG_20160205_213051

将新的电池更换进去,可以用起子挑起电池旁边的弹片。将电池卡住,盒盖,用起子顺时针拧紧。

发表在 经验分享 | 标签为 | 留下评论

linux命令行下如何保持用户名密码

在服务器上pull最新测试资源十分不便,每次都得输入密码。采用在客户端保存密码,避免每次输入。

cd ~
touch .git-credentials
vim .git-credentials
https://{username}:{password}@github.com
git config --global credential.helper store

发表在 笔记 | 留下评论

php file_get_contents函数谨慎使用

最近我们的一个服务器由香港迁移到国内,开始几天还算正常。突然,有一天测试通知我们说不能支付了,页面白屏,原来页面504 Time Out 了,随后我们查看了下日志model层已经都走完了,当时并没有去怀疑view层问题,把目标投向服务器配置,最后还是没有发现问题,后来我们干脆把view层写成空白的,程序能成功执行,看来问题在view层,后来我们发现是使用了file_get_contents 函数造成的,由于在国内GFW原因file_get_contents 去请求yahoo的一个汇率接口导致超时。而且file_get_contents 并不受 set_time_limit 设置影响。

从PHP5开始 file_get_contents支持context,我们可以在 context中设置time out 避免整个页面的超时。

发表在 笔记 | 留下评论

(gnome-ssh-askpass:24029): Gtk-WARNING **: cannot open display:

git clone 时候报错

20160120102326

(gnome-ssh-askpass:24029): Gtk-WARNING **: cannot open display:

unset SSH_ASKPASS

发表在 笔记 | 留下评论

extension与zend_extension区别

最近编译了很多PHP扩展,有的使用zend_extension加载,有的使用extension加载,一直不明白这两种有什么区别,又来才明白。

1.zend_extension加载zend引擎的扩展,extension是加载php的扩展。
2.zend_extension使用绝对路径,extension基于extension_dir路径加载。

发表在 笔记 | 留下评论

php如何使用activemq

公司需要用到activemq,也趁这个机会学习了下activemq
1.安装java环境
jdk可以到http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载,可以下载rpm包安装

tar xvf jdk-8u65-linux-i586.tar.gz
mv jdk1.8.0_65/ /usr/local/java
vim /etc/profile

在底部加入下面的环境变量
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

20160115162811

然后重新登陆ssh

java -version

20160115163201

1.下载activemq

wget http://ftp.jaist.ac.jp/pub/apache/activemq/5.13.0/apache-activemq-5.13.0-bin.tar.gz
tar xvf apache-activemq-5.13.0-bin.tar.gz

2。安装stomp扩展

我们这里使用stomp协议进行通信
php原生是不带这个库的,可以在这边下载。https://pecl.php.net/package/stomp

wget https://pecl.php.net/get/stomp-1.0.9.tgz
tar xvf stomp-1.0.9.tgz
cd stomp-1.0.9/
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

20160114143142

最后添加extension=stomp.so到php.ini中

20160114143653

重启webserver

打印phpinfo

20160114143958

到这里stomp扩展就安装成功了。PS:安装stomp扩展,PHP版本必须5.2.2以上。

3.运行activemq

cd /root/apache-activemq-5.13.0/bin
./activemq start
INFO: Loading '/root/apache-activemq-5.13.0//bin/env'
INFO: Using java '/usr/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details

netstat -an|grep 61616
netstat -an|grep 8161

20160114214041

activeMQ默认配置下启动会启动8161和61616两个端口
8161是activeMQ自带的管理后台的端口
61616是activeMQ服务默认端口即通信端口

登陆activeMQ管理后台

http://192.168.1.2:8161/

20160114214807

默认用户名/密码:admin/admin

修改用户名密码

activeMQ基于jetty服务器

配置文件可以在conf/jetty.xml中找到

20160114215955

将name=”authenticate” 的value=”false” 改为true

然后编辑conf/jetty-realm.properties文件配置密码

格式为
密码:用户名,角色
admin: admin, admin

发表在 笔记 | 留下评论

/sbin/insserv: No such file or directory

root@ubuntu:~# chkconfig httpd off
/sbin/insserv: No such file or directory

cd /sbin
ln -s ../usr/lib/insserv/

发现报/sbin/insserv: Permission denied,后来才发现/usr/lib/insserv/其实是个目录

cd /sbin
rm -rf insserv
ln -s ../usr/lib/insserv/insserv 
chkconfig httpd off

成功

更改前

20160113180031

更改后

20160113180050

发表在 笔记 | 留下评论

使用Apache定义程序环境变量

我们可以使用SetEnv 参数,https://httpd.apache.org/docs/2.2/mod/mod_env.html

在VirtualHost中添加SetEnv,

<VirtualHost *:80/>
DocumentRoot "/var/www/"
ServerName www.test.com
SetEnv ENV production
</VirtualHost>

在程序公共地方定义

define('ENVIRONMENT', isset($_SERVER['ENV']) ? $_SERVER['ENV'] : 'development');

这样,程序运行的时候会优先加载Apache的配置,即,常量ENVIRONMENT为production,然后加载production的配置文件,如果Apache,没有设置环境配置则是development。

 

发表在 笔记 | 留下评论

Unable get outgoing proxy connection: Still unable to dial tcp://http://www.doesnotexist.com:80 after 3 attempts

Unable get outgoing proxy connection: Still unable to dial tcp://http://www.doesnotexist.com:80 after 3 attempts

20160106

请关闭lantern,点击Fiddler顶部的黄色提示条,用于重新加载系统代理配置,刷新浏览器。

发表在 经验分享 | 留下评论

利用dnsmasq防止DNS劫持

20151230223752

利用dig命令,指定查下阿里的dns 223.5.5.5 查下一个不存在的域名,竟然还有返回值,第一反应是劫持了,而且还是伪造 UDP 53端口。

其实查下返回的180.168.41.175 IP,搜索下很多人都反应有类似问题。直接打开这个IP里面的内容是114。

在/etc/dnsmasq.conf添加

bogus-nxdomain=180.168.41.175


/etc/init.d/dnsmasq restart

再次dig (指定dnsmasq 服务器)

20151230224524

搞定,编辑/etc/resolv.conf

nameserver 的ip改为127.0.0.1

再次dig

20151230224748

发现不再劫持(ps:上海电信无节操。)

最后附上:

《中华人民共和国电信条例》
第五十七条 任何组织或者个人不得有下列危害电信网络安全和信息安全的行为:

(一)对电信网的功能或者存储、处理、传输的数据和应用程序进行删除或者修改;

(二)利用电信网从事窃取或者破坏他人信息、损害他人合法权益的活动;

(三)故意制作、复制、传播计算机病毒或者以其他方式攻击他人电信网络等电信设施;

(四)危害电信网络安全和信息安全的其他行为。

http://www.miit.gov.cn/n11293472/n11294912/n11296257/16519133.html

发表在 笔记 | 留下评论

记一次海淘lumia 640(附解锁教程)

黑色星期五,那天发现微软官方商城Lumia 640打折,有锁版39美元 ,实在划算啊,而且还可以向ATT申请解锁。本来我有个Nexus5不需要购买手机的,Nexus5好是好,但是最近续航越来越差,而且我是移动的卡,用不了联通的3G,每天股市开盘的时候地铁里面都没有2G信号,真的好悲催。碰到这价格决定还是剁手了。

20151210214644

 

20151222205745

转运公司用的是四方转运,好快的清关速度,当天就清关了。点击这里注册。

到手后

IMG_20151218_162157IMG_20151218_142725 IMG_20151218_142822 IMG_20151218_142857 IMG_20151218_142904

申请ATT解锁

打开ATT官网,勾选底部的按钮,点击Continue,按钮

20151222211554

邮箱推荐使用Gmail邮箱

20151222211618

查看邮件,点击确认申请链接

 

 

20151222204112

 

20151222204216 20151222204127


经过两天的等待终于等到解锁码,圣诞节以为ATT会延迟审核的,没想到速度还是挺快的

20151227121721

20151227121701

发表在 经验分享 | 4条评论

bind9安装配置

安装

sudo apt-get install bind9#debian

生成rndc KEY


sudo rndc-confgen > /etc/rndc.conf

打开/etc/rndc.conf复制生成的KEY

key "rndc-key" {
algorithm hmac-md5;
secret "2tH5sDQg2G6DyIT1sWKOog==";
};

到/etc/bind/named.conf.options

最后在该文件下面添加如下内容

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

创建ZONE域

vim /etc/bind/named.conf.default-zones

添加如下内容


zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

sudo vim /etc/bind/db.example.com


$TTL 600
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS localhost.
*.example.com. IN A 192.168.1.74

重启

sudo /etc/init.d/bind9 restart

发表在 笔记 | 标签为 , , | 留下评论

新安装laravel500错误解决办法

安装完成后,打开浏览器
20151210225710

看到页面本以为成功了,但是是提示Whoops, looks like something went wrong.

打开debug模式

config/app.php

找到

'debug' => env('APP_DEBUG', false),

改为

'debug' => env('APP_DEBUG', true),

再次刷新页面

20151210230251

No supported encrypter found. The cipher and / or key length are invalid.

在命令行下面运行

/usr/local/php5.6/bin/php artisan key:generate

20151210230431

复制生成的key

将config/app.php 中的 ‘key’ => env(‘APP_KEY’, ‘SomeRandomString’), SomeRandomString 改为刚才生成的key。

再次刷新

20151210231202

成功!!!

发表在 笔记 | 标签为 , | 留下评论

wordpress使用php7报错问题

博客刚刚升级到php7发现,博客打不开,报500错误,在php.ini打开错误报告
display_errors = On
重启webserver,发现php代码报
Parse error: syntax error, unexpected ‘new’ (T_NEW) in /home/wwwroot/xxx.com/wp-content/plugins/db-cache-reloaded-fix/db-module.php on line 214

从目录来看貌似是插件报错,猜测是 DB Cache Reloaded Fix。猜测是插件不兼容引起的,随后切换到php5.6中,进入后台关闭了插件,然后切换到php7中,刷新成功。

发表在 笔记 | 标签为 , | 2条评论

php7编译安装

wget http://cn2.php.net/distributions/php-7.0.0.tar.gz
tar xvf php-7.0.0.tar.gz
cd php-7.0.0
./configure  --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath  --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo

若出现如下错误
ext/gd/libgd/.libs/gdkanji.o: In function `do_convert’:
/root/php-7.0.0/ext/gd/libgd/gdkanji.c:349: undefined reference to `libiconv_open’
/root/php-7.0.0/ext/gd/libgd/gdkanji.c:364: undefined reference to `libiconv’
/root/php-7.0.0/ext/gd/libgd/gdkanji.c:380: undefined reference to `libiconv_close’
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_dtor’:
/root/php-7.0.0/ext/iconv/iconv.c:2557: undefined reference to `libiconv_close’
ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen’:
/root/php-7.0.0/ext/iconv/iconv.c:755: undefined reference to `libiconv_open’
/root/php-7.0.0/ext/iconv/iconv.c:779: undefined reference to `libiconv’
/root/php-7.0.0/ext/iconv/iconv.c:813: undefined reference to `libiconv_close’
ext/iconv/.libs/iconv.o: In function `_php_iconv_appendl’:
/root/php-7.0.0/ext/iconv/iconv.c:474: undefined reference to `libiconv’
/root/php-7.0.0/ext/iconv/iconv.c:508: undefined reference to `libiconv’
ext/iconv/.libs/iconv.o: In function `_php_iconv_mime_decode’:
/root/php-7.0.0/ext/iconv/iconv.c:1505: undefined reference to `libiconv_open’
/root/php-7.0.0/ext/iconv/iconv.c:1998: undefined reference to `libiconv_close’
/root/php-7.0.0/ext/iconv/iconv.c:2001: undefined reference to `libiconv_close’
/root/php-7.0.0/ext/iconv/iconv.c:1616: undefined reference to `libiconv_close’
/root/php-7.0.0/ext/iconv/iconv.c:1619: undefined reference to `libiconv_open’
ext/iconv/.libs/iconv.o: In function `_php_iconv_substr’:
/root/php-7.0.0/ext/iconv/iconv.c:876: undefined reference to `libiconv_open’
/root/php-7.0.0/ext/iconv/iconv.c:900: undefined reference to `libiconv’
/root/php-7.0.0/ext/iconv/iconv.c:955: undefined reference to `libiconv_close

则编辑Makefile文件
找到
EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmcrypt -lltdl -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -lcurl -lxml2 -lz -lm -lssl -lcrypto -lfreetype -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lssl -lcrypto -lcrypt
在最后添加 -liconv
然后

make && make install

发表在 笔记 | 标签为 , | 留下评论

mysql编译安装

tar xvf mysql-5.6.23.tar.gz
cd mysql-5.6.23

cmake编译

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

make && make install

创建mysql组和mysql用户

groupadd mysql
useradd -g mysql mysql

修改访问权限

chown -R mysql:mysql /usr/local/mysql

初始化配置

cd /usr/local/mysql 
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql  初始化db

启动mysql服务

cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start  --启动MySQL

错误处理办法
— Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please install appropriate package,

remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses
Call Stack (most recent call first):
cmake/readline.cmake:128 (FIND_CURSES)
cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:409 (MYSQL_CHECK_EDITLINE)

— Configuring incomplete, errors occurred!

apt-get install ncurses-dev

. * The server quit without updating PID file (/data/mysql/data/ubuntu.pid).

mkdir -p  /usr/local/mysql/data
vim my.cnf 

添加
datadir = /usr/local/mysql/data
参数

发表在 笔记 | 标签为 , | 留下评论