• 締切済み

RedHatLinux8.0 PHPの再コンパイル方法について

RedHatLinux8.0のインストールで一緒にインストールされたPHPを、mbregex他のオプションを付けて再コンパイルしたいのですが、やり方がわかりません。 再インストールが必要なのでしょうか? 再インストールの場合も、 OSと一緒にインストールしてしまったため、 後からインストールした場合と勝手が違うようなのです。 参考になるサイトでも構いません。経験ある方、教えて下さい。

みんなの回答

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.8

無事、動いてようで、おめでとうございます。 パッケージに疑問されている様ですが、以下のページなど見てください。 http://www.redhat.co.jp/products/RHL_end.html http://www.redhat.co.jp/support/ RedHat8 は出て間もないのに早くも出荷停止。 Eratta (パッケージのメンテ)は今年中で終了です。 せっかくシステムが安定した、と思ったとたんRedhat9や10にアップグレード するなんてうんざりです。 ftp版(無料)のredhatに飛びついて、導入している企業もたくさんあると 思いますが、今後のアップデートなどどうするんでしょうね? メーカが提供するパッケージに頼らず、大事なアプリはソースから導入できる スキルを身につけときましょう。 OpenSSL/OpenSSH、sendmail、bind等 ソース版の導入に挑戦してください。 ちなみに、末永く安定した運用がお望みなら、Debian/GNU Linux がおすすめです。

  • ikspiari
  • ベストアンサー率48% (29/60)
回答No.7

パッケージだとソースコードからのインストール先と別のディレクトリにインストールされる事もあるのでややこしいですね。 ただ、ソースコードからmakeすると失敗する場合もありますので、Makefileを修正できる知識やライブラリの依存関係についての知識も必要になる事があります。 また、中にはgccで直接コンパイルするものもあります。 makeがコケるとどうしようもなくなるのが初心者の典型なので、いろいろと勉強してみてください。 頑張ってくださいね。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.6

私がapacheをmakeしてるときはこんな感じです。 ------------------------------------------------- # make clean # ./configure \ --enable-module=so \ --enable-module=rewrite \ --server-uid=www \ --server-gid=www # make # make install ------------------------------------------------- 必要なモジュールがあれば追加してください。 シェルスクリプトにしておけば、簡単に実行できますね。 インストール先は--prefix で指定できますが、省略した場合は /usr/local/apache にインストールされます。 phpをconfigureするときも、apacheのインストール先を/usr/local/apache と指定すれば良いですね。 インストールしたソース版apacheは # /usr/local/apache/bin/apachectl start で実行できます。 Linuxの起動と同時にapacheを起動したければ、 /etc/rc.d/rc.localファイルに記述するか、 パッケージ版apacheの起動シェル、/etc/init.d/httpdファイル を修正する等してみてください。 (注意)パッケージ版とソース版のapacheを同時に立ち上げたりしないように。

iti-rou
質問者

お礼

皆さん、ありがとうございます。 Apache、PHP、Postgresqlと全てmakeしてインストールし直したところ、上手く行きました。 それにしても、パッケージ版っていったい何なんでしょうか。。便利と思って格闘していましたが、皆さんの言われる通り、makeしてインストールする方が遥かに簡単でした。 OSと同時にインストールするパッケージは最小限にしておいて、必要に応じて自分でインストールして行った方がよさそうですね。

  • ikspiari
  • ベストアンサー率48% (29/60)
回答No.5

makeするのも覚えてしまえば楽ですよ。 10分もあればインストール出来ると思います。 例えばApacheなら、wgetかなにかでソースを落として、 > tar xvfz apache_1.3.27.tar.gz > cd apache_1.3.27 > ./configure > make > su # make install で、終わります。 ほとんどのソフトウェアは上記の流れでインストールできます。 configureのオプションがそれぞれ違うくらいで。 頑張ってください。 参考になれば幸いです。

  • ikspiari
  • ベストアンサー率48% (29/60)
回答No.4

基本的な事ですが、ApacheはDSOでmakeされてるのでしょうか? --enable-module=soを付けてconfigure & make しないと後付けでモジュールの追加は出来ません。 > ./httpd -l で、 mod_so.c があるか確認してみてください。

iti-rou
質問者

補足

ApacheもOSインストール時に一緒にインストールされたもので、自分でmakeはしていないんです。 どうやらApache、PHP、Postgresqlなどは、OSと一緒にインストールするのでなく、後から自分でソースからインストールした方がよさそうですね。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

>もしかしたら、「./configureでインストール先 >を指定するので 」で、インストール先を指定する必要があるのでしょうか? >インストール先はどこにすればよいのですか?また、どのように指定すればよいのですか? # ./configure --help と実行したら、オプションの一覧が表示されます。 apacheのディレクトリを指定するオプションがありますので確認してください。 但し、#1に書いているとおり、apacheもソースからコンパイルしている 前提でアドバイスしています。 Apacheがパッケージ版でPHPがソース版、という組み合わせは経験ありませんので。 #2のastronaut氏が解説されている通りの方法で、どちらもパッケージ版でいくか、 それともどちらもソース版で構築するか、にしておいた方が無難だと思います。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

xjd さんのおっしゃるとおり,ソースからインストールするのが良いと思いますが,どうしても rpm でパッケージ管理したい場合は,src.rpm から rebuild という手もあります. # wget ftp://ftp.kddlabs.co.jp/Linux/packages/redhat/redhat/linux/updates/8.0/en/os/SRPMS/php-4.2.2-8.0.7.src.rpm # rpm -ivh php-4.2.2-8.0.7.src.rpm # vi /usr/src/redhat/SPECS/php.spec (449行目あたりのconfigure オプションに必要なものを追加) # rpmbuild -bb /usr/src/redhat/SPECS/php.spec /usr/src/redhat/RPMS/i386 に,rpm パッケージができるので,rpm コマンドで適宜インストール 結構大変です. なお,手元の環境では,rebuild するのに,以下のパッケージの追加が必要でした. httpd-devel, bzip2-devel, curl-devel, db4-devel, expat-devel, freetype-devel, gd-devel, gdbm-devel, gmp-devel, libjpeg-devel, libxml2-devel, ncurses-devel, openssl-devel, pam-devel, pspell-devel, krb5-devel, cyrus-sasl-devel, openldap-devel, mysql-devel, postgresql-devel, unixODBC-devel, net-snmp-devel, curl, mysql, net-snmp, perl-CGI, perl-DBD-MySQL, perl-DBI, postgresql-libs, unixODBC, imap-devel

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

回答ではなくアドバイスですが、、、 私はApacheやPHPはソースをダウンロードしてmakeしてます。 パッケージはバージョンが古いし、自分の都合にあわせて コンパイルオプションをいろいろ変えて試しますので、 ソースからコンパイルする方が、はるかに早くてラクチンです。 Apacheやphpをコンパイルする時に、./configureでインストール先 を指定するので既存のパッケージ版と競合しません。 # tar xvzf php-4.2.3.tar.gz # cd php-4.2.3 # ./configure \ --with-openssl=/usr/local \ --with-pgsql=/usr/local/pgsql \ --with-apxs=/usr/local/apache/bin/apxs \ --with-jpeg-dir=/usr/lib \ --with-xpm-dir=/usr/X11R6/lib \ --with-gd=/usr/local \ --with-freetype-dir \ --with-ttf \ --enable-gd-native-ttf \ --enable-momory-limit \ --enable-mbstring \ --enable-mbstr-enc-trans \ --enable-mbregex \ --enable-zend-multibyte \ --enable-track-vars \ --enable-trans-sid \ --without-db \ --without-mysql # make # make install 私の手順は、たったこれだけです。 ご参考まで。

iti-rou
質問者

補足

ご回答ありがとうございます。 デフォルトのPHPは4.2.2ですが、最新の4.3.1のソースを入手してトライしました。しかしながら、下記の通り、上手くいきません。 ----------------------------------- #./configure --enable-mbregex --enable-mbstring --enable-zend-multibyte --with-apxs2=/usr/sbin/apxs #make ext/ctype/ctype.lo: file not recognized: File truncated collect2: ld returned 1 exit status とmakeでエラーになります。 --------------------------------------- ためしに--with-apxs2=/usr/sbin/apxsを省いて、 #./configure --enable-mbregex --enable-mbstring --enable-zend-multibyte とすると、 #make #make install ともエラーなく正常に終了しているようなので、 apacheを再起動してphpinfoを表示させると、タイトルは PHP Version 4.2.2のままで、更新されていないようです。 もしかしたら、「./configureでインストール先 を指定するので 」で、インストール先を指定する必要があるのでしょうか? インストール先はどこにすればよいのですか?また、どのように指定すればよいのですか? ご指摘、ご教授いただければ幸いです。

関連するQ&A

  • redhatlinux9.0にPHPを再インストールする方法

    redhatlinux9.0にインストールされているPHPではmb_send_mail関数が使用できないため、PHPをコンパイルからやり直す必要があると聞きました。ApacheはそのままでPHPのみをコンパイルする方法を教えて頂けないでしょうか。コンパイルは未経験で方法が全く分かりません。

    • ベストアンサー
    • PHP
  • MacでのPHPコンパイル

    こんばんわ。 質問です。 Mac OS X LIONでPHPをコンパイルしているのですが うまくいかず困っています。 困っている点が 実は、通常のコンパイルはうまくいっているのですがコマンドライン用のPHP のコンパイルがうまくいきません、。 というのもインタラクティブシェルが可能なコマンドラインPHPが欲しいのです。 じつはMAX OS LIONにデフォルトで入っているコマンドライン版PHPも インタラクティブシェルが使えるのですが、自分で一度コンパイルしていたいと思っています。 で、コンパイル時のオプションですが ./configure -with-readline make make install というコマンドでコンパイルすると可能になるのことなのですが うまくいきません。 何度も試したのですが PHP -a とターミナルでうってみてもインタラクティブシェルが うごきません。 ほかにも、 ./configure --with-libedit make make install というオプションでもいいらしいのでやってみたのですがそれでもだめでした。 どなたかお分かりの方、なにとぞご教授ください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのバージョン方法

    PHP5.12を使っていますが、今見ると最新版が5.14に なっています。バージョンアップしたいのですが、 どうやっておこなえばいいでしょうか?PHPはオプション付きで コンパイルしています。なので、再度コンパイルしなおして インストールしてあげないといけないのでしょうか? 使っているOSはlinuxで、PHPはソースからいれました。

    • 締切済み
    • PHP
  • PHPが動きません

    RedhatLinux4EPで元々PHP4.3がインストールされていて(RPMかソースかわかりません)、PHP5.1.6ソースを新たにインストールしましたところ、PHPが全く動かなくなりました。 php.ini、httpd.confを新たに または 以前の状態のものにしても全く駄目でした。 新たにインストールした時のコンフィグは、下記になります。 ./configure --with-apxs2=/usr/sbin/apxs --with-gd --with-pgsql --with-zlib --enable-mbregex --enable-mbstring --enable-trans-sid あまりよく分かってないので、どのように対処したら良いか分かりません。 新しいのでも、以前のでも良いのでどうにかPHPを再度動くようにするにはどのようにしたら良いでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • MacOSXにインストール済みPHPの再コンパイル

    MacBookAirを最近購入したので、開発環境を揃えているところなのでです。 最初からPHPが入っているのはありがたいのですが、GDやmcryptなど必要なモジュールが足りないことに気がつき、再度コンパイルしたいと考えています。 MacOSXにインストール済みのPHPを再度コンパイルすることは可能でしょうか?(ソースコードはどこかに格納されていますでしょうか?) それとも新たにソースコードを拾ってくる必要があるでしょうか? ちなみにmacportsはインストールしましたが、こちらでもソースコードからのコンパイルは可能でしょうか? お分かりの方がいらっしゃいましたらご教示いただければ幸いです。 以上、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • RedHatLinux7.0からのアップグレードの方法は?

    RedHatLinux7.0を使っています。 これを8.0、9.0などへ、そのまま、アップしたいのですが。 こんな事が本当にできるのでしょうか? 実は、http://www.okweb.ne.jp/kotaeru.php3?q=624344で質問が既に出ており、astronautさんの回答を参考に、apt-getを何とかインストールし、/etc/apt/source.lstのrpmの物をコメントアウトするところまではやりました。 しかし、RedHatのerattaなどを見ても、7.0は7.0の物で、例えば8.0は8.0のもので括られていたような感じがするので、7.0の動作下で、8.0や9.0の物をインストールしてうまく行くのかな、とも思ってしまいます。 RedHatLinux7.0から例えば8.0へアップする時にkernelも違うと思うので、これもなにか不安です。 7.0の自分の物は、kernel-2.2.16-22で、確かそれ以上では2.4.xだと思いました。 これを例えば8.0のkernel-2.4.xのもの等を取ってきて、rpm -Uvh した場合、みんな正常に動いてくれるのか、疑問です。 また別の方法で、雑誌等についているCDROMからでもそのまま9.0などへアップグレードは可能なのでしょうか? (インストール時に、インストールか、アップグレードかを選択する画面があったような気もします) この様な質問するのは、RedHatの7.0のerattaが終ってしまったからです。 動かなくなってしまった場合が恐ろしいので、ミラーリングでHDDをバックアップした後にやろうと思います。 Webでいろいろ調べてみたりしましたが、分からないので、何卒、宜しくお願い致します。

  • PHPの4.4.9と5.2.13の共存について。

    PHPの4.4.9と5.2.13の共存について。 OSはRHLE4で既存で動いているPHP4のプログラムがあります。 今回、開発してもらったPHP5のプログラムを同じサーバで動作させようと思っております。 既にPHP5.2.9が入っておりましたが、オプションでMySQLがなかったため、 PHP5をアンインストールして、ソースからコンパイルしてインストールしhttpdを再起動しました。 しかし、phpinfo()で確認したところ、PHPのVersionが5.2.9のまま変化ありません。 ソースからのインストールが初心者なもので大変申し訳御座いませんが、 PHP4と5の共存とソースからインストールした際のアンインストール方法を教えていただけますでしょうか? インストール方法は下記サイトを参考にPHP5バージョンで行ないました。 http://d.hatena.ne.jp/shogo0809/20100714/1279110673 ./configureオプションは下記です。 --prefix=/usr/local/php5 \ --with-config-file-path=/usr/local/php5/lib \ --with-sqlite \ --with-mysql=/usr/local/mysql5 \ --enable-sigchild \ --enable-mbstring \ --enable-mbregex \ --enable-force-cgi-redirect \ --enable-zend-multibyte \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib \ --with-zlib-dir=/usr \ --with-openssl \ --enable-ftp \ --with-curl \ --with-pgsql=/var/lib/pgsql

    • ベストアンサー
    • PHP
  • PHP4のインストール方法

    RedhatLinux7.2+Apache1.3.24にMysqlとPHP4をインストールしたいです。 Mysqlは無事インストールできましたが、PHP4がうまくできません。 configureを実行した時、apxsがうまく動作しないとのエラーが返ってきます。 これは、ApacheをDSO版で再インストールしないとダメという意味でしょうか? できれば、現在のApacheの設定を引き継いだまま、MysqlとPHPのインストールを したいのですが、手順とかがあればご教授お願いします。 下記のサイトを参考におこなってみました。 http://www.atmarkit.co.jp/flinux/rensai/mysql05/mysql05a.html http://www.melnavi.net/php/install.php

  • phpのインストールについて

    phpで別サーバ(DBのみ)のpostgresqlに接続しようとした場合、接続できませんでした。 php-pgsql?かpgsql.soが無いのが原因ぽいのですが、検索してもyumでインストールとかばかりでソースからインストールした際の記述がみつけられませんでした… phpインストール時にpostgres(php-pgsql?)を有効するにはどうしたらいいのでしょうか? ちなみにpostgresqlとphpが同一サーバ内にインストールされているサーバ(現環境)からこのDBのみのサーバにTCP/IPで接続はできました。 OS:CentOS4.5(共に) apache2.2.6 php:5.2.5 postgres8.2.5 php cofigureオプション ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex よろしくお願いします。

    • ベストアンサー
    • PHP
  • RedHatLinux7.3のインストール方法

    RedHatLinux7.3をインストールをしていますが パーテションのとこでわからなくなっています。 最初にswap領域を確保して次がいまいちよくわかりません。 インストール方法が詳しく掲載されているサイトか うまくインストールが出来る方はいいアドバイスを いただけないでしょうか? マシンのスペックは問題ないです。 HDをいくつ使うかとかは考えないで下さい。 とにかく手法をお願いします。 その後にアパッチを入れWEBサーバにするのが目的です。