====== Nginx のインストール ====== ===== リポジトリの追加 ===== nginx.repo を追加し、最新版を取って来れられるようにします。 [nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1 ===== インストール ===== # yum -y install nginx ===== 起動チェック ===== 以下を実行し、ブラウザでアクセスできるかを確認。 # systemctl start nginx ===== 自動起動サービスの登録 ===== 自動起動に登録されているかチェック。 # systemctl list-unit-files | grep nginx nginx.service disabled 自動起動に登録。 # systemctl enable nginx.service ===== Nginx で php を使う ===== Nginx で php を使う場合、php-fpm をインストールします。 # yum -y install epel-release # yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # yum -y install --enablerepo=remi,remi-php72 php php-opcache php-fpm php-fpm の起動と、php-fpm を自動起動に設定します。 # systemctl start php-fpm # systemctl enable php-fpm.service ===== nginx の設定 ===== 設定ファイルのバックアップ # cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org #****************************************************************************** # nginx 共通設定 #****************************************************************************** user nginx; pid /var/run/nginx.pid; # ワーカープロセス数 worker_processes auto; # エラーログの出力先 error_log /var/log/nginx/error.log; events { # 1ワーカー毎の接続数 worker_connections 2048; } http { include /etc/nginx/mime.types; default_type application/octet-stream; server_tokens off; # ログフォーマットの指定 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 /var/log/nginx/access.log main; # ファイル読み込み、レスポンス送信を sendfile API で行う sendfile on; tcp_nopush on; # タイムアウト時間 keepalive_timeout 3; # オープンしたファイル情報をキャッシュ open_file_cache max=100000 inactive=60s; # オープンエラー情報はキャッシュしない open_file_cache_errors off; # gzip 圧縮転送 gzip on; gzip_http_version 1.0; gzip_comp_level 1; gzip_disable "msie6"; gzip_min_length 1k; gzip_types text/css text/javascript application/javascript application/json; include /etc/nginx/conf.d/*.conf; } server { listen 80; server_name localhost; root /var/www; index index.php index.html index.htm; location / { rewrite ^.*$ /index.php last; location ~* \.(css|js|ico|gif|jpg|png|avi|mpg|mp4|webm|wmv|mp3|ogg|woff|txt|map)$ { root /var/www; } # php の実行設定 location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } ===== https 接続の設定 ===== オレオレ証明書の作成。 # mkdir /etc/nginx/ssl/ # cd /etc/nginx/ssl/ # openssl genrsa 2048 > server.key # openssl req -new -key server.key > server.csr # openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt # rm server.csr # chmod 400 server.* server { listen 443 ssl; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; server_name localhost; root /var/www-ssl; index index.php index.html index.htm; } 設定を反映。 # systemctl reload nginx /var/log/nginx/error.log に (Permission denied とか FastCGI sent in stderr:) と表示されるようなら、\\ SELinux が原因かもしれません。SELinux を一時的に無効にしてみます。 # setenforce Permissive 永続的に無効にする場合は、/etc/sysconfig/selinux を書き換え再起動します。 # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled