学校BBS的新机器67,主要是用来做一个反向代理到216然后加速外网访问,因为学校对67所在的网段有电信的加速部署,所以外网访问很快。(此处67和216为机器IP的最后一段,这里略去完整IP)新的机器配置还不错,4G的内存和16个核心的CPU(哎……CPU怎么那么多
学校BBS的新机器67,主要是用来做一个反向代理到216然后加速外网访问,因为学校对67所在的网段有电信的加速部署,所以外网访问很快。(此处67和216为机器IP的最后一段,这里略去完整IP)
新的机器配置还不错,4G的内存和16个核心的CPU(哎……CPU怎么那么多,当初申请的时候才要了8核来着。),贴出来炫耀一下……
[oott123@FastBird ~]$ free -m
total used free shared buffers cached
Mem: 3830 1117 2713 0 67 745
-/+ buffers/cache: 304 3526
Swap: 3967 0 3967
[oott123@FastBird ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
stepping : 7
cpu MHz : 2000.000
cache size : 20480 KB
参数就不泄漏太多了……总之用的虚拟化技术其实是VMWare(学校Win平台居多导致的)。由于是生产环境,所以悲剧的一点就是不能主动连接外网,对外监听的端口也只开放了80,ssh啥的也要经由VPN才能爬。这次想着服务器条件不错,再加上对速度有一定的要求,打算用Tengine做动静分离的反向代理。很明显这台服务器是负责静态加速的,那么为什么要安装MariaDB和php-fpm呢?
嗯……答案就是我闲的蛋疼了(大雾)。【其实是有一些特殊需求不好说太多。
好了差不多就这样,接下来整理我的TMP安装过程。由于是学校的机器,让信息中心的老师装了CentOS6.4,结果到手以后发现是完整版,各种软件包齐全啊……首先把碍事的mysql卸载掉。
yum remove mysql mysql-*
一定要卸载掉的原因是这货会和MariaDB冲突……接下来的安装顺序是Tengine->MariaDB->php-fpm
Tegine是编译安装的,源码包和jmalloc都是从官网下载之后SFTP到服务器上的。执行Tegine带jmalloc的编译如下:
yum install pcre-devel #这个是pcre包,rewrite要用到。
./configure --user=apache --group=apache --with-http_stub_status_module --with-http_gzip_static_module --with-http_sysguard_module --with-http_concat_module --with-jemalloc=../jemalloc-3.4.0
make && make install
不需要太多的模块,因为Tegine支持DSO动态模块加载,之后要加模块可以单独添加。再说这服务器连443端口都没开,ipv6因为是新机房也部署不到,所以ipv6和ssl也没有带进来。由于216上的网页文件都是给的apache/apache这个属主,所以这边也是一样的给apache。这台机器编译起来很爽,1分钟不到就完成了。
然后我从网上下载了别人的nginx的init.d给复制到了对应的目录……这个过程,捂脸就不说了……
接下来是MariaDB,选用5.5稳定版。按官方的安装攻略我如果要rpm包的话得配置他家的yum源,不幸的是67不能访问外网,只得自己手动下载这几个文件:
http://yum.mariadb.org/5.5/
centos6-amd64/rpms/MariaDB-5.5.31-
centos6-x86_64-compat.rpm
http://yum.mariadb.org/5.5/centos6-amd64/rpms/MariaDB-5.5.31-centos6-x86_64-common.rpm
http://yum.mariadb.org/5.5/centos6-amd64/rpms/MariaDB-5.5.31-centos6-x86_64-shared.rpm
http://yum.mariadb.org/5.5/centos6-amd64/rpms/MariaDB-5.5.31-centos6-x86_64-server.rpm
http://yum.mariadb.org/5.5/centos6-amd64/rpms/MariaDB-5.5.31-centos6-x86_64-client.rpm
给出的地址是centos6,x64,Maria5.5的下载地址,别轻易对号入座。下载完后按上面的顺序安装即可:
rpm -ivh MariaDB-5.5.31-centos6-x86_64-compat.rpm
rpm -ivh MariaDB-5.5.31-centos6-x86_64-common.rpm
rpm -ivh MariaDB-5.5.31-centos6-x86_64-shared.rpm
rpm -ivh MariaDB-5.5.31-centos6-x86_64-server.rpm
rpm -ivh MariaDB-5.5.31-centos6-x86_64-client.rpm #选装,提供mysql指令
顺序一定要对……先compat,再common,再shared,最后才是server。如果按照官方的来的话倒是好办,设置好直接yum会自动处理依赖关系的。
安装完MariaDB记得执行安全初始化:
service mysqld restart #开启MariaDB
/usr/bin/mysql_secure_installation
然后向导会引导你设置root密码,禁止空用户连接等。
最后是php-fpm的安装。先看看自带的php是哪个版本的:
[oott123@FastBird ~]$ php -v
PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
好嘛,直接就是5.3.3了。那好办,yum install php-fpm直接装上php-fpm就可以了。
还有就是把php-fpm和tegine联系起来。我是让php-fpm监听unix socks了,如下:
vim /etc/php-fpm.d/www.conf
#修改处:listen = /tmp/php-cgi.sock
vim /usr/local/nginx/conf/fastcgi_params
#文件全文
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
vim /usr/local/nginx/conf/nginx.conf
#server字段的location配置
location ~ .*\.(php|php5)?$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi_params;
}
最后就是对各个软件设置开机自启动:
chkconfig mysqld on
chkconfig php-fpm on
vim /etc/rc.local #加入一行/etc/init.d/nginx start用来开启Tegine
完工。