:::: MENU ::::
Posts tagged with: nginx

CentOS6系のPHP5.xを7.xへアップデート

CentOS6系のPHP5.xをPHP7.xに更新したメモ

環境

ここのサーバーでは、下記の環境でphp7.3更新作業を行いました
Scientific Linux 6.9
nginx
php-fpm
php5.6

更新前に作業

php5.xを削除するので、/etc/php.iniのバックアップ
php-fpmも再設定が必要なので、/etc/php-fpm.d/www.confをバックアップ

現在のPHP確認

$ php -v
PHP 5.6.35 (cli) (built: Mar 29 2018 07:37:47)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

旧バージョンの削除

# yum remove php-*
(zshだと php-¥*)

epelとremiのインストール確認

remiは6系のものでOK
(remiは最新のもので、priority=1)推薦

# vi /etc/yum.repos.d/remi-php73.repo
[remi-php73]
priority=1
....

/etc/yum.repo.d/内にremi-php7*.repoがあることを確認

念の為、yumのキャッシュを削除

# yum clean all

7.xをインストール

nginx版
# yum install --enablerepo=remi-php73 php php-fpm php-mcrypt php-cli php-common php-devel php-gd php-mbstring php-mysqlnd php-opcache php-pdo php-pear php-pecl-apcu php-pecl-zip php-process php-xml

Apache版
# yum -y install --enablerepo=remi,remi-php73 php php-devel php-mbstring php-mysql php-pdo php-gd

補足:——————————————————————
libargon2の依存関係でアップデート処理が止まる場合は、remiのリポジトリを最新にするか再インストール
https://www.riscascape.net/archives/16990

php7.3の確認

$ php -v
PHP 7.3.0 (cli) (built: Dec 4 2018 20:10:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.0, Copyright (c) 1999-2018, by Zend Technologies

ZendEngineもZendOPcacheに変更され、APCuも導入済みとなっております

OPcache、APCuの設定については、初期設定のまま使用します

php-fpmの設定

下記環境は、個々に違いがあるので自分の環境に合わせてくださいね

# vi /etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
listen.owner = nobody
listen.group = nobody
listen.mode = 0660
user = apache
group = apache
pm = static

保存後、php-fpmを再起動します。

# /etc/init.d/php-fpm restart

php.iniの再設定

default_charset = UTF-8
mbstring.language = Japanese
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
date.timezone = Asia/Tokyo
expose_php = Offmemory_limit = 128M
post_max_size = 128M
upload_max_filesize = 128M
memory_limit = 128M
date.timezone = "Asia/Tokyo"

保存後、nginx再起動

# /etc/init.d/nginx restart


nginxでSSL 3.0を無効に設定(POODLE対応)

こちらのサーバーでは、nginxを利用しているので、POODLE対策(SSL3.0無効化)は下記の行を、nginx.confに明記するだけです。

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

設定後は、nginxを再起動しましょう!


nginxで停止・再起動が出来ないとき

nginxで運用中にて、nginxやphp,mysql周りでアップデート等があったりすると再起動させたい場合があります。

しかし、nginxを停止・再起動が出来ない場合も偶に起こります。

# service nginx stop
nginx: [emerg] bind() to 0.0.0.0:8002 failed (98: Address already in use)
…..

#service nginx restart
nginx: [emerg] bind() to 0.0.0.0:8002 failed (98: Address already in use)
…..

すでに、Apacheのhttpdが起動していると、このような症状が起きるので、Apacheが起動していれば、停止するだけで解決するでしょう。

# service httpd stop

もし、Apacheが起動していなければ、80番ポートを下記にて停止してあげればOKです。

# fuser -k 80/tcp

# service nginx restart

nginx を起動中: [ OK ]

 


nginxをyumでアップデート

さくらのVPS上のsl6で自コンパイルして稼働しているnginxを1.0.4から1.0.10へyumにてアップデートした。

sl6の標準パッケージでは、nginxが入っていないので、RHELのリポジトリを追加してyumで更新しました。

  1. nginx用のリポジトリ作成
    # vi /etc/yum.repo.d/nginx.repo

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
    gpgcheck=0
    enabled=1
    
  2. sl6では、$releaseverを置き換え
    $releaseverの部分を6に置き換える
  3. 保存して、更新
    # yum update
  4. アップデート
ちなみに、他のプラットフォームでもリポジトリが用意されているので、CentOS,Ubuntu,Debianはこちらを参照の事。

413 Request Entity Too Large

WordPressのweaverテーマで、ヘッダ画像をアップロードしようとしたら、下記のエラーが出た。

413 Request Entity Too Large 

サーバプログラムは、nginxで、client_max_body_siteは100Mを指定しているのになぜ??

実は、client_max_body_siteの記述をvirtualhost定義内に記載していたのが間違いのよう。

/etc/nginx.conf内のhttp{}内に記載したら、行けましたとさ。

あと、nginxはreloadやrestartでなく、stopしてstartした方が良さげ。