flagflag  
3: 2010-04-17 (Sat) 12:05:35 admin source Cur: 2023-08-17 (Thu) 13:00:56 iseki source
Line 1: Line 1:
** PHP: Hypertext Preprocessor [#k50e5340] ** PHP: Hypertext Preprocessor [#k50e5340]
 +
*** Links [#b2d61ed1] *** Links [#b2d61ed1]
- http://www.php.net/ - http://www.php.net/
Line 5: Line 6:
- 日本PHPユーザー会 (Japan PHP User Group) - 日本PHPユーザー会 (Japan PHP User Group)
-- http://www.php.gr.jp/ -- http://www.php.gr.jp/
 +- 非推奨関数とか,本当勘弁してもらいたい.C言語を見習え!
 +#br
 +
 +*** Version [#r6fc27c8]
 +- [[PHP7 >./PHP7]]
 +- [[PHP8 >./PHP8]]
 +
 +#br
 +
 +*** Install [#g3ac2181]
 +- --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)
 +
 +- PHP-5.6 + OpenSSL-1.1 の場合は パッチを当てる.[[php56.36-openssl11.patch>http://www.ns​l.tuis.ac.jp/DownLoad/SoftWare/PHP/php56​.36-openssl11.patch]]
 +-- see also https://bugs.php.net/patch-display.php?b​ug_id=73741&patch=php56-openssl11&revisi​on=latest
 +#br
 +
 +**** configure [#la6d7565]
 + # 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
 +
 +**** configure オプションの修正 [#u42ccc8f]
 +- 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
*** 設定 [#y94248ee] *** 設定 [#y94248ee]
-- 設定ファイル +**** Cache [#v59a24e5] 
--- /usr/local/lib/php.ini+#br 
 + 
 +**** 設定ファイル [#pd46cce5] 
 +- /usr/local/lib/php.ini 
 +-- ソースディレクトリの php.ini-* をコピー 
 +#br 
 + 
 +**** Short Open Tag [#u7a17883] 
 +- <?  ... ?>, <?=... > 等の Short Open Tag を有効にするには,設定ファイルで以下のように設定する.
-**** <?  ... ?>  <?=... > [#u7a17883] 
-- Short Open Tag を有効にするには,設定ファイルで以下のように設定する. 
 short_open_tag = On  short_open_tag = On
#br #br
 +
*** MySQL [#f960f3f5] *** MySQL [#f960f3f5]
- 処理中の文字コードを UTF-8にする場合 - 処理中の文字コードを UTF-8にする場合
Line 24: Line 77:
- mb_internal_encoding("utf-8") は php.ini でも指定可能. - mb_internal_encoding("utf-8") は php.ini でも指定可能.
- SET NAMES utf8 でクエリの文字コードを指定可能. - SET NAMES utf8 でクエリの文字コードを指定可能.
 +#br
 +
 +*** PHP 関数拡張 [#q614929b]
 +- [[PHP Extension]]
 +- [[Sodium>PHP Extension/Sodium]]
 +#br
 +
 +*** Trouble Shooting [#t160986a]
 +**** エラーログ [#u1a71917]
 +- /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
 +
 +
 +#br
 +
 +**** dl() でモジュールを呼んでくれない [#v9ecf83f]
 +- php.ini で enable_dl = On とする.
 +#br
 +
 +**** php.ini の設定が反映されない [#df20ad07]
 +- php -i |grep php.ini  で PHPが実際に読み込んでいる php.ini を調べる
 +- PHPが WWWサーバのモジュールとしてではなく,php-fpm で動いている場合は,php-fpm を再起動する必要がある.
 + systemctl restart php-fpm
 +#br
 +
 +**** CetOS8 / Rocky Linux8 で PHPを 7.2から 7.4 にする [#l84ed33f]
 + dnf module list php
 + dnf module reset php
 + dnf module enable php:7.4 -y
 + yum erase php
 + yum install php --allowerasing
 +#br
 +
 +*** PHP errors [#yba82631]
 +
 +**** opcache.so: undefined symbol: sapi_globals, opcache.so: undefined symbol: core_globals_id [#rb49ddd0]
 +- yum でPHPを入れたまま,PHPの最新版をコンパイルして入れたら,ログに出力されるようになった.
 +- yum で 古いPHPを削除したところ発生しなくなった.
 + yum remove 'php-*'
 +
 +**** doesn't appear to be a valid Zend extension [#e2c14635]
 +- 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
 +
 +****  AH00052: child pid # exit signal Segmentation fault (11) [#s08c8197]
 +- PHP 5.5.12 で発生.
 +- PHP 5.6.3 にアップデータしたところ,エラーが出なくなる
 +- Apache のworkerの問題かも
 +#br
 +
 +**** Notice: Undefined index: [#c3c0d432]
 +- 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
 +になる。問題先延ばしだが、開発者以外なら問題なかろう
 +
 +#br


Front page   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)

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 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 31
Today

Who's Online

70 user(s) are online (24 user(s) are browsing xpwiki)

Members: 0
Guests: 70

more...

Access Counter

Today : 3353335333533353
Yesterday : 1361113611136111361113611
Total : 2364176023641760236417602364176023641760236417602364176023641760
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com