flagflag  If you want to see English page, please click "English" Button at Left.
Page Top

Links anchor.png

Page Top

Version anchor.png

 
Page Top

Install anchor.png

  • --enable-intl を指定する場合は libicu-devel (ユニコード用の国際化コンポーネント) が必要
  • --enable-opcache OPCache 使用 (5.5.x~)
  • MariaDBのライブラリに libmysqlclient を使用すると MYSQL_UNIX_ADDR未解決のコンパイルエラが発生する (5.6.36)
    • DBのライブラリに mysqlnd を使用する
  • OpenSSL-1.1.x を使用している場合
    • OpenSSL-1.1.x を使用している場合は, /usr/local/lib にライブラリが必要.シンボリックリンクを張っておく.
    • OpenSSL-1.1.x を使用している場合は以下の様にしてから,configure を実行.
      cd /usr/local/ssl
      ln -s /usr/local/include .
      ln -s /usr/local/lib64 lib
      cd (php-source)
Page Top
configure anchor.png
# zcat php-5.x.y.tar.gz |tar xfv -
# cd php-5.x.y
#./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
             --with-apxs2=/usr/local/apache/bin/apxs \
             --with-openssl=/usr/local/ssl --with-zlib=/usr \
             --enable-mbstring --with-iconv --enable-intl \
             --enable-zip --enable-soap --enable-pcntl \
             --enable-sockets --with-curl --with-xmlrpc --enable-opcache \
             --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir=/usr
# make
# make test
# make install
Page Top
configure オプションの修正 anchor.png
  • PHP7 + OpenSSL1.1 の場合は --with-openssl=/usr/local
    • /usr/local/lib に openssl のライブラリが必要
  • DBのライブラリに libmysqlclient を使用する場合は以下のオプションを指定
    --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql
Page Top

設定 anchor.png

Page Top
Cache anchor.png
 
Page Top
設定ファイル anchor.png
  • /usr/local/lib/php.ini
    • ソースディレクトリの php.ini-* をコピー
       
Page Top
Short Open Tag anchor.png
  • <? ... ?>, <?=... > 等の Short Open Tag を有効にするには,設定ファイルで以下のように設定する.
short_open_tag = On
 
Page Top

MySQL anchor.png

  • 処理中の文字コードを UTF-8にする場合
    mb_internal_encoding("utf-8");
    mysql_set_charset('utf8');
    または
    mb_internal_encoding("utf-8");
    mysql_query("SET NAMES utf8", $db);
  • mb_internal_encoding("utf-8") は php.ini でも指定可能.
  • SET NAMES utf8 でクエリの文字コードを指定可能.
     
Page Top

PHP 関数拡張 anchor.png

Page Top

Trouble Shooting anchor.png

Page Top
エラーログ anchor.png
  • /etc/php.ini の error_log, log_errors で設定
  • パーミッションに注意
log_errors = On
error_log = /var/log/php/php.log
  • ただし php-fpm が動いている場合は,Web上でのエラーは error_log に出ない.
    • /var/log/php-fpm/www-error.log
    • どこで指定してるんだ! ぷんぷん!
    • /etc/php-fpm.d/www.conf
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
 
Page Top
dl() でモジュールを呼んでくれない anchor.png
  • php.ini で enable_dl = On とする.
     
Page Top
php.ini の設定が反映されない anchor.png
  • php -i |grep php.ini で PHPが実際に読み込んでいる php.ini を調べる
  • PHPが WWWサーバのモジュールとしてではなく,php-fpm で動いている場合は,php-fpm を再起動する必要がある.
    systemctl restart php-fpm
     
Page Top
CetOS8 / Rocky Linux8 で PHPを 7.2から 7.4 にする anchor.png
dnf module list php
dnf module reset php
dnf module enable php:7.4 -y
yum erase php
yum install php --allowerasing
 
Page Top

PHP errors anchor.png

Page Top
opcache.so: undefined symbol: sapi_globals, opcache.so: undefined symbol: core_globals_id anchor.png
  • yum でPHPを入れたまま,PHPの最新版をコンパイルして入れたら,ログに出力されるようになった.
  • yum で 古いPHPを削除したところ発生しなくなった.
    yum remove 'php-*'
Page Top
doesn't appear to be a valid Zend extension anchor.png
  • 5.6.3 で自作の拡張関数(.so)を読ませようとしたところ,発生.関数も読み込まれない
  • php.ini に zend_extension ではなく extension でモジュールを記述したところOK
  • モジュールは /usr/local/lib/php/extensions/php_tuis_a​uth.so
  • /usr/local/lib/php.ini
    extension=php_tuis_auth.so
Page Top
AH00052: child pid # exit signal Segmentation fault (11) anchor.png
  • PHP 5.5.12 で発生.
  • PHP 5.6.3 にアップデータしたところ,エラーが出なくなる
  • Apache のworkerの問題かも
     
Page Top
Notice: Undefined index: anchor.png
  • apacheと連携させて、次の様なエラーが出る時(一例)
    Notice: Undefined index:
    php.iniの
    error_reporting = E_ALL
    error_reporting = E_ALL & ~E_NOTICE
    に変更。
    基本的には、エラー文の接頭語にあたる"※※※:"の※部分を"~E_※※※"として、今までのerror_reportingに対して&で繋いでいく。

  • apacheと連携(ry(二例)
    "Deprecated: Assigning the ~"
    error_reporting = E_ALL
    error_reporting = E_ALL & ~E_DEPRECATED
    に変更。

  • apacheと(ry(三例)
    Notice:Deprecated:の両方だと
    error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
    になる。問題先延ばしだが、開発者以外なら問題なかろう
 

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 5250, today: 3, yesterday: 2
最終更新: 2023-08-17 (木) 13:00:56 (JST) (285d) by iseki

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 5月翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
<今日>

オンライン状況

82 人のユーザが現在オンラインです。 (4 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 82

もっと...

アクセスカウンタ

今日 : 4662466246624662
昨日 : 3958395839583958
総計 : 2370490523704905237049052370490523704905237049052370490523704905
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com