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، وDomestic 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
القطران xzf pcre-8.01.tar.gz
cdpcre-8.01
./configure –PRefix=/usr/local/pcre
يصنع
قم بالتثبيت
(2)، ثم قم بتثبيت nginx:
useradd 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 &&make &&make التثبيت
[ملاحظة nginx* –with-pcre=/usr/src/pcre-8.01 يشير إلى المسار لفك ضغط حزمة التعليمات البرمجية المصدر، وليس مسار التثبيت، وإلا فسيتم الإبلاغ عنه
make[1]: ***[/usr/local/pcre/Makefile] Error 127 Error】
2. قم بعد ذلك بتثبيت الخلية
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 && make &&make install
(2) بعد تثبيت mysql، قم بإنشاء مستخدم ومجموعة mysql، وقم بتهيئة قاعدة البيانات، وابدأ تشغيل قاعدة البيانات.
cd /usr/local/mysql && useradd mysql && chown -R mysql /usr/local/mysql && /usr/local/mysql/bin/mysql_install_db –user=mysql && chown -R mysql:mysql var/ && ./ بن/mysqld_safe –user=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
– تمكين التحسين المضمن – مع الضفيرة – مع Curlwrappers – تمكين – bregex – تمكين – FPM – تمكين المقابس && إجراء التثبيت &&
اكتمل التثبيت! [لاحظ أن –enable-fastcgi لا يحتاج إلى إضافته إلى هذه المعلمة هنا؛ يمكن إضافة التثبيت أعلاه وفقًا لاختيارك، ابحث عن السبب تقرير خطأ محدد]
4. قم بدمج Nginx وphp (FastCGI) لدعم fastCGI بعد تثبيت php-5.3.5
المستخدم شبكة الاتصالات العالمية؛
عامل_العمليات 8؛
error_log /usr/local/logs/nginx/error.log crit;
معرف المنتج /usr/local/nginx/nginx.pid;
# يحدد قيمة الحد الأقصى لواصفات الملفات التي يمكن فتحها بواسطة هذه العملية.
عامل_rlimit_nofile 51200;
الأحداث
{
استخدم epoll؛
عامل_اتصالات 51200؛
}
http
{
تشمل mime.types؛
تطبيق default_type/تيار الثماني؛
# مجموعة الأحرف gb2312؛
server_names_hash_bucket_size 128;
client_header_buffer_size 32 كيلو؛
Large_client_header_buffers 4 32 كيلو;
Client_max_body_size 8 م؛
إرسال الملف على؛
tcp_nopush على؛
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64 كيلو؛
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128 كيلو؛
fastcgi_temp_file_write_size 128 كيلو بايت؛
غزيب على؛
gzip_min_length 1k;
gzip_buffers 4 16 كيلو؛
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/CSS application/xml;
gzip_vary on;
#limit_zone الزاحف $binary_remote_addr 10m;
الخادم
{
استمع 80؛
server_name wgkgood.gicp.net;
فهرس Index.php Index.htm Index.html;
الجذر /usr/webapps/www؛
#limit_conn الزاحف 20؛
الموقع ~ .*.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index Index.php;
تشمل fcgi.conf؛
}
الموقع ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
تنتهي 30 د؛
}
الموقع ~ .*.(js|css)?$
{
تنتهي صلاحيته ساعة واحدة؛
}
الوصول إلى تنسيق السجل '$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 كما يلي إعادة تحميل /usr/local/nginx/sbin/nginx –s.
ملف التكوين هذا هو للإشارة فقط، شكرًا لك أستاذ تشانغ يان!
(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:
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-fpm ابدأ.
6. تثبيت تكوين APC:
cd /usr/src && tar xzf APC-3.1.4.tgz &&cd APC-3.1.4
/usr/local/php5/bin/phpize
./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 الذاكرة المؤقتة
أولًا قم بتثبيت 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/ local/libevent –with-php-config=/usr/local/php5/bin/php-config &&make &&make install
بعد التثبيت، سيتم إنشاء وحدة 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 = 64 ميجا
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/?p=627 يرجى الإشارة إلى رابط المصدر عند إعادة الطباعة