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 避免整个页面的超时。

发表在 php语言 | 留下评论

(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语言 | 留下评论

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

发表在 php语言, 服务器应用 | 留下评论

/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。

 

发表在 php语言, web服务器 | 留下评论

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

成功!!!

发表在 php语言 | 标签为 , | 留下评论

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中,刷新成功。

发表在 php语言, 服务器应用 | 标签为 , | 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
发表在 php语言, 服务器应用 | 标签为 , | 留下评论

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
参数

发表在 数据库, 服务器应用 | 标签为 , | 留下评论

cc: internal compiler error: Killed解决办法

cc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
See for instructions.
make: *** [ext/date/lib/parse_date.lo] Error 1

sudo mkdir -p /var/cache/swap/
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=512
sudo chmod 0600 /var/cache/swap/swap0
sudo mkswap /var/cache/swap/swap0 
sudo swapon /var/cache/swap/swap0

更改前
20151127235608

更改后
20151127235633

猜测可能是由于内存太小造成的,添加swap就好

发表在 服务器应用 | 标签为 | 留下评论

configure: error: Cannot find OpenSSL’s libraries解决办法

apt-get install pkg-config

https://bugs.php.net/bug.php?id=69510

发表在 php语言, 服务器应用 | 标签为 , | 留下评论

解决Apache无法解析PHP问题

编辑httpd.conf文件
添加如下代码

LoadModule php5_module  modules/libphp5.so
AddType application/x-httpd-php .php
DirectoryIndex index.php index.htm index.html
发表在 php语言, web服务器 | 标签为 , | 留下评论

解决Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerNam

vim /usr/local/apache2/conf/httpd.conf

编辑httpd.conf配置文件,找到
ServerName www.example.com:80
去掉注释,改为
ServerName 127.0.0.1:80

/usr/local/apache2/bin/apachectl restart
发表在 web服务器, 服务器应用 | 标签为 , | 留下评论

ext/iconv/.libs/iconv.o: In function `_php_iconv_appendl’:解决办法

Capture

编辑Makefile,找到如下一段

EXTRA_LIBS = -lcrypt -lz -lresolv -lcrypt -lrt -lmcrypt -lltdl -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lxml2 -lssl -lcrypto -lcurl -lxml2 -lssl -lcrypto -lfreetype -lz -lxml2 -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lxml2 -lssl -lcrypto -lcrypt

在最后添加 -liconv参数,保存退出。

make && make install
发表在 php语言, 服务器应用 | 标签为 , | 留下评论