ホームページ 運用・保守 Nginx CentOS環境にnginx、php、仮想ホストをデプロイする方法

CentOS環境にnginx、php、仮想ホストをデプロイする方法

May 13, 2023 pm 12:40 PM
php centos nginx

os 環境: centos 6.1
nginx: nginx-1.2.2
php:php5.3.14
0.依存関係パッケージをインストール

コードをコピー コードは次のとおりです。 :

yum install openssl-devel pcre-devel zlib-devel libjpeg-devel libpng-devel freetype-devel gcc make

1. nginx

# を実行するために www ユーザーを追加します## コードをコピーします コードは次のとおりです:

useradd -m -r -s /sbin/nologin -d /opt/web/ www

2. 一時ディレクトリを作成します


コードをコピーします。 コードは次のとおりです。

mkdir -p /var/tmp/nginx/client/

mkdir -p /var/tmp/nginx/proxy/
mkdir -p /var/tmp/nginx /fcgi/

3. nginx ソース コードの最新の安定バージョンをダウンロードします


コードをコピーします。コードは次のとおりです。

cd /usr/local/src/

wget http://nginx.org/download/nginx-1.2.2.tar.gz

4. 解凍し、コンパイルし、 install


コードをコピーします。コードは次のとおりです。

tar vxzf nginx-1.2.2.tar.gz

cd nginx-1.2.2/
./ \
--prefix=/opt/web/nginx \
--error -log-path=/var/log/nginx/error.log \
--pid-path=/var/ を設定します。 run/nginx/nginx.pid \
--lock-path=/var/lock/ nginx.lock \
--user=www \
--group=www \
--with -http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-log-path=/var/log/nginx/access.log \
--http- client-body-temp-path=/var/tmp/nginx/client/ \
- -http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi- temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi -temp-path=/var/tmp/nginx/uwsgi/
make
make install

5. nginx の設定


コードをコピーします。コードは次のとおりです:

vim /opt/web/nginx/conf/nginx.conf

# 起動ユーザーを指定します。
user www www;
# プロセスの数。独自のトラフィックに基づいて、nginx 作成者は 1 つで十分だと考えています。
worker_processes 1;
# を変更します。 エラー ログ:
#error_log を設定します。 logs/error.log 通知;
#error_log logs/error.log 情報;
error_log /var/log/nginx/ error.default.log;
pid /opt/web/nginx/nginx.pid ;
events {
use epoll;
worker_connections 1024;
}
http {
charset utf-8;
include mime.types;
default_type application/octet -stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$ status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for "';
#access_log logs/access.log main;
sendfile on;
tcp_nopush on;
tcp_nolay on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css text/xml
application/x-javascript application/xml
application/atom xml text/javascript;
server {
listen 80;
server_name localhost;
charset utf-8;
#access_log ログ /host.access.log main;
location / {
root html;
indexindex.htmlindex.htm;
}
#error_page 404 /404.html;
# サーバーエラーページを静的ページ /50x.html
##error_page にリダイレクトします500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# 127.0.0.1:80
# でリッスンする Apache に PHP スクリプトをプロキシします
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# 127.0.0.1:9000
でリッスンしている fastcgi サーバーに php スクリプトを渡します
#location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index Index.php;
#fastcgi_param script_filename /scripts$fastcgi_script_name;
# include fastcgi_params;
include fastcgi.conf;
}
# Apache のドキュメント ルート
# が nginx の 1 つの

# 場所 ~ /\ と一致する場合、.htaccess ファイルへのアクセスを拒否します。 ht {
すべて拒否;
}
}
# IP、名前、およびポートベースの構成を組み合わせて使用​​する別の仮想ホスト

server {
# listen 8000;
# listen somename:8080;
# server_name somename エイリアス another.alias;
# location / {
# root html;
#indexindex.htmlindex.htm;
# }
#}
# https サーバー

##server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols sslv2 sslv3 tlsv1 ;
# ssl_ciphers high:!anull:!md5;
# ssl_prefer_server_ciphers on ;
# location / {
# root html;
#indexindex.htmlindex.htm;
# }
#}
proxy_read_timeout 200;
# の場合のみ再試行しますTornado サーバーでタイムアウトではなく通信エラーが発生しました
# (すべてのフロントエンドへの「死のクエリ」
# の伝播を避けるため)
proxy_next_upstream エラー;
proxy_set_header x-scheme $scheme;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header host $host;
proxy_set_header x-forwarded-for $ proxy_add_x_forwarded_for;
#仮想ホスト ファイルを導入する
include /opt/web/ nginx/conf/sites/*.conf;

##6. 仮想マシン構成ファイルが保存されるディレクトリを作成します

## コードをコピーする コードは次のとおりです。


mkdir /opt/web/nginx/conf/sites

この構成の後、新しい仮想ホストを追加する必要がある場合は、構成ファイルを nginx/conf/sites/ ディレクトリに直接追加します。
例: これで、www.jb51.net ドメイン名が作成されました
作成: /opt/ web/nginx/conf/sites/www.jb51.net.conf ファイル
の内容は次のとおりです:

コードをコピーします コードは次のとおりです。

server {
listen 80;
client_max_body_size 10m;
#複数のドメイン名はスペースで区切られ、最初のドメイン名がデフォルトです
server_name www.jb51.net jb51.net ;
charset utf-8;
indexindex.htmlindex.htmindex.php;
#ルートディレクトリを定義します
set$root/var/webroot/www.jb51.net/;
# サイト パスを設定します
root $root;
# ディレクトリの参照を防止します
autoindex off;
if ($host != 'www.jb51.net') {
rewrite ^ /(.*)$ //www.jb51.net/$1 Permanent;
}
# .htaccess ファイルが要求されないようにします
location ~ /\.ht {
deny all;
}
error_page 404 /404.html;
indexindex.htmlindex.htm;
location/uploads/ {
alias /data/webroot/www.jb51.net/uploads/;
}
try_files $uri @uwsgi;
location @uwsgi{
# 他のリクエストを uwsgi に転送する
include uwsgi_params;
uwsgi_pass unix:/tmp/360ito_uwsgi.sock;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header host $host;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
#proxy_pass http://localhost:5000;
}
# php タイプのリクエストを fastcgi
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
include fastcgi.conf;## に転送します。 #}
# アクセス ログ:
access_log /var /log/nginx/access.www.jb51.net.log;
# .htaccess 書き換えファイルをロードします。ここでは変数パスがサポートされていないことに注意してください。
# は include $root/www.jb51.net/.htaccess;
# include /var/webroot/www.jb51.net/.htaccess;
# のように記述することはできません ドメイン名ジャンプが有効な場合、アクセス エラーが発生すると、他のドメイン名は自動的に www.jb51.net にジャンプします
# ここで私が言いたいのは、ジャンプはアクセス エラーが発生した場合にのみ発生するため、ここでは 301 リダイレクトを実装できないことに注意してください。 !
server_name_in_redirect on;
}

7. 最新バージョンの php (php5.3.14) をインストールします


コードをコピーしますコードは次のとおりです:

cd /usr /local/src/

wget http://cn.php.net/get/php-5.3.14.tar.bz2/from/this/mirror
tar xjvf php-5.3 .14.tar.bz2
cd php-5.3.14

実行:


コードをコピーします。コードは次のとおりです:

./buildconf - -force

if エラーが報告された場合は、autoconf がバージョン 2.13 ではない可能性があります。php5.3 シリーズのバグについては、autoconf バージョン 2.13 をインストールする必要があります:


コードをコピーします。 コードは次のとおりです。

centos: # yum install autoconf213

debian: # apt-get install autoconf2.13

Set 環境変数


コードをコピーします コードは次のとおりです:

# centos:

export php_autoconf="/usr/bin/autoconf-2.13"
# debian:
export php_autoconf="/usr/ bin/autoconf2.13"

./buildconf - -force を再度実行します。buildconf: autoconf version 2.13 (ok)

が表示されれば成功です。
php をコンパイルしてインストールします

コードをコピーしますコードは次のとおりです:

./configure \

--prefix=/opt/web/php \
--with -config-file-path=/opt/web/php/etc \
--with-config-file-scan-dir=/opt/web/php/etc/conf.d \
--enable -fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=/opt/db/percona- server-5.5.14 -rel20.5 \
--with-mysqli=/opt/db/percona-server-5.5.14-rel20.5/bin/mysql_config \
--with-iconv-dir \
- -with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with- libxml-dir \
--enable-xml \
--enable-mbstring \
--with-gd \
--enable-gd-native-ttf \
--with -openssl \
--enable-inline-optimization
make && make install
cp php.ini-production /opt/web/php/etc/php.ini
cd /opt/web/ php/etc
cp php-fpm.conf.default php-fpm.conf

php-fpm.conf を変更して次の行を有効にします。つまり、前のセミコロン (;)

を削除します。

コードをコピーします。 コードは次のとおりです。

pid = run/php-fpm.pid

error_log = log/php-fpm.log
log_level = Notice
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
グループ = www
pm = 動的
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
env[ホスト名] = $hostname
env[パス] = /usr/local/bin:/usr/bin:/bin
env[tmp] = /tmp
env[tmpdir] = / tmp
env[temp] = / tmp

8. php-fpm


コードをコピーしますコードは次のとおりです:

/opt/ web/php/sbin/php-fpm

Start nginx


コードをコピーしますコードは次のとおりです:

/opt/web/nginx/sbin/nginx

9. テストします


コードをコピーします コードは次のとおりです:

vim /var/webroot/www.jb51.net/tz.php

入力して保存します


コードをコピーしますコードは次のとおりです:

phpinfo();
?>

10。入力:http://php.jb51.net/tz.php
成功すれば、phpinfo()による情報出力を見ることができます

以上がCentOS環境にnginx、php、仮想ホストをデプロイする方法の詳細内容です。詳細については、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)

CentOS構成IPアドレス CentOS構成IPアドレス Apr 14, 2025 pm 09:06 PM

CentosでIPアドレスを構成する手順:現在のネットワーク構成を表示します:IP ADDRネットワーク構成ファイルを編集するファイル:Sudo VI/etc/sysconfig/network-scripts/ifcfg-eth0変更IPアドレス:iPaddr =編集マスクとゲートウェイの変更(オプション):Netmask = and edit edit gatewway = neters rettart rettart the sudo system system systemctrat

CentOS HDFS構成を最適化する方法 CentOS HDFS構成を最適化する方法 Apr 14, 2025 pm 07:15 PM

CENTOSのHDFSパフォーマンスの向上:CENTOSのHDFS(Hadoop分散ファイルシステム)を最適化するための包括的な最適化ガイドには、ハードウェア、システム構成、ネットワーク設定を包括的に検討する必要があります。この記事では、HDFSパフォーマンスを改善するのに役立つ一連の最適化戦略を提供します。 1.ハードウェアのアップグレードと選択リソースの拡張:サーバーのCPU、メモリ、ストレージ容量を可能な限り増やします。高性能ハードウェア:高性能ネットワークカードとスイッチを採用して、ネットワークスループットを改善します。 2。システム構成微調整カーネルパラメーター調整:/etc/sysctl.confファイルを変更して、TCP接続番号、ファイルハンドル番号、メモリ管理などのカーネルパラメーターを最適化します。たとえば、TCP接続ステータスとバッファサイズを調整します

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

CentosとUbuntuの違い CentosとUbuntuの違い Apr 14, 2025 pm 09:09 PM

Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

Centosシャットダウンコマンドライン Centosシャットダウンコマンドライン Apr 14, 2025 pm 09:12 PM

Centos Shutdownコマンドはシャットダウンし、構文はシャットダウン[オプション]時間[情報]です。オプションは次のとおりです。-hシステムをすぐに停止します。 -pシャットダウン後に電源をオフにします。 -r再起動; -t待機時間。時間は、即時(現在)、数分(分)、または特定の時間(HH:mm)として指定できます。追加の情報をシステムメッセージに表示できます。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Centos HDFSパフォーマンスのチューニングのヒント Centos HDFSパフォーマンスのチューニングのヒント Apr 14, 2025 pm 06:00 PM

CENTOSプラットフォームHadoop分散ファイルシステム(HDFS)パフォーマンス最適化ガイドHDFSパフォーマンスの最適化は、多面的な問題であり、特定の状況に合わせて複数のパラメーターを調整する必要があります。以下は、いくつかの重要な最適化戦略です。1。メモリ管理は、NAMENODEおよびDATANODEメモリ構成を調整します。HADOOP_NAMENODE_OPTSとHADOOP_DATANODE_OPTS環境変数を合理的に構成して、サーバーの実際のメモリサイズに従ってメモリの使用率を最適化します。大規模なページメモリを有効にする:高メモリ消費アプリケーション(HDFSなど)の場合、大きなページメモリを有効にすると、メモリページの割り当てと管理オーバーヘッドを削減し、効率を向上させることができます。 2。ディスクI/O最適化は高速ストレージを使用します

See all articles