• 締切済み

PHPのビルドオプションについて質問です。

Rubyやnodejsおよびpythonなどは ほぼダウンロードしてきたままを ./configure --prefix=/~ とするだけで問題なくビルドできてしまいます。 しかし、なぜかPHPに関しては異様にビルドオプションが多数あります。 単純にダウンロードしてきたままをビルドしようとしても たとえばlibxml2.soがないなどの警告がでてビルドができません。 なぜPHPは他の言語にくらべこんなにも ビルドオプションがおおいのでしょうか? なぜこんなにも共有ライブラリを必要とするのでしょうか? PHPの言語仕様自体が非常にコンパクトなのかとおもいましたが、ビルドされたPHPバイナリをみるとそれこどコンパクトではないですし・・・・。 drwxr-xr-x. 2 root root 4096 5月 21 09:10 2013 . drwxr-xr-x. 7 root root 4096 5月 21 09:10 2013 .. -rwxr-xr-x. 1 root root 872 5月 21 09:10 2013 pear -rwxr-xr-x. 1 root root 893 5月 21 09:10 2013 peardev -rwxr-xr-x. 1 root root 809 5月 21 09:10 2013 pecl lrwxrwxrwx. 1 root root 35 5月 21 09:10 2013 phar -> /home/1000_VICKY/php2/bin/phar.phar -rwxr-xr-x. 1 root root 53499 5月 21 09:10 2013 phar.phar -rwxr-xr-x. 1 root root 23779789 5月 21 09:10 2013 php -rwxr-xr-x. 1 root root 23721347 5月 21 09:10 2013 php-cgi -rwxr-xr-x. 1 root root 2275 5月 21 09:10 2013 php-config -rwxr-xr-x. 1 root root 4564 5月 21 09:10 2013 phpize 何のビルドオプションもつけずに PHPバイナリは23779789の用量を持ちます。 PHPのこのビルドのしづらさの原因はいったい何に起因するものなのでしょうか? PHP にお詳しい方ご教授ください。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

  • cheese014
  • ベストアンサー率85% (12/14)
回答No.2

PHPは、web上で実現したい事をなるべく短いコード(手間)で済ませる事を最重視した言語だと勝手に解釈してますが、そのせいか組み込み関数・クラスの数がべらぼうに多く、元々PECLだったものが標準化するなど、バージョンが上がる毎にその数は今もどんどん増えている状況です。 そのスピードに対し、標準化する共有ライブラリの整理が追いついていない感がありますね。 例えば正規表現1つとっても、preg系,ereg系,mb_ereg系と3つもあり、それぞれ依存するライブラリが異なっていたりするのは、PHPらしいというか、言語として綺麗だとは決して言えませんね。 p.s. 私は「何で作るか?」よりも「何を作るか?」の方が大切だと思っていますので、PHPが言語として劣っているというつもりは決してありません。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

分からないです… 考える気も実は無いです。 なのでxamppを使っています。 インストールするだけで、ビルドが終っています。 簡単すぎて…安易な方法を取るのはダメですか?

関連するQ&A

  • LinuxのPHPのパス

    Linuxのレンタルサーバーで、PHPのパスを調べたのですが、以下のように2つ出てきました。 # whereis php php: /usr/local/bin/php /usr/local/php /usr/local/bin/phpは /usr/local/php5/bin/php-cli-5.2.9につながっていました。 /usr/local/phpの中身はこんなかんじでした。 drwxr-xr-x 2 root root 4096 Jul 2 16:29 bin drwxr-xr-x 2 root root 4096 Jun 25 12:13 etc drwxr-xr-x 3 root root 4096 Mar 17 10:28 include drwxr-xr-x 3 root root 4096 Jul 2 16:34 lib drwxr-xr-x 3 root root 4096 Mar 17 10:29 man drwxr-xr-x 3 root root 4096 Nov 15 2007 php PHPのパスはどちらですか?

    • ベストアンサー
    • PHP
  • lsでディレクトリのサイズが4096が多いことについて。

    基本的なことなのかもしれませんが質問させてください。ls -lの結果でディレクトリのサイズが4096が多いのはなぜでしょうか?また合計というのは何の合計でしょうか? ファイル数にしては数が合わないような気がしますし。 [root@localhost /]# ls -l 合計 188 -rw------- 1 root root 7168 8月 14 21:58 aquota.user drwxr-xr-x 2 root root 4096 8月 25 23:59 bin drwxr-xr-x 3 root root 4096 9月 3 11:52 boot drwxr-xr-x 8 root root 5440 9月 3 12:24 dev drwxr-xr-x 93 root root 12288 9月 3 12:24 etc drwxr-xr-x 4 root root 4096 8月 23 21:52 home drwxr-xr-x 2 root root 4096 2月 22 2005 initrd drwxr-xr-x 11 root root 4096 8月 25 23:59 lib drwx------ 2 root root 16384 7月 31 01:25 lost+found drwxr-xr-x 5 root root 4096 9月 3 12:24 media drwxr-xr-x 2 root root 4096 1月 2 2006 misc drwxr-xr-x 2 root root 4096 2月 22 2005 mnt drwxr-xr-x 2 root root 4096 2月 22 2005 opt dr-xr-xr-x 140 root root 0 8月 15 05:50 proc drwxr-x--- 21 root root 4096 9月 3 09:10 root drwxr-xr-x 2 root root 12288 9月 3 11:52 sbin drwxr-xr-x 1 root root 0 8月 15 05:50 selinux drwxr-xr-x 2 root root 4096 2月 22 2005 srv drwxr-xr-x 9 root root 0 8月 15 05:50 sys drwxr-xr-x 3 root root 4096 7月 30 17:00 tftpboot drwxrwxrwt 14 root root 12288 9月 3 12:23 tmp drwxr-xr-x 14 root root 4096 7月 30 16:30 usr drwxr-xr-x 24 root root 4096 9月 1 00:07 var

  • postfix インストール時のエラー

    Sol10にpostfixをインストールしようとしています。 makeも終わって、make installしようとすると、 > Killed > /usr/local/etc/postfix/post-install: Error: no /usr/local/sbin/postconf command found. というエラーが出ます。 /usr/local/sbinにpostconfってのがないってことだな、と思ってみてみると、 > root# ls -l /usr/local/sbin > 合計 9248 > -rwxr-xr-x 1 root root 501908 6月 24日 23:07 postalias > -rwxr-xr-x 1 root root 339932 6月 24日 23:07 postcat > -rwxr-xr-x 1 root root 573064 6月 24日 23:07 postconf > -rwxr-sr-x 1 root postdrop 539416 6月 24日 23:07 postdrop > -rwxr-xr-x 1 root root 303108 6月 24日 23:07 postfix > -rwxr-xr-x 1 root root 337452 6月 24日 23:07 postkick > -rwxr-xr-x 1 root root 330140 6月 24日 23:07 postlock > -rwxr-xr-x 1 root root 307524 6月 24日 23:07 postlog > -rwxr-xr-x 1 root root 473420 6月 24日 23:07 postmap > -rwxr-sr-x 1 root postdrop 534724 6月 24日 23:07 postqueue > -rwxr-xr-x 1 root root 355132 6月 24日 23:07 postsuper 問題なくあるようです。 何が原因でしょうか。 以下参考です。パスと、作成したユーザとグループです。 > root# echo $PATH > /usr/sbin:/usr/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/local/sbin > root# more /etc/passwd > (中略) > postfix:x:101:100::/home/postfix:/bin/sh > root# more /etc/group > (中略) > postfix::100: > postdrop::101: よろしくお願いいたします。

  • apache2でerror403について。

    お世話になります。apache2をrpmでインストールし、squidもrpmでインストールし、sargもrpmでインストールしました。 ドキュメントルートは現在 var/wwwにしています。 http://hostname/だとアパッチ標準が表示されます。 http://hostname/html/index.html だと作成したページが表示されます。 http://hostname/sarg/index.html だと下記エラーが表示されます。 Access forbidden! You don't have permission to access the requested object. It is either read-protected or not readable by the server. 現在のパーミッションです。sargのディレクトリが(drwxr-xr-x 6 root)が6になっている位で他に変わった点が見つかりません。 また、この6の意味を今調べてるのですが、なかなか説明文書にたどりつきません。 どうすれば権限を与えることができるのか? どなたかご教授ください。よろしくお願いします。 /var/www/ drwxr-xr-x 2 root root 4096 2月 25 2003 cgi-bin drwxr-xr-x 3 root root 4096 9月 6 10:56 error drwxr-xr-x 2 root root 4096 9月 7 11:25 html drwxr-xr-x 3 root root 4096 9月 6 10:56 icons drwxr-xr-x 6 root root 4096 9月 7 11:02 sarg ls /sarg -l drwxr-xr-x 3 root root 4096 9月 7 10:45 ONE-SHOT drwxr-xr-x 2 root root 4096 6月 30 09:06 daily -rw-r--r-- 1 root root 1419 6月 30 09:06 index.html drwxr-xr-x 2 root root 4096 6月 30 09:06 monthly drwxr-xr-x 2 root root 4096 6月 30 09:06 weekly ls /html -l -rw-r--r-- 1 root root 110 9月 7 11:25 index.html 環境(サーバー) Apache/2.0.40 (Red Hat Linux) RedHat Lunix release 9 Kernel 2.4.20-8 on an i686 環境(クライアント) ウィンドウズ2000sp3 IE6

  • ファイルの所有者やグループを保ったままコピーするにはどうすればいいのでしょうか?

    お世話さまです。 質問させていただきたい内容は、 「ファイルの所有者やグループを保ったままコピーするにはどうすればいいのでしょうか?」 ということなのですが、念のため、余分かもしれませんが、 情報をひととおり以下に記します。 ========================================================= レンタルサーバ業者と、VPSの契約を最近しました。 以下、自分のドメインを仮に「example.com」とします。 で、OSはCentOSを使っています。 また、プレスクを導入しています。 なお、VPSの契約をしたあとは rootのパスワードを加えて、1つユーザを追加しただけで、(<=いずれもプレスクからではなく、SSH接続してやってしまいました) 他には設定をしていません。 そして、以下のコマンドを実行しました。 なお、「foo」の部分は、実際はちがう文字列(ユーザ名)です。 ======================================================= [root@www vhosts]# whoami root [root@www vhosts]# pwd /var/www/vhosts [root@www vhosts]# ls -al total 9 drwxr-xr-x 9 root root 1024 Apr 15 14:25 . drwxr-xr-x 9 root root 1024 Apr 4 18:01 .. drwxr-xr-x 3 root root 1024 Apr 4 18:01 .skel drwxr-xr-x 14 root root 1024 Apr 4 18:42 example.com drwxr-xr-x 9 root root 1024 Apr 4 18:01 chroot drwxr-xr-x 5 root root 1024 Mar 22 20:35 default [root@www vhosts]# ls -al example.com/ total 14 drwxr-xr-x 14 root root 1024 Apr 4 18:42 . drwxr-xr-x 9 root root 1024 Apr 15 14:25 .. drwxr-x--- 5 foo psaserv 1024 Apr 4 18:42 anon_ftp drwxr-xr-x 2 root psaserv 1024 Apr 4 18:42 bin drwxr-x--- 3 foo psaserv 1024 Apr 4 18:42 cgi-bin drwxr-x--- 2 root psaserv 1024 Apr 4 20:10 conf drwxr-xr-x 2 root psaserv 1024 Apr 4 18:42 error_docs drwxr-x--- 7 foo psaserv 1024 Apr 14 19:11 httpdocs drwxr-x--- 9 foo psaserv 1024 Apr 14 20:19 httpsdocs drwxr-x--- 2 root psaserv 1024 Apr 4 18:42 pd drwx------ 2 foo root 1024 Apr 4 18:42 private dr-xr-x--- 7 root psaserv 1024 Apr 4 18:42 statistics drwxr-xr-x 2 root psaserv 1024 Apr 4 18:42 subdomains drwxr-xr-x 2 root psaserv 1024 Apr 4 18:42 web_users [root@www vhosts]# ======================================================= ======================================================= <質問> この状態で、 「/var/www/vhosts/example.com」 をバックアップのためにコピーしようと思い、以下のコマンドを実行したのですが、 ファイルの所有者やグループが全部rootになってしまいます。 ファイルの所有者やグループを保ったままコピーするにはどうすればいいのでしょうか? [root@www vhosts]# whoami root [root@www vhosts]# pwd /var/www/vhosts [root@www vhosts]# cp -r example.com/ ORG_example.com [root@www vhosts]# ls -al ORG_example.com/ total 14 drwxr-xr-x 14 root root 1024 Apr 15 14:31 . drwxr-xr-x 9 root root 1024 Apr 15 14:31 .. drwxr-x--- 5 root root 1024 Apr 15 14:31 anon_ftp drwxr-xr-x 2 root root 1024 Apr 15 14:31 bin drwxr-x--- 3 root root 1024 Apr 15 14:31 cgi-bin drwxr-x--- 2 root root 1024 Apr 15 14:31 conf drwxr-xr-x 2 root root 1024 Apr 15 14:31 error_docs drwxr-x--- 7 root root 1024 Apr 15 14:31 httpdocs drwxr-x--- 9 root root 1024 Apr 15 14:31 httpsdocs drwxr-x--- 2 root root 1024 Apr 15 14:31 pd drwx------ 2 root root 1024 Apr 15 14:31 private dr-xr-x--- 7 root root 1024 Apr 15 14:31 statistics drwxr-xr-x 2 root root 1024 Apr 15 14:31 subdomains drwxr-xr-x 2 root root 1024 Apr 15 14:31 web_users [root@www vhosts]# ======================================================= 以上、よろしくお願い申し上げます。

  • PHPのビルドについて質問です。

    ご教授願います。 LINUX上でPHPをソースからビルドした場合、例えば./configureオプションに --with-readline というオプションをつけたとします。その場合別途インストールした libreadlline.soというモジュールが共有ライブラリとして動的に作用しますよね? lddコマンドで共有ライブラリをしらべると linux-vdso.so.1 => (0x00007fff86bff000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f70ed4ab000) libz.so.1 => /lib64/libz.so.1 (0x00007f70ed294000) libexslt.so.0 => /usr/lib64/libexslt.so.0 (0x00007f70ed080000) libtidy-0.99.so.0 => /usr/lib64/libtidy-0.99.so.0 (0x00007f70ece21000) libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f70ecbdd000) libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f70ec9bb000) librt.so.1 => /lib64/librt.so.1 (0x00007f70ec7b3000) libmcrypt.so.4 => /usr/local/lib/libmcrypt.so.4 (0x00007f70ec580000) libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f70ec325000) libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00007f70ec0ff000) とこのような共有状態が確認できます。だだこれだと、libreadline.so.6 => /lib64/libreadline.so.6という共有モジュールを 意図して削除した場合、動的リンクができずに php -a によるインタラクティブモードが動かせなくなります。 これを回避するために、静的リンク?というのでしょうかphpバイナリそのものに組み込むことはできないのでしょうか? つまり外部のlibreadline.soに依存せずにphpを動かすと行った具合です。 もちろん、これがなんのいみのない処理なのはわかります。起動するたびにメモリを大量に消費してしまうのでしょう。 ただ、こういうlibreadline.soなどの共有モジュールをphpバイナリに組み込める方法があるかどうかをしって実際に試してみたいのです。 LINUXなどPHPなどに造詣が深い方よろしっくご教授ください。お願い致します。

    • 締切済み
    • PHP
  • ディスク容量がいっぱいになってしまいました。。。

    皆様よりご教授賜りたく宜しくお願い致します。 1.SQLを実行すると、以下のERRORが出てしまいました。 ltsWriteBlock: failed to write block 1471 of temporary file Perhaps out of disk space? 2.ディスクの容量を確認すると以下のようになり./dev/hda2が、使用100%なので、 ------------- Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda2 7052496 6682468 11780 100% / ------------- 3./配下のディレクトリ容量を見てみると ---------------------------------------------------------------- drwxr-xr-x 2 root root 4096 5月 27 2004 bin drwxr-xr-x 4 root root 1024 5月 27 2004 boot drwxr-xr-x 20 root root 118784 7月 5 12:11 dev drwxr-xr-x 58 root root 4096 7月 5 12:07 etc drwxr-xr-x 7 root root 4096 5月 27 2004 home -以下省略--------------------------------------------------------- 4.なのでサイズの一番大きい/devを確認してみると -抜粋-------------------------------------------------------------- brw-rw---- 1 root disk 13, 121 8月 31 2002 xdb57 brw-rw---- 1 root disk 13, 122 8月 31 2002 xdb58 brw-rw---- 1 root disk 13, 123 8月 31 2002 xdb59 brw-rw---- 1 root disk 13, 70 8月 31 2002 xdb6 brw-rw---- 1 root disk 13, 124 8月 31 2002 xdb60 brw-rw---- 1 root disk 13, 125 8月 31 2002 xdb61 ----------------------------------------------------------------- 5.この中身は削除してしまって良いものでしょうか??? ■環境 OS:RedhatLinux Workstation

  • 削除コマンドについて

    [$ ->]ls -la と入力して以下の結果が出力されたとします。 total 10 drwxr-xr-x+ 2 cd530605 なし   0 Jan 5 2005 ./ d---------+ 5 cd530605 なし   0 Jan 19 2005 ../ drwxr-xr-x+ 1 cd530605 なし  1175 May 28 2004 TEL. bad drwxr-xr-x+ 1 cd530605 なし  1182 May 25 2004 TEL. csv drwxr-xr-x+ 1 cd530605 なし  175 May 27 2004 TEL. ctl drwxr-xr-x+ 1 cd530605 なし  174 May 26 2004 TEL. ctl. bak drwxr-xr-x+ 1 cd530605 なし  7 May 26 2004 TEL. dis drwxr-xr-x+ 1 cd530605 なし  344 May 26 2004 check. sql -rwxr-xr-x+ 1 cd530605 なし  874 May 27 2004 check_tables drwxr-xr-x+ 1 cd530605 なし  296 May 28 2004 tel. sql ________________________________________________________________ ・この結果をrmコマンドを使用して、May 28 2004以前の古いファイルを削除したいのですが、どのようにコマンド打ったらよいのか教えてください。(使用するコマンドが、rm, | ,grepというのはわかるのですが…、どのように組み合わせたらよいのかわかりません。) ・また、参考になるURLなど紹介していただけませんか?

  • 半年以上前のファイルの時刻表示

    AIX5.1を使用してます。 ls -l の出力結果では半年以上経過すると -rwxr-xr-x 1 root root 27 Mar 02 2004 test.txt のように、時間の欄が西暦表示されてしまいます。 これをkshで test.txt 2004/03/02 00:01 -rwxr-xr-x のように出力したいのですが、うまく出来ません。 どのようにしたら良いでしょうか?

  • アクセス権の修復について

    Mac OS X バージョン10.6.8を使っています、毎度毎度、アクセス権の修復をすると “System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Remote Desktop Message.app/Contents/Resources/English.lproj/UIAgent.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Support/LockScreen.app/Contents/Resources/English.lproj/MainMenu.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Support/LockScreenLeopard386.app/Contents/Resources/English.lproj/MainMenu.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 というものが出るのですがこれは何か問題があるのでしょうか?(外部からPCをコントロールされているなど)アクセス権の修復で出る表示の中でいくつか無害なものも出るのは知っているのですが、この表記は載っていなかったように思われるのと、リモート系の表示なので心配なのですが・・・? 分かる方どなたか教えてください><

    • ベストアンサー
    • Mac

専門家に質問してみよう