タグ付けされた質問 「php」

PHPは、特にWeb開発に適した汎用スクリプト言語です。オンラインマニュアルは、言語構文に関する優れたリソースであり、組み込み関数と拡張関数の広範なリストがあります。ほとんどの拡張機能はPECLにあります。

8
FastCGI / PHP-FPMを実行するときに(ユーザー「nobody」として)PHPセッションフォルダーに設定するアクセス許可/所有権は何ですか?
PHP-FPMがセッションフォルダーに書き込むことができないため、多くのスクリプトを実行するのに問題があります。 "2009/10/01 23:54:07 [エラー] 17830#0:* 24 FastCGIがstderrに送信:" PHP警告: 不明:open(/ var / lib / php / session / sess_cskfq4godj4ka2a637i5lq41o5、O_RDWR) 失敗:行0の不明で許可が拒否されました(13) PHP警告:不明:セッションデータ(ファイル)の書き込みに失敗しました。確認してください session.save_pathの現在の設定が正しいこと (/ var / lib / php / session)アップストリームの読み取り中に0行目の不明で これは明らかに許可の問題です。セッションフォルダーの所有者/グループは、WebサーバーのユーザーNGINXです。PHP-FPMはnobodyあたかも実行されるため、nginxグループに追加するのはそれほど簡単ではありません。 一時的な解決策は、のパーミッション設定することです/var/lib/php/sessionへの777-でも、私は、「ベストプラクティス」ではありません感じています。 フォルダーへのデーモン書き込みアクセスを割り当てる必要があるが、次のように実行されている場合のベストプラクティスは何nobodyですか?
17 linux  security  php  centos 

1
phpスクリプトは/ tmpフォルダーにアクセスできません
open_basedirはありません。phpは/ etc / usr / proc / homeなどにアクセスできますが、/ tmpにはアクセスできません。 tmpfsは/ tmp(/ tmpタイプtmpfs(rw))にマウントされます。これも/ tmpフォルダーを使用する理由です。 私のファイルはhttp(nginxとphpのユーザー)が所有し、誰でも読み取り可能です。 sudo -u http cat /tmp/file 動作していますが、phpスクリプト内のすべては動作しません(file_exist()やfile()など)。 編集:ログに表示されるエラー: PHP Warning: file(/tmp/ydlw/pid): failed to open stream: No such file or directory in /srv/http/ydlw/status.php on line 267 edit2:問題を別の方法でテストしました。作った touch("/tmp/boo"); file_exist("/tmp/boo"); file_existはtrueを返すため、ファイルが作成されます。次に、/ tmp内を監視しましたが、「boo」ファイルは見つかりませんでした。それは私が恐れていたことであり、PHPはマウントポイントを「見る」ことはありません。なぜですか、どうすれば修正できますか?

2
Ubuntuで同時に複数のPHPバージョン
Ubuntu 12.04を実行している開発ボックスで複数のphpバージョンを実行できるようにしたい。私が達成したいのは、ローカルホストをドメインとして使用する場合、デフォルトが使用されることです(たとえば、PHP 5.3.17)。ドメインとして547.localhostを使用すると、php 5.4.7が使用されます。fastcgiを使用してこれを機能させるためのチュートリアルを見たことがありますが、これまでは機能させることができませんでした。私はこれらのチュートリアルを見ました: http://dbforch.wordpress.com/2010/05/21/apache2-fastcgi-multiple-php-versions-ubuntulucid-10-04/ http://www.metod.si/multiple-php-versions-with-apache-2-fastcgi-phpfarm-on-ubuntu/ 私が見る限り、私は必要なことをすべてやった。問題は、phpが実行されないことです。私がhttp://localhost/somephpfile.phpそれに行くときは、phpファイルのソースを出力するだけです。についても同じですhttp://547.localhost/somephpfile.php。 誰かが私が見逃したものを見つけることができることを期待して、私がとったステップを分析します。 最初に、を使用してデフォルトのランプスタックをインストールしましたsudo apt-get install lamp-server^ phpmyadmin。この後、リポジトリバージョンのphpを実行する動作中の開発サーバーがありました。 次に、phpfarmを使用して、5.3.17用と5.4.7用の2つのphpインストールを作成しました。phpfarmの地域は /etc/php/phpfarmですので、実行可能ファイルは/etc/php/phpfarm/inst/php-{version}/bin 次に、Apacheでsuaxecとfastcgiを有効にし、mod_phpを無効にします sudo a2enmod fastcgi actions suexec && sudo a2dismod php5 次に、次のように編集/etc/apache2/mods-enabled/fastcgi.confしました。 <IfModule mod_fastcgi.c> FastCgiIpcDir /var/lib/apache2/fastcgi FastCgiWrapper /usr/lib/apache2/suexec FastCgiConfig -idle-timeout 110 -killInterval 120 -pass-header HTTP_AUTHORIZATION -autoUpdate ScriptAlias /php-fcgi/ /var/www/cgi-bin/ </IfModule> 次に、/var/www/cgi-binフォルダーを作成し、このフォルダーに2つのファイルを作成しました。2つのPHPバージョンのそれぞれについて、次のとおりです(5.3.17の1つのみを表示します/var/www/php5317.fcgi)。 #!/bin/sh # you can change …


4
ApacheとPHPでメモリリークを調査する方法は?
財務モデリングを実行する重いDrupal Webサイトを運営しています。私たちは、Apacheプロセスの数が安定したままで、Apacheが使用するメモリが時間外に増加するという事実を考えると、ある種のメモリリークに直面しているようです。 /etc/init.d/httpd reloadメモリ使用量が低下するため、apache / PHPからメモリの問題が発生していることがわかります(上記のスクリーンショットおよびCLI出力を参照)。 httpdのリロード前 $無料 キャッシュされた使用済み共有バッファの合計 Mem:49447692 45926468 3521224 0 191100 22609728 -/ +バッファ/キャッシュ:23125640 26322052 スワップ:2097144 536552 1560592 httpdのリロード後 $無料 キャッシュされた使用済み共有バッファの合計 Mem:49447692 28905752 20541940 0 191360 22598428 -/ +バッファ/キャッシュ:6115964 43331728 スワップ:2097144 536552 1560592 各Apacheスレッドにはmemory_limit、512MBのPHPが割り当てられます。これは、高いメモリ使用量が要求の少ないボリュームを悪化させることを説明し、max_execution_time120秒のスレッドは実行に時間がかかるスレッドを終了するため、メモリ使用量の継続的な増加を防ぐ必要があります見て。 Q:このメモリリークの原因を調査するにはどうすればよいですか? 理想的には、開発チームを煩わせることなくシステムで実行できるトラブルシューティング手順を探しています。 追加情報: OS: RHEL 5.6 PHP: 5.3 Drupal: 6.x MySQL: 5.6 参考までに、私たちは個別に調査しているスワッピングの問題を認識しており、スワッピングが発生する前に観察したメモリリークとは何の関係もありません。

1
APC RedHatをインストールする
私はredhatにapcをインストールしようとしていますので、 pecl install apc はいと言った: Use apxs to set compile flags (if using APC with Apache)? [yes]: 私はこれを取得します: checking for re2c... no configure: WARNING: You will need re2c 0.9.11 or later if you want to \ regenerate PHP parsers. そして checking whether apc needs to get compiler flags from apxs... …
16 php  redhat 

2
FastCGI経由でPHPを偽装する必要がありますか?
私はFastCGIを介してIIS 7.5に最新バージョンのPHPをインストールしていますが、すべての指示はFastCGIが設定によって呼び出しクライアントになりすますべきだと言っています fastcgi.impersonate = 1 私のウェブサイトにこの設定がある場合 専用アプリケーションプール ApplicationPoolIdentityのアプリケーションプールID 匿名認証のみ(IUSRとして) 偽装したいのはなぜですか? 私はASP.NETのバックグラウンドから来ました。IUSRは読み取り専用のアクセス許可を取得し、アプリケーションプールIDは書き込みのアクセス許可を取得します。IUSRへの書き込みアクセスを許可すると、通常、WebDAVの脆弱性の扉が開かれます。したがって、PHPをIUSRとして実行することをためらいます。 この質問(1 | 2)を求めている人はあまりいないので、何かが足りないと思います。誰かが私のためにこれを明確にすることはできますか?

12
ターミナル経由でログをリアルタイムで見る方法は?
これは基本的な質問です。映画「ソーシャルネットワーク」では、Facebookの若いスタッフがPHP / Apacheサーバーがリアルタイムで端末にログオンしているのを見ている場面がいくつかあります。 私はRUBY / RoR環境でこれを行う方法に精通していますが、標準のLAMP Apache / PHP環境では、サーバーのアクションをリアルタイムで積極的に監視する方法はありますか?ターミナルでこれを行う簡単な方法があると思います。

8
php5 + MySQLを200リクエスト/秒以上にスケールするには?
私はパフォーマンスのためにホームページを微調整しています。現在、3つのSQLクエリを処理する3.14.byでは毎秒約200リクエスト、php14フォーラムである3.14.by/forumでは毎秒20 reqを処理しています。 奇妙なことに、いくつかのVPSと専用のAtom 330サーバーで数値はほぼ同じです。 サーバーソフトウェアは次のとおりです。Apache2+ mod_php prefork 4子(ここで別の数字を試しました)、php5、APC、nginx、PHPセッションストレージ用のmemcached。 MySQLは使用可能なRAMの約30%を消費するように構成されています(VPSで約150 MB、専用サーバーで700 MB) これはどこかにボトルネックがあるように見えますが、私がより高くなることを許可していませんか?(つまり、6個未満のSQLを実行すると高速化されることはわかっていますが、キャッシュされたクエリのためにsqldがトップの数%しか消費しないため、これは制限要因には見えません) 事前にフォークされたapache2をキックしてnginx + phpだけを残す方がずっと速いことをテストした人はいますか? いくつかのベンチマーク Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly. Small "Hello world" php script: 458 r/s via ngin+apache2. 更新: ボトルネックは、キャッシュされたデータのMySQLパフォーマンスにあるようです。単一のSQLを含むページには354req / secが表示され、6つのSQL-180 req / secが表示されます。ここで何を調整できると思いますか?(MySQLで100-200Mbを分岐できます) [client] port = …

3
nginx / php-fpmエラーロギング
私はセットアップのどこでPHPエラーが発生しているかを把握しようとしています。PHP-FPMのリバースプロキシとしてnginxを実行していますが、アプリが生成するさまざまなE_NOTICEまたはE_WARNINGメッセージが表示されません。私がそれらが起こっていることを知っている唯一の理由は、失敗した応答とNewRelicがスタックトレースをキャッチすることです。 ロギング設定は次のとおりです。 nginx.conf proxy_intercept_errors on; fastcgi_intercept_errors on; php.ini error_reporting = E_ALL display_errors = Off display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = On error_log = syslog php-fpm.conf [global] error_log = /var/log/php-fpm/fpm-error.log [www] access.log = /var/log/php-fpm/access.log access.format = "%t …
16 php  php-fpm  php5  logging 

3
古いパッケージがyumによってCentOSにインストールされるのはなぜですか?(特にPHP 5.1)修正方法
私は新しいCentOSサーバーで作業していますが、yumがUbuntuで「apt-get install」のようにスムーズかつ見事に動作しないことを知って非常にイライラしています。 LAMPスタックをインストールして、次を実行しました。 $ yum install php $ yum install mysql さらに: $ yum install mysql-server $ yum install mysql-devel $ yum install php-mysql 現在実行中: $ rpm -qa | grep php ...すべての種類のphp 5.1.6パッケージがインストールされており、5.2以上が必要であることを示しています。さらに、現在のリリースが5.5.20であっても、mysql 5.0.77がインストールされていることがわかります。しかし、うまくいけばmysql 5.0が動作するでしょう。PHP 5.1はサポートしません。 したがって、本当の質問は次のとおりです。 PHPを修正して最新の安定版リリース(PHP.netによると5.3.9)にするにはどうすればよいですか?CentOSマシンをUbuntuのように動作させるにはどうすればよいですか?これを再度処理する必要はありませんか? どうもありがとう。 編集:CentOS 5.7は先週ホスティング会社によってインストールされたので、なぜ最新のものではなくCentOSの古いバージョンをインストールしたのかわかりません。少なくともPHP 3.2が必要なので、その方法についての提案に感謝します。私はパッケージとリポジトリにあまり詳しくありませんが、だれでもリポジトリを起動できるようですので、サーバーに感染する可能性のあるランダムなリポジトリからのものをインストールすることを心配しています。
14 mysql  php  centos  debian  yum 

2
UbuntuにPHP拡張機能をインストールする
Ubuntu 9.10サーバーがあります。apt-getコマンドを使用してapache2とphp5をインストールしました。 PHP拡張機能はどのようにインストールしますか?それらを取得するapt-getなどのコマンドはありますか?または、php Webサイトでファイルを手動で検索し、php.iniで設定する必要がありますか? 具体的には、mcrypt、curl、およびgdが必要です。 ありがとう
14 apache-2.2  ubuntu  php 


3
コマンドライン経由で$ _GET変数をPHPスクリプトに渡す方法は?
PHPスクリプトを提供するWebサーバーを作成しようとしています。現在、次のように機能します。 クライアントは/index.php?test=valueを要求します サーバーが呼び出す php index.php サーバーはHTTP要求ヘッダーをSTDINとしてPHPプロセスにフィードします サーバーphpはSTDOUTからの出力を読み取り、それをクライアントに返します パラメーターがPHPスクリプトに渡されていないことを除いて、これらはすべて機能しています: var_dump($_GET); 戻り値: array(0){} $_GETPHPバイナリが呼び出されたときに、パラメータはどのように渡されますか?
14 php  http  cgi 

5
RemiリポジトリからPHP7をインストールする
RemiリポジトリからPHP7をインストールしました sudo yum -y install httpd sudo yum -y install epel-release wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh remi-release-6*.rpm sudo yum -y --enablerepo=remi,remi-test install php70 scl enable php70 'php -v' sudo ln -s /usr/bin/php70 /usr/bin/php そして、CLI経由で動作しています。今、私はそれをApacheで動作させたいと思っていますが、LoadModuleに2番目の引数として渡すように見つけることができません LoadModule php7_module unknown_path <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> これは、PHP7をapache2で動作させるための正しいアプローチですか?
13 php  centos6 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.