分类目录归档:Linux

PHP8.2 + OPENSSL 3 编译安装记录

// 编译openssl
wget https://www.openssl.org/source/openssl-3.0.9.tar.gz
tar zxf openssl-3.0.9.tar.gz && cd openssl-3.0.9
./config shared -Wl,--enable-new-dtags -Wl,-rpath=/opt/openssl/lib64 --prefix=/opt/openssl --openssldir=/opt/openssl
make && make install

// 编译PHP8.2
wget https://www.php.net/distributions/php-8.2.8.tar.gz
tar zxf php-8.2.8.tar.gz && cd php-8.2.8
export LDFLAGS="-L/opt/openssl/lib64 -Wl,-rpath=/opt/openssl/lib64"
export PKG_CONFIG_PATH=/opt/openssl/lib64/pkgconfig
// 安装其他扩展可以添加相应的参数
./configure -prefix=/usr/local/php --with-openssl
make && make install

需要注意的地方

  • LDFLAGS 变量告诉链接器把指定的openssl路径添加到php可执行文件中。如果 openssl 安装在非标准路径,运行 php 可能找不到库错误。
  • PKG_CONFIG_PATH 变量是指定新装openssl 库的位置。

Ubuntu编译安装PHP 5.5.3+Nginx 1.5.4

因系统Ubuntu12.04,官方源能升级到最新的PHP版本为5.3.10,感觉版本太旧有漏洞,所以决定编译升级到最新的nginx和php。下面是安装笔记。

注:MySQL用的依然是源里的二进制包,编译MySQL耗时太久,所以就放弃了。

1.编译安装Nginx

#安装nginx依赖
apt-get install build-essential libpcre3-dev libssl-dev
wget http://nginx.org/download/nginx-1.5.4.tar.gz
tar -zxf nginx-1.5.4.tar.gz
cd nginx-1.5.4/
./configure --with-http_ssl_module
make
make install

安装后默认目录在/usr/local/nginx,执行/usr/local/nginx/sbin/nginx 测试是否安装成功。

2.编译安装PHP

#安装PHP依赖,重要
apt-get install libiconv-hook-dev libmcrypt-dev libxml2-dev libmysqlclient-dev libcurl4-openssl-dev libjpeg8-dev libpng12-dev libfreetype6-dev

#下载源码,用的是美国镜像
wget -O php5.5.3.tar.gz http://cn2.php.net/get/php-5.5.3.tar.gz/from/us1.php.net/mirror
tar -zxf php5.5.3.tar.gz
cd php-5.5.3/

#配置,MySql用的是mysqlnd
./configure -prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --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-sysv
sem -enable-inline-optimization --with-curl  -enable-mbregex -enable-fpm -enable-mbstring --with-mcrypt -enable-ftp --with-gd -e
nable-gd-native-ttf --with-openssl --with-mhash -enable-pcntl -enable-sockets --with-xmlrpc -enable-zip -enable-soap --without-p
ear --with-gettext --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-pdo-mysql

make
make install

默认安装目录在/usr/local/php

3.配置nginx+php

#进入/usr/local/php/etc目录,复制一份php-fpm配置
cp php-fpm.conf.default php-fpm.conf

#从源码目录复制一份php.ini文件到/usr/local/php
cp {PHP_SOURCE_PATH}/php.ini-production /usr/local/php/etc/php.ini

#准备php-fpm服务脚本
cp {PHP_SOURCE_PATH}/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

 4.结束

启动php-fpm
/etc/init.d/php-fpm start

启动nginx
/usr/local/nginx/sbin/nginx

最后收尾工作就是权限配置和nginx的站点配置了。

vim映射CTRL+S保存快捷键

禁用掉终端CTRL+S快捷键功能
“CTRL-S:挂起终端(XON)
“CTRL-Q:恢复终端(XOFF)
“要禁止这些键盘映射,在~/.bashrc中加入
stty -ixon
然后修改vim中的按键映射,在 ~/.vimrc中加入

nmap <C-S> :update<CR>
vmap <C-S> <C-C>:update<CR>
imap <C-S> <C-O>:update<CR>

解决gcc4.5编译L2TP一键安装包 openswan出错问题

错误大概是:

In file included from /home/users/z/rpm/BUILD/openswan-2.6.25/programs/addconn/addconn.c:51:0:
/home/users/z/rpm/BUILD/openswan-2.6.25/include/ipsecconf/confread.h:37:19: error: comparison between ‘enum keyword_string_config_field’ and ‘enum keyword_string_conn_field’
/home/users/z/rpm/BUILD/openswan-2.6.25/include/ipsecconf/confread.h:38:19: error: comparison between ‘enum keyword_numeric_config_field’ and ‘enum keyword_numeric_conn_field’
/home/users/z/rpm/BUILD/openswan-2.6.25/include/ipsecconf/confread.h:39:34: error: comparison between ‘enum keyword_string_config_field’ and ‘enum keyword_string_conn_field’
/home/users/z/rpm/BUILD/openswan-2.6.25/include/ipsecconf/confread.h:40:34: error: comparison between ‘enum keyword_numeric_config_field’ and ‘enum keyword_numeric_conn_field’
make3* [addconn.o] Error 1
make3: Leaving directory `/home/users/z/rpm/BUILD/openswan-2.6.25/OBJ.linux.i386/programs/addconn’
make2
[programs] Error 1
make2: Leaving directory `/home/users/z/rpm/BUILD/openswan-2.6.25/OBJ.linux.i386/programs’
make1
[programs] Error 1
make1: Leaving directory `/home/users/z/rpm/BUILD/openswan-2.6.25/OBJ.linux.i386′
make: *
 [programs] Error 2

 

这是个bug,打上补丁即可解决
https://www.openswan.org/issues/1108

补丁详细信息:

继续阅读

usassh免费SSH代理自动登录脚本

USAssh.com 最早成立于2009年,是一家注重用户体验、高速稳定、诚信专业、老牌资深的美国SSH代理服务提供商,专注于给用户提供优质稳定的SSH代理和VPN代理服务。

2012-7-23 update:更新ruby获取密码脚本!

最近发现usassh提供的有免费测试,美中不足的是每整点更换密码。经过摸索自己写了个脚本实现自动抓取密码并自动重新连接。(如果您觉得服务不错,请购买付费账户,也算支持别人的工作 🙂 )

脚本使用了工具expect,Ubuntu用户可以用sudo apt-get install expect安装。

1.expect脚本内容如下,主要实现自动登录的处理。

继续阅读

关于Ubuntu下apt-get安装包名自动完成

有时候用root登录或者一些Server版的Ubuntu中遇到过apt-get install安装新包时,输入包名前几个字符按TAB建无法自动匹配提示,只需按下面方法解决便可。

  1. 安装bash-completion包。apt-get install bash-completion
  2. 加载环境。source /etc/bash_completion

利用SSH端口转发实现代理加速

关于SSH动态转发变成Socket代理情况这里就不说了。

本文适用于:

假如你有一台国外的SSH主机C(目的大家都懂~ o(∩∩)o…),自己电脑A用SSH做代理访问C网络状况不佳,时不时丢包,或者速度特别慢的时候。

同时需要主机B,与A和C连接速度都很快,一般是国内主机。

  1. SSH登录B,执行:
    ssh -g -D 9001 C用户@C主机IP
    会自动监听9001端口接受下一步发来的数据。
  2. SSH登录A,执行:
    ssh -g -L 9000:localhost:9001 B用户名@B主机IP
    开启本地端口转发,将会在A主机开启9000端口,发往9000端口的数据会经过SSH隧道转发到B机本地的9001端口,同时B机的ssh会再次把数据转发往第一步的C主机。

然后在A本机设置FireFox或者其他应用程序的Socks代理为127.0.0.1:9000即可上网。

OpenVPN几个关键配置

服务端配置文件openvpn.conf

local 你VPS的IP地址
port 1194
proto tcp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push “dhcp-option DNS 8.8.8.8″
push “dhcp-option DNS 8.8.4.4″
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /etc/openvpn/keys/openvpn-status.log
verb 4

客户端配置文件*.opvn

client
dev tun
proto tcp
remote 你vps的ip 1194
persist-key
persist-tun
ca ca.crt
cert client01.crt
key client01.key
#这里的两个文件名必须和前面生成的证书文件名一样
ns-cert-type server
comp-lzo
verb 3
redirect-gateway def1

几个重要的转发规则(假设10.8.0.0/24)

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE