目次
インストール手順
ホームページ 運用・保守 Nginx Linux+Nginx+Phpで高性能WEBサーバーを構築する方法

Linux+Nginx+Phpで高性能WEBサーバーを構築する方法

May 20, 2023 pm 11:19 PM
php linux nginx

nginx (「エンジン x」) は、高性能の http およびリバース プロキシ サーバー、および imap/pop3/smtp プロキシ サーバーです。 nginx は、ロシアで 2 番目にアクセス数の多いサイトである rambler.ru のために igor sysoev によって開発され、2 年半以上運営されています。 igor は、BSD のようなライセンスに基づいてソース コードをリリースします。 nginx はまだベータ版ですが、その安定性、豊富な機能セット、サンプル構成ファイル、およびシステム リソースの消費量の少なさですでに知られています。

インストール手順

1. php5.2.9

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. mysql 5.1.34 拡張ライブラリ ## をコンパイルしてインストールします。 ## /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 ../

mysql のインストールはここでは省略します

3. コンパイルしてインストールします。 php (fastcgi モード)


tar zxvf php-5.2.9.tar.gzgzip -cd php-5.2.9-fpm-0.5.10.diff.gz | patch -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. php-fpm 設定ファイルを変更します


rm -f / usr/local/webserver/php/etc/php-fpm.confvi /usr/local/webserver/php/etc/php-fpm.conf

次のように入力します。




/usr /local/webserver/php/logs/php-fpm.pid
/usr/local/webserver/php/logs/php-fpm.log<値の名前="ログレベル">注意
<値の名前="緊急再起動しきい値">10
<値の名前="緊急再起動間隔"> 1m

5s
yes



default
127.0.0.1:9000

-1


0666
< /value>

/usr/sbin/sendmail -t -i
1
gt;
www
www

static
128< ;/value>
gt;
20
5<; /value>
35


0s
0s
logs/slow.log
<値の名前="rlimit_files">51200
<値の名前="rlimit_core">0
<値の名前="chroot">
<値の名前="chdir">
<値の名前="catch_workers_output">はい
<値の名前="max_requests">500< /value>
127.0.0.1

$hostname
/usr/local/bin:/usr/bin:/bin
/tmp
/tmp
/tmp
$ostype
$machtype
2



5、创建www用户组およびwww用户

/usr/sbin/groupadd www
/usr/sbin/useradd -g www wwwwww


六、编译インストールnginx

tar zxvf nginx-0.6.35.tar.gz
cd nginx-0.6.35/
默认インストール:
./configure
make && make install
默认情况以下、nginx は /usr/local/nginx にインストールされます。この設定は、セッション選択を設定することで変更できます。

例:
./configure --user= www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../

# #七、创建fcgi.conf文件

rm -f /usr/local/webserver/nginx/conf/fcgi.conf

vi /usr/local/webserver/nginx/conf/fcgi .conf

次の内容を入力します:

fastcgi_param ゲートウェイ インターフェイス cgi/1.1;
fastcgi_param サーバー_ソフトウェア nginx;

fastcgi_param クエリ文字列 $query_string;
fastcgi_param request_method $request_method;
fastcgi_param content_type $content_type;
fastcgi_param content_length $content_length ;

fastcgi_param スクリプト ファイル名 $document_root$fastcgi_script_name;
fastcgi_param スクリプト名 $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;

fastcgi_param リモートアドレス $remote_addr;
fastcgi_param リモートポート $remote_port;
fastcgi_param サーバーアドレス $server_addr;
fastcgi_param サーバーポート $server_port;
fastcgi_param サーバー名 $server_name;

# php のみ。php が --enable-force-cgi-redirect でビルドされた場合に必要です。
fastcgi_param redirect_status 200;


八、nginx 構成文件

rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf

以下の内容に入る:

ユーザー www www;
worker_processes 8;
error_log /usr/local/webserver/nginx/logs/logs/nginx_error.log crit;
pid /usr/local/webserver/ nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
epoll を使用;
worker_connections 51200;
}

http {
mime.types を含める;
default_type application/octet-stream;
charset utf-8;

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

sendfile オン;
tcp_nopush オン;
keepalive_timeout 60;
tcp_nolay 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;
fastcgi_temp_file_write_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;
gzip_vary on;

##limit_zone クローラー $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;
indexindex.phpindex.html;

location ~ .*\.(php|php5)?$ {

#fastcgi_pass unix :/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
include fcgi.conf;
}

location ~ .* \.(gif|jpg|jpeg|png|bmp|swf)$ {
有効期限は 30 日;
}

location ~ .*\.(js|css)?$ {

有効期限は 6 時間です;
}

log_format veclog '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent " $http_x_forwarded_for';
access_log logs/vec.log veclog;
}
#多站点設置、站点文件夹必须放在nginx的html目录、否多站点
server {
listen 80;
server_name www.w3cgroup.com;
root /usr/local/webserver/nginx/html/www.w3cgroup.com;
indexindex.phpindex.html;

location ~ .*\.(php|php5)?$ {

#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index インデックス。 php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
有効期限は 30 日;
}

location ~ .*\.(js|css)?$ {

expires 6h;
}

log_format w3cclog '$remote_addr - $remote_user [$time_local] " $request" '

'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log logs/w3c.log w3clog;
}
}

九、構成开机自動启动nginx php

vi /etc/rc.local

在末尾增以下の内容:

ulimit -shn 51200

/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx


十、拡張linux内核パラメータ

vi /etc/sysctl.conf

末尾に以下の内容を追加:

net.ipv4.tcp_fin_timeout = 30

net. ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

使用配置即生效:

/sbin/sysctl –p

ここに到達すると、linux を再起動できます。予想外のメッセージが表示されます。nginx

平滑重启nginx

ps 補助 | grep nginx

nginx のマスター プロセスに到達します。例: 5800、その後 kill
kill –hup 5800

平滑重启php

/usr/local/webserver/php/sbin /php-fpm restart

php-fpm のその他のコマンド:start |停止 |やめる |再起動 |リロード |ログローテート

以上がLinux+Nginx+Phpで高性能WEBサーバーを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

MySQLはAndroidで実行できますか MySQLはAndroidで実行できますか Apr 08, 2025 pm 05:03 PM

MySQLはAndroidで直接実行できませんが、次の方法を使用して間接的に実装できます。Androidシステムに構築されたLightWeight Database SQLiteを使用して、別のサーバーを必要とせず、モバイルデバイスアプリケーションに非常に適したリソース使用量が少ない。 MySQLサーバーにリモートで接続し、データの読み取りと書き込みのためにネットワークを介してリモートサーバー上のMySQLデータベースに接続しますが、強力なネットワーク依存関係、セキュリティの問題、サーバーコストなどの短所があります。

ターミナルからMySQLにアクセスできません ターミナルからMySQLにアクセスできません Apr 08, 2025 pm 04:57 PM

端末からmysqlにアクセスできない場合は、次の理由があります。MySQLサービスが実行されていません。接続コマンドエラー;許可が不十分です。ファイアウォールは接続をブロックします。 mysql構成ファイルエラー。

Linuxの最も使用は何ですか? Linuxの最も使用は何ですか? Apr 09, 2025 am 12:02 AM

Linuxは、サーバー、組み込みシステム、デスクトップ環境で広く使用されています。 1)サーバーフィールドでは、Linuxは、その安定性とセキュリティにより、Webサイト、データベース、アプリケーションをホストするための理想的な選択肢となっています。 2)埋め込みシステムでは、Linuxは高いカスタマイズと効率で人気があります。 3)デスクトップ環境では、Linuxはさまざまなユーザーのニーズを満たすために、さまざまなデスクトップ環境を提供します。

Centosインタビューの質問:Linuxシステム管理者のインタビューをエース Centosインタビューの質問:Linuxシステム管理者のインタビューをエース Apr 09, 2025 am 12:17 AM

よくある質問とCentosインタビューへの回答には次のものがあります。1。YumまたはDNFコマンドを使用して、SudoyuminInstallnginxなどのソフトウェアパッケージをインストールします。 2。sudouseradd-m-s/bin/bashnewuserなどのuseraddおよびgroupAddコマンドを介してユーザーとグループを管理します。 3. firewalldを使用して、sudofirewall-cmd - permanent-add-service = httpなどのファイアウォールを構成します。 4. sudoyuninstallyum-cronなどのyum-cronを使用する自動更新を設定し、Apply_updates = yesを構成します。

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

主要なLinux操作:初心者向けガイド 主要なLinux操作:初心者向けガイド Apr 09, 2025 pm 04:09 PM

Linuxの初心者は、ファイル管理、ユーザー管理、ネットワーク構成などの基本操作をマスターする必要があります。 1)文件管理:使用mkdir、タッチ、ls rm 3)ネットワーク構成:ifconfig、echo、およびufwコマンドを使用します。これらの操作はLinuxシステム管理の基礎であり、それらをマスターすることでシステムを効果的に管理できます。

See all articles