Heim > Artikel > Betrieb und Instandhaltung > So richten Sie einen Hochleistungs-WEB-Server mit Linux+Nginx+Php ein
nginx („Engine x“) ist ein leistungsstarker HTTP- und Reverse-Proxy-Server sowie ein IMAP/Pop3/SMTP-Proxy-Server. Nginx wurde von Igor Sysoev für Rambler.ru entwickelt, die am zweithäufigsten besuchte Website in Russland, wo es seit über zweieinhalb Jahren aktiv ist. igor veröffentlicht den Quellcode unter einer BSD-ähnlichen Lizenz. Obwohl sich Nginx noch in der Betaphase befindet, ist es bereits für seine Stabilität, seinen umfangreichen Funktionsumfang, Beispielkonfigurationsdateien und seinen geringen Systemressourcenverbrauch bekannt.
1. Kompilieren und installieren Sie die für PHP5.2.9 erforderlichen Unterstützungsbibliotheken
tar zxvf libiconv-1.13.tar.gz
cd libiconv-1.13/
./configure --prefix=/usr/local
make
make install
cd ../
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
. /configure --enable-ltdl-install
make
make install
cd ../../
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/ libmcrypt .so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/ lib /libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/ libmhash .la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so. 2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6. 8 /
/sbin/ldconfig
./configure
make
make install
cd ../
2. Kompilieren und installieren Sie die MySQL 5.1.34-Erweiterungsbibliothek
/usr/sbin/groupadd mysql
/usr /sbin/ useradd -g mysql mysql
tar zxvf mysql-5.1.34.tar.gz
cd mysql-5.1.34/
./configure --prefix=/usr/local/webserver/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
chmod +w /usr/local/webserver/mysql
chown -r mysql:mysql /usr/local/webserver/mysql
cd ../
Die MySQL-Installation wird hier weggelassen
3. PHP kompilieren und installieren (Fastcgi-Modus)
tar zxvf php-5.2.9.tar.gz
gzip -cd php-5.2.9-fpm-0.5.10.diff.gz |. d php -5.2.9 -p1
cd php-5.2.9/
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php /etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with- freetype- dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-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-fastcgi -- enable- fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable- pcntl - -enable-sockets --with-ldap --with-ldap-sasl
make zend_extra_libs='-liconv'
make install
cp php.ini-dist /usr/local/webserver/php/etc/php.ini
cd ../
4. Ändern Sie die PHP-FPM-Konfigurationsdatei
rm -f /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php /etc/ php-fpm.conf
Geben Sie den folgenden Inhalt ein:
< value name="display_errors">1
< value name="slowlog">logs/slow.log
< value name="max_requests">500
section>
五、创建www用户组及www用户
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
六、编译安装nginx
tar zxvf nginx-0.6.35.tar.gz
cd nginx-0.6.35/
默认安装:
./configure
make && make install
默认情况下, nginx 会被安装在 /usr/local/nginx www --prefix=/usr /local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
cd ../
七、创建fcgi.conf文件
rm -f /usr/local/webserver/nginx /conf/fcgi.confvi /usr/local/webserver/nginx/conf/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;
# Nur PHP, erforderlich, wenn PHP mit --enable-force-cgi-redirect erstellt wurde
rm -f / usr/local/webserver/nginx/conf/nginx.conf
输入以下内容:user www www;
error_log /usr/ local/webserver/nginx/logs/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/logs/nginx.pid;
events {
use epoll;worker_connections 51200;
}
http {
include mime.types;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
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 8 64k;
fastcgi_busy_buffers_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
#limit_zone crawler $binary_remote_addr 10m;
#多个站点设置,站点文件夹必须放在nginx的html目录,否则不支持多站点
server {
listen 80;
server_name www.v-ec.com;
root /usr/local/webserver/nginx/html/www.v-ec.com ;
location ~ .*.(php|php5)?$ {
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index .php;
include fcgi.conf;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*.(js|css )?$ {
expires 6h;
}
log_format veclog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
access_log logs/vec.log veclog;
}
#多个站点设置,站点文件夹必须放在nginx的html目录,否则不支持多站点
listen 80;
Servername www.w3cgroup.com;
root /usr/local/webserver/nginx/html/www.w3cgroup.com;
index index.php index.html;
location ~ .*.(php|php5)?$ {
#fastcgi_pass unix:/tmp/ php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*.(js|css)?$ {
expires 6h;
}
log_format w3cclog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
access_log logs/w3c.log w3clog;
}
}
九、配置开机自动启动nginx + php
vi /etc/rc .local
十、优化linux内核参数
vi /etc/sysctl.conf
在末尾增加以下内容: net.ipv4.tcp_fin_timeout =. 30net.ipv4.tcp_kee palive_time = 300
net.ipv4.tcp_syncookies = 1net .ipv4.tcp_tw_reuse = 1.net.ipv4.tcp_tw_recycle = 1重启linux了,不出意外的话应该可以顺利开启nginx
ps aux | grep nginx找到nginx的master-Prozess, 5800, 然后killkill –hup 5800
平滑重启php
/usr/local/webserver/php/sbin/php-fpm restart
php-fpm的其他命令:start | aufhören | beenden | neu starten | neu laden | logrotate
Das obige ist der detaillierte Inhalt vonSo richten Sie einen Hochleistungs-WEB-Server mit Linux+Nginx+Php ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!