flagflag  If you want to see English page, please click "English" Button at Left.
5: 2012-03-27 (火) 17:44:53 iseki ソース 現: 2023-08-17 (木) 13:00:56 iseki ソース
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 #br
*** Install [#g3ac2181] *** Install [#g3ac2181]
-- --enable-intl を指定する場合は libicu-devel パッケージが必要+- --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 -  # zcat php-5.x.y.tar.gz |tar xfv -
 # cd php-5.x.y  # cd php-5.x.y
- # ./configure --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config + #./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
-                --with-pdo-mysql=/usr/local/mysql +              --with-apxs2=/usr/local/apache/bin/apxs
-                --with-apxs2=/usr/local/apache/bin/apxs +              --with-openssl=/usr/local/ssl --with-zlib=/usr
-                --enable-sockets --enable-zip --enable-soap --enable-pcntl +              --enable-mbstring --with-iconv --enable-intl
-                --enable-mbstring --with-iconv --enable-intl +              --enable-zip --enable-soap --enable-pcntl
-                --with-zlib=/usr --with-openssl=/usr/local/ssl --with-curl --with-xmlrpc +              --enable-sockets --with-curl --with-xmlrpc --enable-opcache
-                --with-gd --with-jpeg-dir --with-png-dir+              --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir=/usr
 # make  # make
 # make test  # make test
 # make install  # 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]
Line 45: Line 79:
#br #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 #br


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
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
<今日>

オンライン状況

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

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

もっと...

アクセスカウンタ

今日 : 3796379637963796
昨日 : 1889718897188971889718897
総計 : 2341739323417393234173932341739323417393234173932341739323417393
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com