Sidebar |
phpのchmヘルプファイルの作り方(ダウンロードしたchmが 文字化 け) 執筆:2007.07.05 公式サイトのchmが文字化けして、キーワードが読めなくなったり 通常はこちら» php マニュアル 文字化け 解決、 chmヘルプファイルの作り方 、 ダウンロードしたchmが文字化け'">続きを読む カテゴリー: ぷろぐらみんぐ
2007.07.10
タイトル
執筆:2024.04.04
編集:2024.04.06 cygwin 3.5 PHP-8.3.4 $ uname -ro 3.5.1-1.x86_64 Cygwin
cygwinの環境が独自仕様の変数とか配置とかで 標準のLinuxと違うみたいで 標準のphpのソースだとそのまま通らないみたい。 cygwin環境は パッチを当てないとPHPのビルドはできません。 以前XP用にXP未サポートのPHP5.6をビルドしたことがあったので、なんとなくconfigureの仕組みは知っていたので、書き換えてみた。 php.cygportのパッチ作り直し fedoraの分はすぐ手に入ったのでそのまま差し替えて流用。 残りは、不要なものは無視して、必要そうなものだけ ちゃちゃちゃと書き換えて完了。 コンパイル通らない。 なんでphp.cygport全部ひとまとめにしているのだろう。 基本パッケージcli,sapi毎(cgi,apache),extを最低でもわけるべき。 extなんかbuild後に自動でphplizeすればいいことでしょ。デバッグできないような余計なパッケージして手間かけさせて迷惑。 全部まとめるならオプション渡して必要なものに変更できるようにしないと。 自分の用途で動けばいいだけなのでパッケージとかは考えない。 cygport prepでパッチまで当てて、 残りは、./confugiureで使用する環境に合わせる ./configure --prefix=/usr/local/php/8 $OPTIONS_CONF config.status: executing default commands
+--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. make 落ちたところで少し修正
原因が分かったので解決。 あら、作業開始後に cygwinのバージョンが変わってる $ uname -ro 3.5.3-1.x86_64 Cygwin
完成!! uname -ro && sapi/cli/php -v
動作確認完了 やったね!🥂 システムのPHPと置き換え make install
OK 🍕 デフォルトのphp消してもいいかも? apt-cyg remove php
🍳 phpのインストールパスをシステムに登録して完成。 nano ~/.bashrc export PATH="/usr/local/php/8/bin:$PATH"
今回はさすがに無理かと思いました🤣🤮 少し手間かかりましたが いけましたね。💯 $ php -r "echo 'PHP'.phpversion().'-'.PHP_OS;" PHP8.3.4-CYGWIN_NT-10.0-19045
cygwin で PHP8 完🎉🍭 カテゴリー: ぷろぐらみんぐ
2024.04.06
[PHP8.0] Fatal error: Uncaught PDOException: could not find driver in php : PDO->__construct('sqlite:...')
執筆:2021.02.23
編集:2021.02.23 PHP7.4はスキップしたので PHP8に対応させようとPHP8をインストール, phi.iniをコピペして、 php.ini-developmentと亀の差分表示機能で比較しながら編集保存。 そーれ! webいけーー!! Fatal error: Uncaught PDOException: could not find driver in php : PDO->__construct('sqlite:...') なーぜぇーー。(´;ω;`)ウゥゥ "C:\...\php" -r "echo (new PDO('sqlite::memory:')?'OK!!':'NG');";
OK!! うーん。 phpinfo(); Server API Apache 2.0 Handler PDO PDO support enabled PDO drivers mysql pdo_mysql PDO Driver for MySQL enabled Client API version mysqlnd 8.0.2 pdo_sqliteがない。 php -i Server API => Command Line Interface PDO Driver for SQLite 3.x => enabled SQLite Library => 3.33.0
比較しても同じ値だし、読み込めないなら両方モジュールロードが失敗しないといけないし、Apacheで中途半端に読み込んでいるのもおかしい。 apacheのエラーログを見ると4個ロードに失敗していた。 PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: ) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'intl' (tried: ) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: ) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'sqlite3' (tried: ) in Unknown on line 0 dir "パス" コマンドにいれると表示されるのでパスは間違っていないし、上記以外の他のモジュールはロードされている。 これは、php8apache2_4.dllやpdo_sqliteのバグということで今後のマイナーチェンジに期待。 apacheの本体を更新しないといけないのかもしれないが、確認・更新するのも面倒なので保留。 PHP8.1でも直らなかったら、apacheの更新をしてみようと思います。 せっかくPHP8.0を用意しているので 動作確認はしたい。 ということで CGIモードに変更して対処 AddHandler php-script .php
開発環境だし とりあえず、動くようになって、デバッグもできるのでいいとしよう。 カテゴリー: General
2021.02.23
PDO::mysql_client_encodingが 無くてSQLで発行すると不便なので実装してみた。
PDO::mysql_set_charset($charsetname) PDO::mysql_client_encoding() PDO::mysql_select_db($dbname) 使い方 $dbh->mysql_set_charset('utf8'); echo $dbh->mysql_client_encoding(); 同じことをsqlで発行するには $dbh->exec('SET CHARACTER SET utf8 '); show variables like 'character_set_client' で Value列を取得 SQLレベルでPDOに実装をまねるなら PDOクラスを継承するといい。 もし、外部から値を受け取る場合は、 その際は、外部から値を受け付けないようにSQLインジェクション対策が必要だろう。 SHOW CHARACTER SETを使うと一覧がとれるので、その中と照合して、設定するようにすれば、よい。 今回は、PDO_MysqlのCソースレベルで対応した。 PHP_ME , PHP_METHOD の PHP_をZEND_にするようにとヘルプにはあったが、 ・名前が嫌い、銘銘方法がきにくわない(企業名だし) ・他のPDOが使っていない ということで今回は使うのは避けた。 有効桁の低い+中途半端なスクリプト言語に期待しても意味がないし、 わざわざ、PDO Cソースレベルので改造は、 コンパイルなどの手間がかかるので 素直に、適当な関数を作るか、PDOを継承したクラスにスクリプトコードで実装するほうが現実的だろう。 「実行結果」 sql: mysql_client_encoding: latin1 get_class :PDO is_a($dbh ,'PDO') :true is_a($dbh ,'PDO_MYSQL') :false $dbh instanceof PDO_MYSQL :false PDO::ATTR_DRIVER_NAME :mysql PDO::ATTR_SERVER_VERSION :5.1.31-community PDO::ATTR_CLIENT_VERSION :5.0.67 check encoding mysql_client_encoding: latin1 set utf8 :true mysql_client_encoding: utf8 mysql_select_db true » 続きを読む カテゴリー: ぷろぐらみんぐ/メモ
2011.02.14
今回
仮想OSのFreeBSD32 7.x 32bit(VirtualPC)を 新規にVirtualboxにFreeBSD 9.x 64bit (Virtualbox)に変更することになりました なぜ最新の10.xをいれないかというと ホスト先のさくらインターネットが version 9だからです portupgradeするとエラーでストップ 最新のportsにしてもエラー portupgrade -N apache22 ... Stop in /usr/ports/www/apache22 pkg install -f m4 pkg install -f apr pkg install -f gettext portupgrade -N apache22 よくわからないけど直った。 どうやら、ほかのパッケージの不具合でmakeできなかったらしい。 » 続きを読む カテゴリー: General
2014.05.24
タイトル
執筆:2024.02.24
編集:2024.02.24 Ajax: 各ページが読み込まれる度に1つのタスクを実行します。 Webcron: cron.phpは、HTTP越しに5分おきにcron.phpを読み出すWebcronサービスにより登録されています。 Cron (推奨): システムのcronサービスを利用し。 一番安い共有サーバーだとcronに登録できないので、Ajaxを使うしかないのです。 Ajaxだとファイル操作の転送数が追い付かないので ○○日前です と表示されてしまう。 応急処置は php -d memory_limit=512M cron.php
を [ 最終ジョブ実行は 秒前 です。 ] と表示されるまで繰り返す設定を戻す php -d memory_limit=512M occ background:ajax
ファイルが壊れたり何かしらの不具合が起こるのも面倒なので cron Webcronを使いたいですよね ちょっと考えてみたのですが、簡単に導入できそうです。 あれですね。 Googleとかのクロールがくる軽いページに、コマンドを埋め込むのが確実ですね。 どのページがいいか考えるのとてもめんどうですよね。 5分毎は、キャッシュフォルダに、適当なファイル作って、時間比較して実行する感じにすると簡単です。 比較 No 何もしない 比較 Yes: (1) キャッシュファイルを現在時刻に更新する(多重実行させないため) (2) 非同期でWebcron(cron.php)にアクセスしてジョブを捨てる。もしくは直接 cron.phpを非同期で実行する もともとのスクリプトの実行を継続する。 こんな流れでOK. 面倒ならphp.iniのスタートアップファイルの中にいれてしまえばOK. auto_prepend_file="PHPがスタートしたときに最初に自動で読み込まれる設定ファイル.php"
重いかどうかとか スルーするかどうかは、適当にリクエストuriで判定すればいい。 ある程度アクセスあるサイトなら1分に数件は確実にアクセスありますから、そこをトリガーに実行してしまえばOK. 重くなっても、5分に1回なのでそれほど影響はないでしょう。ジョブの停滞よりはマシ。 実行OKまたはスルーするURIを追加で条件式に入れてしまえば そうそう重くなることはないでしょう 変なものをはかないように ob_startで保護したほうがいいでしょうか? cron-nextcloud.php <?phpauto_prepend_fileで指定したファイルにインクルードしてしまえばOK. @include('pathto/cron-nextcloud.php'); auto_prepend_fileをphp.iniに設定していないのなら直接指定OK auto_prepend_file='pathto/cron-nextcloud.php'
いい感じですね 早速導入してみますね » 続きを読む カテゴリー: General
2024.02.24
PHP Laravel 5.6 のインストール
(1) サーバー要件 PHP7.1の最新版以降
必要なPHP拡張
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension
Ctype PHP Extension
JSON PHP Extension
この内容は、公式サイトで最新版を確認しよう(2) インストール準備 composerが必要なのでない場合は、ダウンロードする curl -o https://getcomposer.org/composer.phar (3) インストール 最新版 php composer.phar create-project laravel/laravel --prefer-dist インストール先 バージョンを指定する場合 php composer.phar create-project laravel/laravel --prefer-dist インストール先 5.6 (例) php composer.phar create-project laravel/laravel --prefer-dist laravel (4) 更新 インストール先に移動後 php composer.phar update を実行すると最新版に更新される アクセス インストール先/public にアクセスるとデフォルトのサイトが表示される。 この内容は、resources/views/welcome.blade.php が表示されている 公開先の変更 インストール先/public が公開URLとなっているので、 公開フォルダを変更するにはこの内容をコピーして、index.php内のrequireされているパスをインストール先に向くように書き換えれば好きな位置に移動できる。 ページ(URI)の追加 ページは routes/web.php で一括管理されている。 Route::get('/demo/{name?}', function ($name=null) { return 'Hello'; }); を追加すると /demoにあくせすると Hello と表示されるようになる 404エラーにする場合は、return App::abort(404); を返すといいだろう ページ移動は、Route::redirect('/移動元', URL::to('/移動先'), 301); を利用する 詳しい設定はデフォルトのページからいけるDoccumentを参考にしよう。 テンプレート(blade) デバッグ時にバージョンを表示するサンプル @if (config('app.debug')) Laravel {{ app()->version() }} @else @endif カテゴリー: レンタルサーバーやcgi
2018.06.07
タイトル
執筆:2023.06.29
編集:2023.06.29 php-cs-fixer self-update In SelfUpdateCommand.php line 168:
rename(C:\Program...\php-cs-fixer-tmp.phar,C:\Program...\php-cs-fixer.phar): アクセスが拒否されました。 (code: 5) self-update [-f|--force] windowsのrenって対象のファイルあったらいけないんじゃないかな? どのみちコマンド自体がバッチファイルなので中にいれて自動で解決 moveコマンドを挿入。 @echo off OKって思ったけど 更新とか考えなくていいようにしたら常に最新版。👍 @echo off カテゴリー: General
2023.06.29
apt-get update
apt-get upgrade したら壊れた。 原因 debianのopensslのパッケージのミス。
解決手段
考察 : 公開サーバー このような不具合を起こすOSで公開サーバーにするとコンテンツが長期間落ちるので、今後debian,ubuntuの選択はないと思いました。
公開サーバーのOSは、Cent OS, FreeBSDのほうがましなのかもと思いました。 考察 : desktop 前からアプリはバージョンが古くて更新もなかなかないことは知っていましたが、エラーでデバッグもできないし、困りますね。
Cent OSは、デスクトップに向いていないし、FreeBSDは、デスクトップにするともさっとするので、開発環境としては、debian系にしておきたいです。debian ver8(7から)にネットワーク障害があるので、起動後一度アダプタを全切断して再接続しないとネットにつながらないのです。 debian8の再インストールする労力を考えると、めったに起動しないのでアダプタ切断したほうが楽なので放置状態です。 再インストールするとデータの移動が面倒なので、アップグレードしかないのです。 再インストールなんかは、ディスクの破損がない限りしないですよ。 一応仮想環境にfreebsdもあり困らないので、debianは半年くらいそのまま放置してから debian9にアップグレード後、どうするか考えます。 エラー $ openssl version OpenSSL 1.0.2 22 Jan 2015
$ pkg-config --print-provides openssl libssl openssl = 1.0.2
libssl = 1.0.2 $ php -i | egrep -i "^\\s*openssl" php: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by php)
php: /usr/local/lib/libssl.so.1.0.0: no version information available (required by php) php: /usr/local/lib/libssl.so.1.0.0: no version information available (required by php) openssl OpenSSL support => enabled OpenSSL Library Version => OpenSSL 1.0.2 22 Jan 2015 OpenSSL Header Version => OpenSSL 1.0.1t 3 May 2016 Openssl default config => /usr/local/openssl/openssl.cnf openssl.cafile => no value => no value openssl.capath => no value => no value OpenSSL support => enabled $ php -v php: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by php)
php: /usr/local/lib/libssl.so.1.0.0: no version information available (required by php) php: /usr/local/lib/libssl.so.1.0.0: no version information available (required by php) PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 08:50:21) 配布パッケージの破損なので、自然に直るのを待つしかなさそう。 自分でビルドして別フォルダにインストールしているものはエラーがでない $ php56 -v PHP 5.6.30 (cli) (built: Feb 16 2017 21:29:36)
カテゴリー: General
2017.02.16
php7 opcacheの設定
メモリに保存します。 ディスクキャッシュじゃないのでがっかり 遅いサイトでないと効果を発揮しないみたい。 100ms程度のレスポンスで来るサイトには意味がない モジュール版PHP運用でハードディスクへの負荷を考えると意味があるかもしれませんけどね。 php7 php.ini zend_extension=php_opcache.dll [opcache] opcache.enable = 1 で、勝手にキャッシュが動くようになります。 その他の細かい設定は、phpのサンプルの設定を参考にしましょう ZendOPcache.MemoryBase@ユーザー名@英数字のファイルが ユーザーのテンポラリフォルダに作成されます。 C:\Users\%USERNAME%\AppData\Local\Temp\ iniの sys_temp_dir = "/tmp" で強制的に変更してもopcacheは無視するみたい。 php -S localhost:8000 PHP Warning: PHP Startup: Invalid library (appears to be a Zend Extension, try loading using zend_extension=php_opcache.dll from php.ini) in Unknown on line 0 PHP 7.0.6 Development Server このエラーの時は、間違ってextension=php_opcache.dll となっているので、 zend_extension=php_opcache.dllとなっているか確認しましょう カテゴリー: レンタルサーバーやcgi
2016.05.20
Windows版 phpでは、apacheモジュールだと mbstringがロードされません。
原因 ・apacheモジュールなので、相対ディレクトリが phpからではなく apacheになっているため 確認するところ php.ini extension_dir = "C:/full path to/ext"
データが破損しないように致命的な異常が発生した場合は表示して停止する。 if ( ! extension_loaded('mbstring') )
exit("error: extension mbstring is not loadeded <br>\n"); php確認コード <?php
$linebreak = (php_sapi_name() == 'cli' ? '' : '<br />') . "\n"; echo PHP_VERSION . $linebreak; echo "php_sapi_name : " . php_sapi_name() . $linebreak; echo "mbstring : " . (extension_loaded('mbstring') ? 'yes' : 'no') . $linebreak; 7.0.14 php_sapi_name : apache2handler mbstring : yes 7.1.0 php_sapi_name : apache2handler mbstring : no 7.1.0 php_sapi_name : cgi-fcgi mbstring : yes 7.1.0 php_sapi_name : cli-server mbstring : yes 7.1.0 php_sapi_name : cli mbstring : yes カテゴリー: レンタルサーバーやcgi
2017.01.13
Fatal error: Uncaught ValueError: mb_convert_kana(): Argument #2 ($mode) must not combine 'h' and 'k' flags in Command line code:1
執筆:2022.09.27
編集:2022.09.27 Fatal error: Uncaught ValueError: mb_convert_kana(): Argument #2 ($mode) must not combine 'h' and 'k' flags in Command line code:1
ほえ? php\8\8.1\php -r "echo mb_convert_kana('カな', 'kh');" php\8\8.2>php -r "echo mb_convert_kana('カな', 'kh');" k 「全角カタカナ」を「半角カタカナ」に変換します。 h 「全角ひらがな」を「半角カタカナ」に変換します。 競合する要素が全くない カナを知らない人がメンテナンスしたようで kとKフラグを混同しているようだ。 » PHP8.2 Fatal error: Uncaught ValueError: mb_convert_kana() 'kh''">続きを読む カテゴリー: ぷろぐらみんぐ
2022.09.27
タイトル
執筆:2023.07.30
編集:2023.07.30 Nextcloud Hub 5 (27.0.1) : WEB: テキストファイルを開く ファイルを読み込めませんでした。 インターネット接続を確認してください。
index.php/settings/admin/logging エラー no app in context Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.
まとめ (0) インストールしてあるフォルダで cmdシェルを開く
(1) コマンドからcronを呼び出し、くるったシステムを正常化する php -d memory_limit=512M cron.php (2) 同期設定がAjaxなら設定を戻す。 php occ background:ajax 今回の騒動は cron.php がアップグレードに伴い原因不明のエラーを起こしていたのが原因でした。 アップグレード後は コマンドラインから cron.phpを実行する。 » 続きを読む カテゴリー: General
2023.07.30
Apache2を起動
» 続きを読む カテゴリー: Linux
2006.02.18
さくらインターネットのphpにSQLiteをインストールする方法
これを使うと、どうやらSQLite 2.x系となるようです。
以上で 使えるようになります。 カテゴリー: レンタルサーバーやcgi
2007.04.03
FreeBSD PHP8.0 ext/tidy tidy5
執筆:2022.07.25
編集:2022.07.25 $ pkg search -d 80-tidy
html4にリンクですか?php80-tidy-8.0.20 Comment : The tidy shared extension for php Depends on : tidy-lib-090315.c_3 php80-8.0.20 いらないです。 PHPでほしいのは、html5対応版 必要なライブラリをインストール pkg install tidy-html5
php tidy-html5のインストール パッチの展開 コンフィグ : デフォルト html5 cd /usr/ports/www/php80-tidy
unzip patch-ports-php80-tidy.zip make config build make clean && make
インストール make reinstall
apache24再起動 apachectl restart
php tidyの確認 php -i | grep libTidy
libTidy Version => 5.8.0 カテゴリー: General
2022.07.25
PHPフレームワーク2018
人気のあるフレームワーク?
PHP言語自体が、メジャーアップグレードもしくはマイナーアップデートで下位互換性のない変更を高確率で仕込んでくることです。 PHPは、オープンソースで利益を出している団体や納品業者にフレンドリーな仕様なんです。逆に言えば、パーソナルや利益を生まない団体などは、その仕様変更は足かせになるだけです。 採用するフレームワークもPHPの言語仕様変更に追従できなければいけません。 開発に利益を伴わない場合は、PHPの仕様変更に耐えられるバイタリティのあるフレームワークを採用しないとフレームワークが開発終了になった場合共倒れすることになります。
数年後また新しいフレームワークが登場しているでしょうね Laravelのサポート期間
カテゴリー: General
2018.02.05
php-5.4.28
make error cp: cannot stat sapi/cli/php.1: No such file https://bugs.php.net/bug.php?id=66842 はぁ!!? 修正消したら コンパイル通りましたよ!! --- php-5.4.28/Makefile.global 2014-04-29 15:44:00.000000000 +0900 +++ php-5.4.28/Makefile.global 2014-05-24 19:03:42.000000000 +0900 @@ -113,7 +113,7 @@ find . -name \*.la -o -name \*.a | xargs rm -f find . -name \*.so | xargs rm -f find . -name .libs -a -type d|xargs rm -rf - find . -name \*.1 | xargs rm -f +# find . -name \*.1 | xargs rm -f rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/* カテゴリー: General
2014.05.24
debianのNetbeans IDE Xdebugの設定方法
Debian付属のNetbeansは、古いので公式サイトから最新のものをダウンロードします。 コンソールで実行するとJDKがないぞといわれますので パッケージマネージャーから、openjdk-7-jdk というものをインストールします。 (公式の netbeans を使う場合) apt-get update apt-get install openjdk-7-jdk sh ./netbeans-8.0-php-linux.sh (Debianの netbeans を使う場合) apt-get update apt-get install openjdk-7-jdk netbeans (1) PHPの設定 /etc/php5/mods-available/xdebug.ini というファイルに xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 を追加します cat debian7-xdebug.diff --- /etc/php5/mods-available/xdebug.ini 2014-05-18 22:24:25.498175332 +0900 +++ /etc/php5/mods-available/xdebug.ini 2014-05-28 12:03:38.278355660 +0900 @@ -1 +1,6 @@ zend_extension=/usr/lib/php5/20100525/xdebug.so + +xdebug.remote_enable=on +xdebug.remote_handler=dbgp +xdebug.remote_host=localhost +xdebug.remote_port=9000 (2) Netbeans IDE (2-1)ブラウザの追加 iceweaselは firefoxを選択しても動きますが iceweaselの設定をしてみましょう。 ツール オプション 一般 Webブラウザ 編集 追加 名前 iceweasel プロセス /usr/bin/iceweasel 引数 -remote "openURL({URL}) (2-2) プロジェクトプロパティ 実行方法 PHP組み込みWebサーバー Netbeans IDEを再起動してみてください これで、 Netbeans IDE からPHPのデバッグができます。 Netbeans IDEでPHPデバッグできない場合は、 PHPの設定に問題がある場合が多いようです カテゴリー: Linux
2014.05.28
cygwin
PHP Fatal error: Out of memory (allocated 49807360) (tried to allocate 2140027 bytes) in phar:///usr/local/bin/composer/src/Composer/Util/RemoteFilesystem.php on line 451
451: $result = zlib_decode($result); なぜか50MBしか割り当てられていないとエラーが表示されます。 確認するが 512MBきちんと割り当てられている。 php -i | grep memory_limit
memory_limit => 512M => 512M
php -r "\$s = str_repeat(' ', 1000*1000*1000);"
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 1000000024 bytes) in Command line code on line 1
zlib_decode関数が怪しい ということでzlib_decode関数をいじめてみます。 php -r "\$s = zlib_encode(' ',ZLIB_ENCODING_DEFLATE); str_repeat(\$s, 100*1000*1000);"
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 900000024 bytes) in Command line code on line 1
予想と違う結果で、きちんと設定値が返ってきました。ということは、 ・cygwinのphpにメモリリーク ・phar がメモリを食いつぶしている ・composer がメモリを食いつぶしている あたりが疑われます これ以上の追及は時間の無駄(というかわからない)なので dosプロンプトで実行して解決 curl -O https://getcomposer.org/composer.phar
php composer.phar オプション カテゴリー: レンタルサーバーやcgi
2018.06.20
[ php8.0 ] Error -Wno-implicit-fallthrough
執筆:2022.07.14
編集:2022.07.14 編集:2022.07.15 サーバーで提供されているPHP8.0が、必要な拡張がはいっていないんですよね。 ということで恒例の丸ごとbuild [ php8.0 ] Error -Wno-implicit-fallthrough grep -R "\-Wno-implicit-fallthrough" ./ ./Zend/Zend.m4
./configure GCC 7 : -Wno-implicit-fallthrough gcc -v : gcc version 4.2.1 20070831 patched [FreeBSD] uname -a | sed -e "s/w[0-9][0-9]*/w***/g"
FreeBSD www***.sakura.ne.jp 9.1-RELEASE-p24 FreeBSD 9.1-RELEASE-p24 #0: Thu Feb 5 10:03:29 JST 2015 root@www***.sakura.ne.jp:/usr/obj/usr/src/sys/SAKURA17 amd64 uptime 12:26AM up 2705 days, 18:54, 0 users, load averages: 0.15, 0.25, 0.34 さくらインターネットの共有サーバー 古すぎる。 サーバー導入後に更新しないからねぇ。 お知らせの新サーバー移行の案内が来るそうですが、半年以上経過しても一向に来る気配ないし🤔 こそっと移行ツールなるものを発見しましたどうしよう移行しちゃおうかな!! その前にバックアップを・・・。 メールがDNSのIP変更で、不着になるかもだから深夜に決行すれば被害がないかな。 ライトプラン 容量が100GBになったから、ガンガンぶち込んだら対応できそうですね gcc7いれちゃいますか👯♀️ ライトプランでも、工夫すれば、シェルコマンド使えますからね この場合の問題点はサーバーがアップグレードされたときなんですね。根こそぎ.soのリンクエラーで落ちますから。(過去に経験あり) サイトダウンですよ。 なので、なるべく提供のまま使いたいのですが!! 古すぎて 必要なライブラリがない😱 buildするなら、フォルダ階層は一発で 切り替え、ごみ捨てやすくしたほうがいいですね。 echo $HOME/local.`uname -r | sed "s/\..*//g"`
ln -s $HOME/local.`uname -r | sed "s/\..*//g"` $HOME/local 丸ごとぽいっと構築したかったですが 手動で 必要な設定して phplizeしたほうが今後は早いようですね。 エラーがでたら、-Wno-implicit-fallthroughを削り落してからやり直せばbuildはできるみたい、 VPS なら 常に最新のライブラリに自動でアップデートできる。 WebARENAとか安いし🤩 VPSはセキュリティ設定が面倒そうですね。😫 PHP7.4で 継続するのもありでしたが サーバー提供のPHP8にしたらサイトがあちこちダウン。 さくっと修正して、立ち直り。 ついでにアクセスのほぼない 役目の終えた 一部のコンテンツを終了。 ということで 当面は 現状維持ですね PHPでサイト作るのはよくないですね。マイナーチェンジでも、おきて破りの意図的な破壊的言語変更が入るので 定期的にかなりの手間がかかります。 下位互換性のある言語でWEBは構築したほうがいいですね。 PHP言語 オンラインゲームの素材集めの周回じゃないんだから、破壊的な文法仕様変更はしないでほしいね。 カテゴリー: General
2022.07.14
タイトル
執筆:2024.03.03
編集:2024.03.03 PHP8.1からPHP8.2へ 変更してみた 体感ですごくレスポンス早くなりました。 体感で半分以下のくらいの時間になっているような気がします アップグレードしてよかったです。 カテゴリー: General
2024.03.03
PHP5からPHP7への移行
実行速度比較
互換性 ・PHP7へは結構互換性を損なうので、PHP5.2からPHP5.3並みに互換性を損なうので注意。 今後も数年したら修正なしに今作ったスクリプト動きません。みたいなことになるでしょうから ・長期的な視点からすると大きなプロジェクトは、PHP言語ではなく言語使用があまり変化しないC++CGIのほうが延命するかも。 自社への需要を増すためと 再受注めあてにソフトメーカーと結託していませんかっていうくらい、互換性を損なう変更してくれますよね 今回は、/e 修飾子の廃止で、あちこち結構ひどいことになってますね カテゴリー: General
2016.05.21
※ この記事の内容は古くなっています
coreserverに移転しようと思っていたのですが スクリプトが動きません。 最初は、パーミッションの問題と思いましたが 同じスクリプトでパラメーターによって 動いたり、エラーがでたりするので 表示されるとおりにしてみてみました。 AddType application/x-httpd-phpcgi-debug .php をいれなさいと表示されるので いれると ページ最後に PHPで以下のエラーがでました。 *** glibc detected *** malloc(): memory corruption: 0x087f4090 *** coreserver glibc detected malloc(): memory corruptionで検索すると どうやら これが原因らしい。 【要望フォーラム】PHPが使用しているlibxmlのバージョンのアップグレード http://sb.xrea.com/showthread.php?t=13001 で スクリプトの先頭で phpinfo(); exit; してみる Hostname:Port www.m33.coreserver.jp:80 dom DOM/XML enabled DOM/XML API Version 20031129 libxml Version 2.6.19 うーん。 比較のためにさくらでも phpinfo(); してみる dom DOM/XML enabled DOM/XML API Version 20031129 libxml Version 2.7.3 あちゃー、xreaは、メンテの悪いサーバーってうわさは聞いていましたが 有料サービスもですか・・・。 2008年のサポート掲示板の件が 2011.11になっても更新されていないってことなので 先が見えないから、契約するのは ちょっと保留というか取りやめですね。 「契約するぞー!」モードだったので 非常に残念ですが、さくっとcoreserverのお試しをキャンセルさせていただきます。 メールウイルス検知は、 ウィルスメールに「****VIRUS****」という件名を加えます という 件名表記だけにどん引きしましたが、 まぁ、それは、別にPCで受信時に検知できるので なくてもOKなんです。 しかしですね、 xmlパースできないと困ります!! DBが使えないより、最悪ですよ!! もうさくらは、解約申請したので、継続できないから もー ロリポしかないです。 よし、「コロリポ」「ロリポ」うーん。。。 どっちにしよう・・・。 » 続きを読む カテゴリー: レンタルサーバーやcgi
2011.11.02
laravel 5.6 定義済み グローバル関数
ヘルパー関数でグローバル関数が定義されているので注意されたい。 次のコマンドで検索することができる find . -type f -name "helpers.php"
./vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
./vendor/laravel/framework/src/Illuminate/Support/helpers.php
./vendor/mockery/mockery/library/helpers.php
次のコマンドで、関数一覧を表示できる grep "function_exists" ファイル名 | grep -oP "'.+'" | sort
エラー "Too few arguments to function redirect(), 0 passed in vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php on line 107 and exactly 1 expected "
はい。検索 redirect
グローバル関数 redirect かぶり見たいですね。
Laravelに既存のプロジェクトを移行しようと思ったのですが namespace使うように書き換えるか、既存のプロジェクトのredirect関数を別名に変更するしかないですね。 当然一括置換できる後者しか選択の余地がないですね。 ここで定義されています vendor/laravel/framework/src/Illuminate/Foundation/helpers.php このファイルで定義されいる同名関数が使われている場合は、誤動作する可能性がある。 一覧 vendor/laravel/framework/src/Illuminate/Foundation/helpers.php '__'
'abort' 'abort_if' 'abort_unless' 'action' 'app' 'app_path' 'asset' 'auth' 'back' 'base_path' 'bcrypt' 'broadcast' 'cache' 'config' 'config_path' 'cookie' 'csrf_field' 'csrf_token' 'database_path' 'decrypt' 'dispatch' 'dispatch_now' 'elixir' 'encrypt' 'event' 'factory' 'info' 'logger' 'logs' 'method_field' 'mix' 'now' 'old' 'policy' 'public_path' 'redirect' 'report' 'request' 'rescue' 'resolve' 'resource_path' 'response' 'route' 'secure_asset' 'secure_url' 'session' 'storage_path' 'today' 'trans' 'trans_choice' 'url' 'validator' 'view' vendor/laravel/framework/src/Illuminate/Support/helpers.php 'append_config'
'array_add' 'array_collapse' 'array_divide' 'array_dot' 'array_except' 'array_first' 'array_flatten' 'array_forget' 'array_get' 'array_has' 'array_last' 'array_only' 'array_pluck' 'array_prepend' 'array_pull' 'array_random' 'array_set' 'array_sort' 'array_sort_recursive' 'array_where' 'array_wrap' 'blank' 'camel_case' 'class_basename' 'class_uses_recursive' 'collect' 'data_fill' 'data_get' 'data_set' 'dd' 'e' 'ends_with' 'env' 'filled' 'head' 'kebab_case' 'last' 'object_get' 'optional' 'preg_replace_array' 'retry' 'snake_case' 'starts_with' 'str_after' 'str_before' 'str_contains' 'str_finish' 'str_is' 'str_limit' 'str_plural' 'str_random' 'str_replace_array' 'str_replace_first' 'str_replace_last' 'str_singular' 'str_slug' 'str_start' 'studly_case' 'tap' 'throw_if' 'throw_unless' 'title_case' 'trait_uses_recursive' 'transform' 'value' 'windows_os' 'with' カテゴリー: ぷろぐらみんぐ
2018.06.23
phpのバグ dirname関数は日本語対応未熟(php 5.3)
php6は、正常に動作しましたが 現行のバージョンは以下のコードでエラーが起きます UTF8の文字に対してdirnameは、問題ないですが 現状 utf8でファイル名を取得できるのか? |