Nginx+php (FastCGI)+Memcached+MySQL+APC เป็นวิธีหลักในปัจจุบันในการสร้างเซิร์ฟเวอร์ประสิทธิภาพสูง! เหมาะสำหรับเว็บไซต์ขนาดใหญ่และขนาดกลาง เว็บมาสเตอร์ขนาดเล็กก็สามารถใช้ชุดค่าผสมนี้ได้!
Nginx เหนือกว่า Apache ในด้านประสิทธิภาพและความเสถียรสูง และเว็บไซต์ในประเทศจำนวนมากขึ้นเรื่อยๆ ใช้ Nginx เป็นเว็บเซิร์ฟเวอร์ รวมถึง MapBar แผนที่อิเล็กทรอนิกส์ในประเทศที่ใหญ่ที่สุด, Sina Blog, Sina Podcast, NetEase News และช่องทางพอร์ทัลอื่นๆ หกห้อง , 56.com และ เว็บไซต์แบ่งปันวิดีโออื่นๆ Discuz! ฟอรัมที่มีชื่อเสียง เช่น ฟอรัมอย่างเป็นทางการและชุมชน Shuimu เว็บไซต์ Web 2.0 ที่เกิดขึ้นใหม่ เช่น Douban, YUPOO Photo Album, SNS ในประเทศ และ Thunder Online และเว็บไซต์อื่นๆ ที่ใช้การกำหนดค่า Nginx
ดาวน์โหลดแพ็คเกจการติดตั้งที่จำเป็น: ที่นี่เราใช้แพ็คเกจซอร์สโค้ดเพื่อคอมไพล์และติดตั้ง: บล็อกนี้รวมการดาวน์โหลด
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 [เวอร์ชันอื่นที่คล้ายกันก็มีให้เช่นกัน! 】สามารถดาวน์โหลดได้จากเว็บไซต์อย่างเป็นทางการ
1. ติดตั้ง Nginx อย่างเป็นทางการ [ก่อนที่จะติดตั้ง nginx คุณต้องติดตั้งแพ็คเกจ pcre และ zlib เพื่อรองรับการเขียนใหม่ การทำให้เป็นมาตรฐาน การบีบอัดหน้าเว็บ ฯลฯ ]
ซีดี /usr/src
tar xzf pcre-8.01.tar.gz
cdpcre-8.01
./configure –PRefix=/usr/local/pcre
ทำ
ทำการติดตั้ง
(2) จากนั้นติดตั้ง nginx:
ผู้ใช้เพิ่ม www && cd /usr/src && tar xzf nginx-0.7.61.tar.gz &&cd nginx-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 &&ทำ &&ทำการติดตั้ง
[nginx note* –with-pcre=/usr/src/pcre-8.01 ชี้ไปที่พาธเพื่อขยายขนาดแพ็กเกจซอร์สโค้ด ไม่ใช่พาธการติดตั้ง ไม่เช่นนั้นจะรายงาน
make[1]: ***[/usr/local/pcre/Makefile] ข้อผิดพลาด 127 ข้อผิดพลาด】
2. ถัดไปติดตั้ง mysql
cd /usr/src && tar xzf mysql-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 && ทำ &&ทำการติดตั้ง
(2) หลังจากติดตั้ง mysql แล้ว ให้สร้างผู้ใช้และกลุ่ม mysql เริ่มต้นฐานข้อมูล และเริ่มฐานข้อมูล
cd /usr/local/mysql && useradd mysql && chown -R mysql:mysql /usr/local/mysql && /usr/local/mysql/bin/mysql_install_db –user=mysql && chown -R mysql:mysql var/ && ./ bin/mysqld_safe –ผู้ใช้=mysql &
แค่นั้นแหละ. [หากมีข้อผิดพลาดเกิดขึ้นเมื่อ mysql เริ่มทำงาน โปรดตรวจสอบไดเร็กทอรี /usr/local/mysql/var เพื่อดูว่า mysql มีสิทธิ์หรือไม่]
3. ติดตั้ง PHP:
cd /usr/src &&tar xzf php-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
–เปิดใช้งานการเพิ่มประสิทธิภาพแบบอินไลน์ –ด้วย-curl –ด้วย-curlwrappers –เปิดใช้งาน-mbregex –เปิดใช้งาน-fpm –เปิดใช้งาน-ซ็อกเก็ต && ทำ &&ทำการติดตั้ง
การติดตั้งเสร็จสมบูรณ์! [โปรดทราบว่าไม่จำเป็นต้องเพิ่ม –enable-fastcgi ลงในพารามิเตอร์นี้ จำเป็นต้องเพิ่มเวอร์ชันก่อนหน้าอื่นๆ ตามที่คุณเลือก หากมีการรายงานข้อผิดพลาด ให้ค้นหาสาเหตุตาม รายงานข้อผิดพลาดเฉพาะ]
4. รวม Nginx และ php (FastCGI) เพื่อรองรับ fastCGI หลังจากติดตั้ง php-5.3.5
ผู้ใช้ www www;
ผู้ปฏิบัติงาน_กระบวนการ 8;
error_log /usr/local/logs/nginx/error.log crit;
pid /usr/local/nginx/nginx.pid;
#ระบุค่าสำหรับตัวอธิบายไฟล์สูงสุดที่สามารถเปิดได้โดยกระบวนการนี้
ผู้ปฏิบัติงาน_rlimit_nofile 51200;
เหตุการณ์ต่างๆ
-
ใช้อีพอล;
ผู้ปฏิบัติงาน_การเชื่อมต่อ 51200;
-
http
-
รวม mime.types;
แอปพลิเคชัน default_type / octet-stream;
#ชุดอักขระ gb2312;
server_names_hash_bucket_size 128;
ลูกค้า_ส่วนหัว_บัฟเฟอร์_ขนาด 32k;
large_client_header_buffers 4 32k;
ลูกค้า_max_body_size 8m;
ส่งไฟล์บน;
tcp_nopush บน;
Keepalive_หมดเวลา 60;
tcp_nodelay บน;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_ขนาด 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
เปิด gzip;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
ข้อความ gzip_types/แอปพลิเคชันธรรมดา/ข้อความ x-javascript/แอปพลิเคชัน CSS/xml;
gzip_vary บน;
โปรแกรมรวบรวมข้อมูล #limit_zone $binary_remote_addr 10m;
เซิร์ฟเวอร์
-
ฟัง 80;
server_name wgkgood.gicp.net;
ดัชนีindex.phpindex.htmindex.html;
รูท /usr/webapps/www;
#limit_conn โปรแกรมรวบรวมข้อมูล 20;
ตำแหน่ง ~ .*.(php|php5)?$
-
#fastcgi_pass ยูนิกซ์:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
รวม fcgi.conf;
-
ตำแหน่ง ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
-
หมดอายุ 30d;
-
ตำแหน่ง ~ .*.(js|css)?$
-
หมดอายุ 1 ชม.;
-
การเข้าถึง log_format '$remote_addr – $remote_user [$time_local] “$request” '
'$สถานะ $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
การเข้าถึง access_log /usr/local/logs/nginx/access.log;
-
-
การกำหนดค่า Nginx เสร็จสมบูรณ์! เริ่ม nginx; /usr/local/nginx/sbin/nginx
ไฟล์การกำหนดค่านี้มีไว้เพื่อการอ้างอิงเท่านั้น ขอบคุณอาจารย์จางหยาน!
(2) กำหนดค่าไฟล์ fcgi.conf ดังต่อไปนี้
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
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 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;
# PHP เท่านั้น จำเป็นหาก PHP ถูกสร้างขึ้นด้วย –enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
5. กำหนดค่าไฟล์การกำหนดค่า php:
ซีดี /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-fpm start
6. ติดตั้งการกำหนดค่า apc:
ซีดี /usr/src && tar xzf APC-3.1.4.tgz &&ซีดี APC-3.1.4
/usr/local/php5/bin/phpize.php
./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php5/bin/php-config
&&ทำ&&ทำการติดตั้ง
หลังการติดตั้ง apc.so จะถูกสร้างขึ้นใน /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
7. ติดตั้ง memcached เพื่อให้ fastcGI รองรับ memcached
ขั้นแรกให้ติดตั้ง libevent
cd /usr/src && tar xzf libevent-1.4.12-stable.tar.gz && cd libevent-1.4.12-stable && ./configure –prefix=/usr/local/libevent &&make && ทำการติดตั้ง
จากนั้นติดตั้ง memcached
tar xzf memcache-2.2.5.tar.gz && cd memcache-2.2.5 && /usr/local/php5/bin/phpize && ./configure –prefix=/usr/local/memcached –with-libevent=/usr/ ท้องถิ่น / libevent –with-php-config=/usr/local/php5/bin/php-config &&make &&ทำการติดตั้ง
หลังการติดตั้ง โมดูล memcache.so จะถูกสร้างขึ้นใน /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/:
8. ถัดไปแก้ไข 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″
เพิ่มสิ่งต่อไปนี้ต่อท้าย:
ส่วนขยาย=apc.so
extension=memcache.so //โมดูลแคชมีการอ้างอิงที่นี่
[เอพีซี]
apc.เปิดใช้งาน = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.การเพิ่มประสิทธิภาพ=1
apc.num_files_hint = 0
apc.ttl=7200
apc.user_ttl=7200
apc.gc_ttl = 3600
apc.cache_by_default = เปิด
การติดตั้งเสร็จสมบูรณ์แล้ว!
รีสตาร์ท nginx และ php-fpm และเข้าถึงด้วยหน้าทดสอบ
บทความนี้มีไว้เพื่อการอ้างอิงเท่านั้น! โปรดแก้ไขฉันหากมีข้อผิดพลาดใด ๆ ! เรียนรู้ร่วมกัน!
แหล่งที่มาของบทความ: http://blog.mgcrazy.com/?p=627 โปรดระบุลิงก์แหล่งที่มาเมื่อพิมพ์ซ้ำ