CentOS 6.4 x64 安装Tengine+MaraiaDB+php-fpm的记录

学校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

完工。

13 Replies to “CentOS 6.4 x64 安装Tengine+MaraiaDB+php-fpm的记录”

    1. 其实编译安装较之于黄狗更新,性能差异并不大,我安装了15次LAMP,其中7次编译,8次黄狗,每次都做了测速的,结果访问速度的平均值是一样的

          1. 在外面,如果你说你全程用YUM安装,某些自诩高手的狗狗就会说你这没技术含量,所以我感觉说黄狗更直接。。。

          2. 长见识了~原来yum是这个缩写= =囧。不过咱也不是CCTV,用点正常的英文缩写没什么关系……
            其实吧,大部分时候我们之所以编译安装是因为有的源不够新。就算是epel啥的也没有更新多少,所以只好编译安装咯。这台机器只能访问中科大的源,加上epel,php都只到5.3.3。

          3. 33,我也准备搞MarriDB,但是在卸载军哥的MySQL时木有卸载干净,貌似安装MarriDB失败,于是回滚快照不干了。。。坐等CentOS 7.x自带MarriDB

          4. 卸不干净?貌似军哥的mysqld是源码编译安装的,在/下找mysql相关的所有文件删掉就好了。应该是/usr/local下,还有/lib(/lib64?)下这两个地方有。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

code