問題タブ [libmemcached]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python および ffmpeg heroku ビルドパックが LD_LIBRARY_PATH を上書きしないようにする
Django アプリを heroku にデプロイしていますが、これには ffmpeg が必要です。これを達成するために、heroku-buildpack-multiを使用して heroku -buildpack-ffmpegとheroku-buildpack-python の両方をインストールしていますが、すべて正常に動作します。django-pylibmc-sasl
問題は、アプリも、、、などpython-memcached
に依存していることですpylibmc
。いつものように、heroku が感知して自動的にインストールlibmemcached
してくれます。
ここで、少し問題が発生します。カスタム ビルドパックを削除すると、すべて正常に動作します (明らかに ffmpeg を除く)。ただし、追加するとすぐに、実行できますがffmpeg
、pythonは失敗しますimport pylibmc
(またはimport _pylibmc
、モジュール自体の内部で)。頭を悩ませた後、環境変数を確認することにしました。得られたものは次のとおりです。
Python ビルドパックのみを有効にした場合:
Python と ffmpeg ビルドパックの両方が有効になっている場合:
ビルドパックの一方または両方が単純に他方を上書きするか、変数が既に設定されている場合は設定を回避しているようです。ffmpeg ビルドパックは、私にはコーシャに見えるように設定されているようですがLD_LIBRARY_PATH
、Python ビルドパックは、理由がよくわからないいくつかのことを行います。
解決
とにかく、 を使用してライブラリ パスを手動でオーバーライドした後、とのheroku config:set LD_LIBRARY_PATH=/app/.heroku/vendor/lib:vendor/ffmpeg/lib
両方を使用できますが、堅牢すぎるとは感じません。ビルドパック パス設定の 1 つで何かが変更された場合、または別のビルドパックを追加した場合は、ライブラリ パス変数を手動で編集する必要があります。libmemcached
ffmpeg
より良い解決策?
ですから、これは緊急の質問ではありませんが、私が知りたいのは次のとおりです。
- この問題を解決するより良い方法はありますか?
- パスの競合につながる構成エラーが発生した可能性がありますか?
- これはいずれかのビルドパックのバグと見なす必要がありますか?
php - Memcache クラスがまだ見つかりません
サーバーで Memcache を動作させるのに多くの問題があります。
私は持っている:
アパッチ2.4
PHP 5.5.11
Memcache 3.0.8 ts vc11 x86
私は行を配置しました:
エラーなしで正しくロードされている私のphp.iniファイルでは:
ext ディレクトリから php_memcache.dll を削除するとエラーが発生するため、間違いなくそれを見つけて正しい php.ini ファイルを使用しています。
テストページを実行すると、memcache モジュールの詳細が表示されない php_info() が表示され、そのページの下部に新しい memcache オブジェクトを作成しようとします。
しかし、私は得る:
致命的なエラー: クラス 'Memcache' が C:\Web Server\Apache24\htdocs\index.php の 5 行目に見つかりません
過去2日間、グーグルでさまざまなバージョンなどを試してみましたが、成功はありませんでした。
どうすればこれを機能させることができますか?
アップデート
コマンド ラインを使用してテスト php ファイルを実行すると、エラーは発生せず、Memcache 関数を使用できます。
ブラウザを使用すると正しく動作しないのはなぜですか??
mysql - MySql 5.6 と libmemcached.so の欠落
Debian で Mysql 5.5 を 5.6 に更新した後、memchached の使用を開始したいと考えています。/usr/lib/mysql/plugin/ に libmemcached.so プラグインが表示されません。このプラグインをインストールして使用するにはどうすればよいですか?
php - PHPでmemcacheでsetOption関数を使用する
Memcacheサーバーに接続して遊んでいるために、memcache拡張機能を使用しています。しかし今、このライブラリには存在しないが、 Memcached::setOptionという Memcached に存在する関数を使用したいと考えています。
コード全体を Memcache から Memcached に移動するのは非常に困難です。
どこでもコードを変更せずに setOption 関数の機能を使用できる方法はありますか?
php - CLI 経由で実行する場合の PHP+Memcached 例外
最近、ZF2 が提供する Memcached キャッシュ アダプターの使用を開始しました。Web ブラウザー (Apache HTTP サーバー) を使用すると、サーバーは完全に実行されているように見えますが、CLI からアプリケーションを実行すると、2 つの異なる例外が見られました。Zend\Session\SaveHandler\Cache
セッションをメモリに書き込むときに例外が発生するようです。
最初の例外は、エラー コード 47 ( MEMCACHED_SERVER_TEMPORARILY_DISABLED
) を返しました。多くのオプションを使い果たした後、Memcached、libmemcached、および PECL 拡張機能を再コンパイルしてみることにしました。これを行った後、別の結果コード 26 ( MEMCACHED_ERRNO
) を受け取り始めました。このコードの結果メッセージは、"SYSTEM ERROR: Broken pipe." です。
キャッシュ アダプタでは、internalSetItem($normalizedKey, $value)
メソッドは によって返されるブール値をチェックしますMemcached::set($key, $value, $expiration)
。Memcached::getResultCode()
false の場合、障害が発生しており、ZF2 アダプターは メソッドとメソッドに基づいて例外をスローしMemcached::getResultMessage()
ます。これ以前は、単に結果コードやメッセージをチェックしていなかったため、ずっと発生していた可能性があります。
私の開発環境の仕様は次のとおりです。
- PHP 5.5 と Memcached 2.2.0 (PECL)
- Memcached 1.4.20
- libmemcached 1.0.18
- Zend フレームワーク 2
編集: 問題を単一のコントローラーの単一のアクションに絞り込みましたが、なぜこれが起こっているのかについてはまだ途方に暮れています。基本的に一連の cron ジョブをループし、独自のプロセスでフォークする ZF2 コントローラー アクションがあります。こんなふうになります...
- cron ジョブをループする
- 実行
pcntl_fork()
して新しいプロセスを作成する - 走る
exec('/usr/bin/php index.php JOB_NAME')
結局のところ、3 番目のステップは問題なく実行されます。各ジョブは期待どおりに実行されていますが、フォークによって親プロセスの Memcached に問題が発生しているようです。それが私が今いる場所です。
python - ピップはpylibmcをインストールできません
CentOS リリース 6.5 (最終版)。
Virtualenv を使用する Python 2.7.5。
@development-tools がインストールされました。
これは、インストールを試みた結果pylibmc
です。
誰でも助けることができますか?
linux - Debian Wheezy で SASL を使用して libmemcached をビルドする
inとinを使用libmemcached-1.0.18
して Debian Wheezyを構築しようとしています。実行すると、次の構成になります。libsasl2
/usr/lib/x86_64-linux-gnu/libsasl2.so
memcached
/usr/bin/memcached
./configure --with-memcached-sasl --prefix=/opt/libmemcached
それでも、make && make install
結果でビルドすると、シンボル定義libmemcached.so
が欠落しています。sasl_*
これは壊れpylibmc
ます。からの出力は次のnm -D /opt/libmemcached/lib/libmemcached.so
とおりです。
SASL サポートを使用し./configure
てビルドするには、どのオプションを使用すればよいですか?libmemcached