/ 中存储网

CentOS 6.4安装tengine+php-fpm+maraiadb的方法

2015-11-19 20:47:58 来源:中存储网

学校BBS的新机器67,主要是用来做一个反向代理到216然后加速外网访问,因为学校对67所在的网段有电信的加速部署,所以外网访问很快。(此处67和216为机器IP的最后一段,这里略去完整IP)

新的机器配置还不错,4G的内存和16个核心的CPU(哎……CPU怎么那么多,当初申请的时候才要了8核来着。),贴出来炫耀一下……

 [[email protected] ~]$ free -m

total       used       free     shared    buffers     cached

 Mem:          3830       1117       2713          0         67        745

 -/+ buffers/cache:        304       3526

 Swap:         3967          0       3967

 [[email protected] ~]$ 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是哪个版本的:

 [[email protected] ~]$ 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

完工。