接口服务器需要安装nginx+mysql+php
一、安装nginx(参照资源服配置)
二、安装mysql (参照游戏服配置中mysql安装部分)
三、安装php
这个地方是最重要的地方,因为默认情况下Nginx和PHP他俩之间是一点感觉没有的。在之前,很多朋友都搭建过Apache+PHP,Apache+PHP编译后生成的是模块文件,而Nginx+PHP需要 PHP生成可执行文件才可以,所以要利用fastcgi技术来实现Nginx与PHP的整合,这个只要我们安装是启用FastCGI即可。此次我们安装PHP不仅使用了FastCGI,而且还使用了PHP-FPM这么一个东东,PHP-FPM说白了是一个管理FastCGI的一个管理器,它作为PHP的插件存在,在安装PHP要想使用PHP-FPM时就需要把PHP-FPM以补丁的形式安装到PHP中,而且PHP要与PHP-FPM版本一致,这是必须的,切记!
yum install libxml2 libxml2-devel
yum install libpng*
yum install gd
tar zxvf php-5.2.13.tar.gz
gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1 //将php-5.3.0-fpm-0.5.12.diff.gz以补丁形式加到php-5.3.0里面
cd php-5.2.13
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm
make
make install
cp php.ini-dist /usr/local/php/etc/php.ini
注:Nginx+PHP整合,在安装时必须启用--enable-fastcgi和 --enable-fpm
/usr/local/php/sbin/php-fpm start
在启动PHP-FPM时会报上面这个错误,原因是PHP-FPM自己不知道以那个用户和组运行PHP,所以我们要修改一个文件,把文件中的注释去掉即可(打开文件把红色部分删除),然后 PHP-FPM会以nobody用户和组去运行PHP。
vi /usr/local/php/etc/php-fpm.conf
/usr/local/php/sbin/php-fpm start
ps -aux | grep php
echo "/usr/local/php/sbin/php-fpm start" >>/etc/rc.local
Nginx自己并不处理动态网页的请求,而且Nginx将得到的动态请求转交给PHP,下面我们打开Nginx的配置文件看一下
vi /usr/local/nginx/conf/nginx.conf (SCRIPT_FILENAME修改后如图)
注:上面的/var/www/html 是我们PHP网站放置的路径
如上图所示,我们在前面已经看到过Nginx是通过本机的9000端口将PHP请求转发给PHP的,而上图我们可以看到PHP自己是从本机的9000端口侦听数据,Nginx与PHP通过本机的9000 端口完成了数据请求。
四、 测试
vi /var/www/html/test.php
<?php
phpinfo();
?>
杀死进程并启动
pkill php
pkill nginx
/usr/local/php/sbin/php-fpm start
/etc/rc.d/init.d/nginx start
另外接口测试参考接口文档
为接口服授权:
grant all on shuihu.account to "test"@"192.168.1.22" identified by "123456";
隐藏版本号
编辑nginx.conf
vi /usr/local/nginx/conf/nginx.conf
在 keepalive_timeout 65; 这行下面添加server_tokens off;
修改fastcgi.conf
vi /usr/local/nginx/conf/fastcgi.conf
把fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
修改为 fastcgi_param SERVER_SOFTWARE nginx
[root@~]# curl --head 127.0.0.1
HTTP/1.1 403 Forbidden
Server: nginx
Date: Thu, 04 Aug 2011 07:41:54 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
重启nginx
service nginx restart
或则平滑重启nginx
再检查一下配置文件:
/usr/local/nginx/sbin/nginx -t
如果屏幕显示以下两行信息,说明配置文件正确:
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully
平滑重启:
对于Nginx 0.8.x版本,现在平滑重启Nginx配置非常简单,执行以下命令即可:
/usr/local/nginx/sbin/nginx -s reload