このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-7.1/PHP/設定

[ CentOS-7.1 ] [ PHP ] [ PHP インストール ]

PHP 設定

  • モジュール版PHP から FastCGI版PHP に切り替えて、設定します。

FastCGI 設定


##■ php-cgi のシンボリックリンクを作成
[root@localhost ~]# ln -s /usr/bin/php-cgi /usr/local/bin/php
[root@localhost ~]#

モジュール版PHP 無効化


##■ 設定ファイルをバックアップ
[root@localhost ~]# cp -a /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.org
[root@localhost ~]#

##■ php.conf を編集して、モジュール版を無効にする
# vi /etc/httpd/conf.d/php.conf

--------------------------------------------------
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

  ## ↓ コメントアウト化する

#<FilesMatch \.php$>
#    SetHandler application/x-httpd-php
#</FilesMatch>
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

FastCGIモジュール 設定


##■ 設定ファイルをバックアップ
[root@localhost ~]# cp -a /etc/httpd/conf.d/fcgid.conf /etc/httpd/conf.d/fcgid.conf.org
[root@localhost ~]#

##■ fcgid.conf を編集する
# vi /etc/httpd/conf.d/fcgid.conf

--------------------------------------------------
##★ 追記する (FCGIサーバへのリクエストがあってから、待機をしている時間を "3600秒" に設定)
FcgidIOTimeout 3600

##★ 追記する (アイドルプロセスのタイムアウト時間を "600秒" に設定)
FcgidIdleTimeout 600

##★ 追記する (FCGIアプリケーションのタイムアウトを "600秒" に設定)
FcgidBusyTimeout 600

##★ 追記する (アイドルプロセスの寿命を "3600秒" に設定)
FcgidProcessLifeTime 3600

##★ 追記する (FcgidBusyTimeoutを監視する間隔を "120秒" に設定)
FcgidBusyScanInterval 120

##★ 追記する (FastCGIアプリケーションプロセスの最大数を "100" に設定)
FcgidMaxProcesses 100

##★ 追記する (FastCGIアプリケーションクラスにおける最大プロセス数を "10" に設定)
FcgidMaxProcessesPerClass 10

##★ 追記する (各FastCGIアプリケーションが処理する最大リクエストを "0" に設定)
FcgidMaxRequestsPerProcess 0

##★ 追記する (HTTPのリクエストの長さの上限を "1GB" に設定)
FcgidMaxRequestLen 1073741824

##★ CGI 出力バッファサイズを "0" に設定
FcgidOutputBufferSize 0
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

ユーザーディレクトリ 設定

"admin" ユーザーのホームディレクトリを調整


##■ .fast-cgi-bin ディレクトリを作成する
[root@localhost ~]# mkdir /home/admin/.fast-cgi-bin
[root@localhost ~]#

##■ php.cgi 作成
[root@localhost ~]# vi /home/admin/.fast-cgi-bin/php.cgi

--------------------------------------------------
#!/bin/sh
exec /usr/local/bin/php
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ 所有者 変更
[root@localhost ~]# chown -R admin. /home/admin/.fast-cgi-bin
[root@localhost ~]#

##■ パーミッション 変更
[root@localhost ~]# chmod 0711 /home/admin/.fast-cgi-bin/php.cgi
[root@localhost ~]#

Apache VirtualHost 設定

  • /etc/httpd/conf.d/vhost.conf に FcgidWrapper を追加する。


# vi /etc/httpd/conf.d/vhost.conf

--------------------------------------------------
<VirtualHost _default_:80>
  ##★ 追記する
  FcgidWrapper /home/admin/.fast-cgi-bin/php.cgi .php
</VirtualHost>
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ httpd 再読み込み
[root@localhost ~]# systemctl reload httpd.service
[root@localhost ~]#

htscanner インストール

  • ※ スクリプト実行時に.htaccessを読み込み、設定を取り込んでくれる拡張である。


##■ htscanner をインストールする
[root@localhost ~]# /usr/bin/pecl install htscanner
[root@localhost ~]#

##■ 設定ファイルを新規作成する
[root@localhost ~]# vi /etc/php.d/htscanner.ini

--------------------------------------------------
[htscanner]
; Enable htscanner extension module
extension="htscanner.so"
config_file=".htaccess"
; The fallback docroot when htscanner can't determine the current docroot default_docroot="/"
default_ttl=300
; Stop when an error occured in RINIT (no document root, cannot get path_translated,...)
stop_on_error = 0
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

PHP 設定ファイル 編集


##■ 設定ファイルをバックアップ
[root@localhost ~]# cp -a /etc/php.ini /etc/php.ini.org
[root@localhost ~]#

##■ 設定ファイルを編集する
[root@localhost ~]# vi /etc/php.ini

--------------------------------------------------
short_open_tag = Off
  ## ↓ 変更する
short_open_tag = On


expose_php = On
  ## ↓ 変更する
expose_php = Off


max_execution_time = 30
  ## ↓ 変更する (場合に応じて変更する) (vm.lan では変更無し)
max_execution_time = 180


max_input_time = 60
  ## ↓ 変更する (場合に応じて変更する) (vm.lan では変更無し)
max_input_time = 360


error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
  ## ↓ 変更する
error_reporting = E_ERROR | E_WARNING | E_PARSE | E_NOTICE


log_errors = On
  ## ↓ 変更する
log_errors = Off


variables_order = "GPCS"
  ## ↓ 変更する
variables_order = "EGPCS"


upload_max_filesize = 2M
  ## ↓ 変更する (場合に応じて変更する) (vm.lan では変更無し)
upload_max_filesize = 12M


;date.timezone =
  ## ↓ コメントアウトを外して、変更する
date.timezone = "Asia/Tokyo"


;session.save_path = "/tmp"
  ## ↓ コメントアウトを外す
session.save_path = "/tmp"


;mbstring.language = Japanese
  ## ↓ コメントアウトを外す
mbstring.language = Japanese
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ Apache 再起動
[root@localhost ~]# systemctl restart httpd.service
[root@localhost ~]#

PHP-FPM 起動


##■ PHP-FPM を起動する
[root@localhost ~]# systemctl start php-fpm
[root@localhost ~]#

PHP-FPM サービス 有効化


##■ PHP-FPM サービス起動を有効にする
[root@localhost ~]# systemctl enable php-fpm
ln -s '/usr/lib/systemd/system/php-fpm.service' '/etc/systemd/system/multi-user.target.wants/php-fpm.service'
[root@localhost ~]#

/etc/skel/ 設定追加


##■ .fast-cgi-bin ディレクトリを作成する
[root@localhost ~]# mkdir /etc/skel/.fast-cgi-bin
[root@localhost ~]#

##■ php.cgi 作成
[root@localhost ~]# vi /etc/skel/.fast-cgi-bin/php.cgi

--------------------------------------------------
#!/bin/sh
exec /usr/local/bin/php
--------------------------------------------------

##■ 保存して編集終了
:wq
[root@localhost ~]#

##■ パーミッション 変更
[root@localhost ~]# chmod 0711 /etc/skel/.fast-cgi-bin/php.cgi
[root@localhost ~]#




以上で、"PHP" の設定は、完了です。


PHP ]

0 件のコメント:

人気記事

このブログを検索