flagflag  
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
    になる。問題先延ばしだが、開発者以外なら問題なかろう
 

Front page   Freeze Diff Backup Copy Rename Reload   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 5183, today: 3, yesterday: 1
Last-modified: 2023-08-17 (Thu) 13:00:56 (JST) (244d) by iseki

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthApr 2024Next Month
Su Mo Tu We Th Fr Sa
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
Today

Who's Online

53 user(s) are online (4 user(s) are browsing xpwiki)

Members: 0
Guests: 53

more...

Access Counter

Today : 3046304630463046
Yesterday : 6474647464746474
Total : 2327067423270674232706742327067423270674232706742327067423270674
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com