アプリ版:「スタンプのみでお礼する」機能のリリースについて

RedHatLinux8.0のインストールで一緒にインストールされたPHPを、mbregex他のオプションを付けて再コンパイルしたいのですが、やり方がわかりません。

再インストールが必要なのでしょうか?
再インストールの場合も、
OSと一緒にインストールしてしまったため、
後からインストールした場合と勝手が違うようなのです。

参考になるサイトでも構いません。経験ある方、教えて下さい。

A 回答 (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 がおすすめです。
    • good
    • 1

パッケージだとソースコードからのインストール先と別のディレクトリにインストールされる事もあるのでややこしいですね。


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

頑張ってくださいね。
    • good
    • 0

私が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を同時に立ち上げたりしないように。
    • good
    • 0
この回答へのお礼

皆さん、ありがとうございます。
Apache、PHP、Postgresqlと全てmakeしてインストールし直したところ、上手く行きました。

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

お礼日時:2003/04/18 12:37

makeするのも覚えてしまえば楽ですよ。


10分もあればインストール出来ると思います。
例えばApacheなら、wgetかなにかでソースを落として、

> tar xvfz apache_1.3.27.tar.gz
> cd apache_1.3.27
> ./configure
> make
> su
# make install

で、終わります。
ほとんどのソフトウェアは上記の流れでインストールできます。
configureのオプションがそれぞれ違うくらいで。

頑張ってください。
参考になれば幸いです。
    • good
    • 0

基本的な事ですが、ApacheはDSOでmakeされてるのでしょうか?


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

この回答への補足

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

補足日時:2003/04/17 10:42
    • good
    • 0

>もしかしたら、「./configureでインストール先


>を指定するので 」で、インストール先を指定する必要があるのでしょうか?
>インストール先はどこにすればよいのですか?また、どのように指定すればよいのですか?

# ./configure --help

と実行したら、オプションの一覧が表示されます。
apacheのディレクトリを指定するオプションがありますので確認してください。

但し、#1に書いているとおり、apacheもソースからコンパイルしている
前提でアドバイスしています。

Apacheがパッケージ版でPHPがソース版、という組み合わせは経験ありませんので。

#2のastronaut氏が解説されている通りの方法で、どちらもパッケージ版でいくか、
それともどちらもソース版で構築するか、にしておいた方が無難だと思います。
    • good
    • 0

xjd さんのおっしゃるとおり,ソースからインストールするのが良いと思いますが,どうしても rpm でパッケージ管理したい場合は,src.rpm から rebuild という手もあります.



# wget ftp://ftp.kddlabs.co.jp/Linux/packages/redhat/re …
# 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
    • good
    • 0

回答ではなくアドバイスですが、、、



私は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

私の手順は、たったこれだけです。
ご参考まで。

この回答への補足

ご回答ありがとうございます。

デフォルトの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でインストール先
を指定するので 」で、インストール先を指定する必要があるのでしょうか?
インストール先はどこにすればよいのですか?また、どのように指定すればよいのですか?

ご指摘、ご教授いただければ幸いです。

補足日時:2003/04/16 09:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!