q789321 发表于 2016-10-19 09:37:42

Nginx+php(FastCGI)+Memcached+Mysql+APC 高性能web服务器搭建

Nginx+php(FastCGI)+Memcached+Mysql+APC 是目前主流的高性能服务器搭建方式!适合大中型网站,小型站长也可以采用这种组合!

Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括国内最大的电子地图MapBar、新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站,更多的网站都在使用Nginx配置。


【Nginx+php(FastCGI)+Memcached+Mysql+APC Nginx高性能web服务器安装 APC模块安装 linux apc 配置 fastCGI安装配置】

下载所需的安装包:这里采用源码包编译安装:本博客集成下载
http://wgkgood.gicp.net/download/nginx-0.7.61.tar.gz
http://wgkgood.gicp.net/download/pcre-8.01.tar.gz
http://wgkgood.gicp.net/download/memcache-2.2.5.tgz
http://wgkgood.gicp.net/download/libevent-1.4.12-stable.tar.gz
http://wgkgood.gicp.net/download/APC-3.1.4.tgz

下载到 /usr/src下

另外还有两个包mysql-5.1.41.tar.gz、php-5.3.5.tar.gz 【其他相似版本也可以!】可以在官网下载。

一、正式安装Nginx、【安装nginx之前需要安装pcre包和zlib以支持重写,正则以及网页压缩等等】

(1)首先安装pcre:

cd/usr/src&&tar xzf pcre-8.01.tar.gz   &&cd pcre-8.01&&./configure   –prefix=/usr/local/pcre&&make &&make install

(2)、然后再安装nginx :

useradd www&& cd/usr/src && tar xzfnginx-0.7.61.tar.gz   &&cdnginx-0.7.61&&./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-openssl=/usr/ –with-pcre=/usr/src/pcre-8.01–user=www –group=www&&make&&make install


【nginx注意*–with-pcre=/usr/src/pcre-8.01指向的是源码包解压的路径,而不是安装的路径,否则会报

make: *** Error 127 错误】
二、接下来安装mysql

cd   /usr/src && tar xzfmysql-5.1.41.tar.gz   && cd mysql-5.1.41&& ./configure –prefix=/usr/local/mysql/ –enable-assembler –with-extra-charsets=complex –enable-thread-safe-client –with-big-tables –with-readline –with-ssl –with-embedded-server –enable-local-infile –with-plugins=innobase&& make&&make install

(2)、mysql安装完毕,创建mysql用户和组并初始化数据库,并启动数据库。

cd/usr/local/mysql && useradd mysql && chown -Rmysql:mysql   /usr/local/mysql&&/usr/local/mysql/bin/mysql_install_db–user=mysql   &&   chown -R   mysql:mysqlvar/&& ./bin/mysqld_safe   –user=mysql &

即可。【如果mysql启动报错,请检查 /usr/local/mysql/var 目录,mysql是否有权限】

三、安装 php :

cd   /usr/src    &&tar xzfphp-5.3.5.tar.gz   && cd php-5.3.5&& ./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-mysqli=/u
sr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-li
bxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem
–enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex–enable-fpm–enable-sockets&& make&&make install

安装完毕!【注意这个参数在此可以不加–enable-fastcgi;其他之前版本需要加上,以上安装根据自己的选择添加,如果报错,根据具体报错找原因】

四、整合Nginx和php(FastCGI)安装完php-5.3.5后支持fastCGI

(1)、配置nginx ,拷贝nginx配置文件:
userwww www;

worker_processes 8;

error_log/usr/local/logs/nginx/error.logcrit;

pid      /usr/local/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
{
use epoll;
worker_connections 51200;
}

http
{
include       mime.types;
default_typeapplication/octet-stream;

#charsetgb2312;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush   on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

gzip on;
gzip_min_length1k;
gzip_buffers   4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zonecrawler$binary_remote_addr10m;

server
{
listen       80;
server_namewgkgood.gicp.net;
index index.php index.htm index.html;
root/usr/webapps/www;

#limit_conn   crawler20;

location ~ .*\.(php|php5)?$
{
#fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_pass127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires      30d;
}

location ~ .*\.(js|css)?$
{
expires      1h;
}

log_formataccess‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
access_log/usr/local/logs/nginx/access.logaccess;
}

}

Nginx配置完毕!启动nginx ;/usr/local/nginx/sbin/nginx 即可,重启nginx命令如下/usr/local/nginx/sbin/nginx –sreload

此配置文件仅供参考,感谢张宴老师!

(2)、配置fcgi.conf文件如下

fastcgi_paramGATEWAY_INTERFACECGI/1.1;
fastcgi_paramSERVER_SOFTWARE    nginx;

fastcgi_paramQUERY_STRING       $query_string;
fastcgi_paramREQUEST_METHOD   $request_method;
fastcgi_paramCONTENT_TYPE       $content_type;
fastcgi_paramCONTENT_LENGTH   $content_length;

fastcgi_paramSCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_paramSCRIPT_NAME      $fastcgi_script_name;
fastcgi_paramREQUEST_URI      $request_uri;
fastcgi_paramDOCUMENT_URI       $document_uri;
fastcgi_paramDOCUMENT_ROOT      $document_root;
fastcgi_paramSERVER_PROTOCOL    $server_protocol;

fastcgi_paramREMOTE_ADDR      $remote_addr;
fastcgi_paramREMOTE_PORT      $remote_port;
fastcgi_paramSERVER_ADDR      $server_addr;
fastcgi_paramSERVER_PORT      $server_port;
fastcgi_paramSERVER_NAME      $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_paramREDIRECT_STATUS    200;

五、配置php配置文件:

cd/usr/local/php5/etc/ &&cp

php-fpm.conf.default   php-fpm.conf 然后根据提示修改php-fpm.conf里面的选项。

配置完毕后,启动php-fpm

cp/usr/src/php-5.3.5/sapi/fpm/init.d.php-fpm/etc/init.d/php-fpm 然后启动 /etc/init.d/php-fpmstart 即可。

六、安装apc配置:

cd/usr/src && tar xzfAPC-3.1.4.tgz&&cdAPC-3.1.4

/usr/local/php5/bin/phpize【增加扩展模块】

./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php5/bin/php-config

&&make&& make install

安装完后会生成一个apc.so在/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/里面。

七、安装memcached,使fastcGI支持memcached

首先安装libevent,

cd/usr/src&& tar xzf libevent-1.4.12-stable.tar.gz&&cdlibevent-1.4.12-stable &&./configure –prefix=/usr/local/libevent &&make && make install

然后安装memcached

tar xzfmemcache-2.2.5.tar.gz&& cd memcache-2.2.5&& /usr/local/php5/bin/phpize&& ./configure –prefix=/usr/local/memcached–with-libevent=/usr/local/libevent –with-php-config=/usr/local/php5/bin/php-config &&make&&make install

安装完后,会在/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/里生成一个memcache.so 这个模块:

八、接下来修改php.ini

默认的php.ini在/usr/local/php5/lib/php.ini 你也可以指定:

extension_dir = “./”

修改为

extension_dir=”/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626″

把下面这些添加到最后:

extension = apc.so

extension=memcache.so //这里引用缓存模块



apc.enabled = 1

apc.shm_segments = 1

apc.shm_size = 64M

apc.optimization = 1

apc.num_files_hint = 0

apc.ttl=7200

apc.user_ttl=7200

apc.gc_ttl = 3600

apc.cache_by_default = on

安装到此已经完成!

重新启动nginx和php-fpm ,用测试页面访问。

此文章仅供参考!有不妥之处欢迎指正!共同学习!

http://blog.mgcrazy.com本博客采用的nginx+fastcGI+mysql+memcached+apc完美架构整合!

感谢张宴老师

http://blog.s135.com/nginx_php_v6/
页: [1]
查看完整版本: Nginx+php(FastCGI)+Memcached+Mysql+APC 高性能web服务器搭建