I couldn't start Apache2 after installing PHP5 in archlinux, I got this error :
Cannot load /.../libphp5.so into server: /.../libphp5.so: undefined symbol: _efree
The solution was "make clean" on the PHP5 source directory, then ./configure, make & make install again.
Apache 2.0 (Unixシステム用)
このセクションでは、PHPを Unix システム上の Apache 2.0 にインストールする際の 手引きと注意事項について説明します。
Apache2 の MPM マルチスレッドモードを実運用環境で使用することは推奨されません。 代わりに prefork MPM または Apache1 を使用してください。その理由については、 マルチスレッド版 MPM の Apache2の FAQ エントリを参照してください。
» Apache ドキュメンテーション を参照し、Apache 2.0.x の基本的な事項について理解しておくことを 強く推奨します。
注意: PHP と Apache 2.0.x の互換性に関する注意
PHP の以下のバージョンは、Apache 2.0.x の最新版での動作が確認されています。以上のバージョンの PHPは、Apache 2.0.40 以降と互換性があります。
- PHP 4.3.0 およびそれ以降 (» http://www.php.net/downloads.php で入手可能)
- 最新の安定開発版。 ソースコード » http://snaps.php.net/php5-latest.tar.gz を入手、または Windows 用のバイナリ » http://snaps.php.net/win32/php5-win32-latest.zip をダウンロードしてください。
- プレリリース版を » http://qa.php.net/ から ダウンロード可能です。
- » anonymous CVS から PHP を 入手することも可能です。
Apache 2.0 SAPI のサポートは PHP 4.2.0 で開始されました。 PHP 4.2.3 は Apache 2.0.39 で動作します。PHP 4.2.3 を Apache の他のバージョンと 組み合わせて使用しないでください。 PHP 4.3.0 もしくはそれ以降のバージョンの PHP を 最新版の Apache2 と組み合わせて使用することが推奨されます。
ここで挙げたバージョンの PHP は、Apache 1.3.x でも動作します。
最新バージョンの » Apache 2.0 を ダウンロードし、上述のいずれかのバージョンの PHP を用意してください。 この手引きでは Apache 2.0 で PHP を動作させるための 基本的な部分しかカバーしていません。さらに詳しい情報については、» Apache ドキュメンテーション を参照してください。 情報が古く不正確になってしまうため、以下では詳細なバージョン番号は 記述されていません。'NN' という文字列をご使用のバージョンに適宜置き換えて ください。
例1 インストール手順 (Apache 2 共有モジュール版)
1. gzip -d httpd-2_0_NN.tar.gz 2. tar xvf httpd-2_0_NN.tar 3. gunzip php-NN.tar.gz 4. tar -xvf php-NN.tar 5. cd httpd-2_0_NN 6. ./configure --enable-so 7. make 8. make install 以上で Apache 2.0.NN が、モジュールの動的ロードとデフォルトの MPM(マルチプロセッシングモジュール)である prefork が有効になった 状態で、/usr/local/apache2 にインストールされます。 インストールが正常か調べるには、以下のようにします。 /usr/local/apache2/bin/apachectl start サーバの停止は、以下の通り。 /usr/local/apache2/bin/apachectl stop 引き続き PHP のセットアップを行います。 9. cd ../php-NN 10. PHP の configure を行います。ここでは、様々なオプションを指定し、特定の 拡張モジュールを有効にするといったカスタマイズを行います。指定可能な オプションの一覧は、./configure --help を実行すると得られます。以下に、 Apache 2 と MySQL のサポートを有効にする、簡単な設定例を示します。 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql 11. make 12. make install configure オプションを変更して再インストールする場合は、最後の 3 つ の手順を繰り返します。共有モジュールとしてコンパイルされた PHP を 有効にするには Apache を再起動するだけです。Apache の再コンパイルは 必要ありません。 特に断りがない限り、'make install' は、PEAR、phpize のような様々な 関連ツール、CLI 版 PHP などもインストールすることに注意してください。 13. php.ini ファイルを設定する cp php.ini-dist /usr/local/lib/php.ini PHP の実行時設定を変更するには、.ini ファイルを編集します。 このファイルを他の場所に置きたい場合は、手順 10 で、 オプション --with-config-file-path=/path を使用します。 php.ini-dist ではなく、php.ini-recommended を使用する場合は、PHP の 動作が変化しますので、ファイル中に記載されている変更点の一覧を確認する ようにしてください。 14. httpd.conf を編集し、PHP の共有モジュールをロードするよう設定します。 LoadModule 命令の右側に記述するパスは、システムの PHP 共有モジュール を指している必要があります。上記の make install により既にこの設定は 追加されている場合もありますが、確認が必要です。 PHP 4 の場合: LoadModule php4_module modules/libphp4.so PHP 5 の場合: LoadModule php5_module modules/libphp5.so 15. Apache が特定の拡張子のファイルを PHP としてパースするよう設定します。 たとえば、Apache が拡張子 .php のファイルを PHP としてパースするようにします。 単に Apache の AddType ディレクティブを使うだけではなく、 悪意を持ってアップロード (あるいは作成) された exploit.php.jpg のようなファイルが PHP として実行されてしまわないようにしたいものです。 この例では、PHP としてパースさせたい任意の拡張子を追加していくだけです。 ためしに .phtml を追加してみましょう。 <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> あるいは、拡張子 .php, .php2, .php3, .php4, .php5, .php6, そして .phtml のファイルだけを PHP として実行したいは、このようにします。 <FilesMatch "\.ph(p[2-6]?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> 拡張子 .phps のファイルを PHP ソースファイルとして扱うには、これを追加します。 <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> 16. Apache サーバを、通常の手順通り、起動させます。 /usr/local/apache2/bin/apachectl start - あるいは - service httpd restart
上記の手順で、Apache2 ウェブサーバ上で SAPI モジュールとして PHP を動作させることができます。もちろん、Apacheと PHP の双方とも、もっと多くの configure オプションを指定することが出来ます。 詳しい情報を得るには、ソースツリーディレクトリで ./configure --help を実行してください。また、マルチスレッド版の Apache2 をビルドする場合は、デフォルトの MPM である prefork を worker もしくは perchild で 上書きする必要があります。このためには、上記の手順 6 で--with-mpm=worker もしくは--with-mpm=perchild を指定します。マルチスレッド版 については、その動作に関して十分注意してください。 詳細については Apacheドキュメントの » マルチプロセッシングモジュール (MPM) を参照してください。
注意: コンテントネゴシエーションを使用する場合には、 Apache の MultiViews オプションに関するFAQ を参照してください。
注意: マルチスレッド版の Apache をビルドする場合は、システムがスレッドを サポートしている必要があります。また、PHP は 実験的なステータスにある Zend Thread Safety (ZTS) でビルドされます。 そのため、使用できない拡張モジュールがあります。デフォルトの prefork MPM でのビルドが推奨されます。
Apache 2.0 (Unixシステム用)
24-May-2008 03:27
27-Oct-2007 12:08
If you install PHP as an Apache module, you can consider the following. Instead of adding:
application/x-httpd-php php
application/x-httpd-php-source phps
into Apache mime.types, you can add:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
into Apache httpd.conf, OR you can add:
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
into Apache httpd.conf. The last one is the preferred way of configuration, but it does not work in previous Apache versions.
21-Oct-2006 10:30
Following on from Chris' comment (22-Sept-2006), my RHEL4 PHP4 rpm added a php.conf file at:
/etc/httpd/conf.d/php.conf
This was referenced in the httpd.conf by it's Include directive:
Include conf.d/*.conf
22-Sep-2006 02:33
Install issues on Redhat, specifically RHEL4 with php4 already installed:
I discovered that there was an issue caused by redhat loading php4 in another file seperate from the httpd.conf file! This took me hours to discover. Make sure you know if the apache config file (httpd.conf) is loading configurations from a directory (or another file(s)) as well. If so, look in there for any php module loading which could conflict with the new module you are compiling/installing.
28-Aug-2006 04:34
for slackware 10.2 users with apache2, mysql5, and trying to install php5:
when following the directions above, after this step:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
i kept getting this error:
"Unable to find MySql header files...."
the only way i could get php5 with mysql support was to compile MySql5 from source, and not use the binary as the mysql site recommends.
then i was able to ./configure successfully, but for some reason php was configured to compile the CGI version.
so, had to use this ./configure line:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --disable-cgi
alternatively, you could install php4 which does bundle the MySql client files.
05-Jul-2006 07:41
PHP 5.1.4 INSTALLATION on Solaris 9 (Sparc)
Solaris9 Packages Installed:
Verify required package installation:
root# pkginfo SUNWbtool SUNWsprot SUNWtoo SUNWhea SUNWarc \
SUNWlibm SUNWlibms SUNWdfbh SUNWxglh SUNWcg6h
Uninstall Default Apache Packages:
root# /etc/init.d/apache stop
root# pkginfo |grep Apache
root# pkgrm SUNWaclg SUNWapchd SUNWapchr SUNWapchu
Create installation Directory:
root# mkdir /phpdata/
Download Required Packages from Sunfreeware:
Install libiconv-1.8 and gcc3.3.2 packages
root# pkgadd -d ./libiconv-1.8-sol9-sparc-local
root# pkgadd -d ./gcc-3.3.2-sol9-sparc-local
set LD_LIBRARY_PATH, CC and PATH variables
root# LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/sparcv9/:\
/usr/lib:/usr/openwin/lib:/opt/local/lib:/usr/local/ssl/lib:\
/usr/local/apr/lib:/opt/mysql/mysql/lib
root# CC=gcc
root# PATH=$PATH:/usr/ucb:/usr/local/bin/
root# export LD_LIBRARY_PATH CC PATH
Install apr-1.2.2 and aprutil-1.2.2 packages
root# gzcat apr-1.2.2.tar.gz |tar xvf -
root# cd apr-1.2.2
root# ./configure
root# make
root# make install
root# cd ..
root# gzcat aprutil-1.2.2.tar.gz |tar xvf -
root# cd apr-util-1.2.2/
root# ./configure --with-apr=/usr/local/apr/
root# make
root# make install
Install gawk-3.1.4, expat-1.95.5, db-4.2.52.NC,
gdbm-1.8.3, libgcc-3.3 and libxml2-2.6.16 packages
root# cd ..
root# pkgadd -d ./gawk-3.1.4-sol9-sparc-local
root# pkgadd -d ./expat-1.95.5-sol9-sparc-local
root# pkgadd -d ./db-4.2.52.NC-sol9-sparc-local
root# pkgadd -d ./gdbm-1.8.3-sol9-sparc-local
root# pkgadd -d ./libgcc-3.3-sol9-sparc-local
root# pkgadd -d ./libxml2-2.6.16-sol9-sparc-local
Install GNU make package
root# gzcat make-3.81.tar.gz |tar xvf -
root# cd make-3.81
root# ./configure
root# make
root# make install
root# cd ..
Install mysql-standard-5.0.22 package
Search for user mysql
root# grep mysql /etc/passwd
root# grep mysql /etc/group
If not found create user and group mysql
root# groupadd mysql
root# useradd -G mysql mysql
root# pkgadd -d ./mysql-standard-5.0.22-solaris9-sparc.pkg.gz
Install openssl-0.9.7g package
root# gzcat openssl-0.9.7g.tar.gz |tar xvf -
root# cd openssl-0.9.7g
root# ./config shared
root# make
root# make install
root# cd ..
Install Apache2 package
root# gzcat httpd-2.2.0.tar.gz |tar xvf -
root# cd httpd-2.2.0
root# ./configure --enable-so
root# /usr/local/bin/make
root# /usr/local/bin/make install
root# cd ..
Install php-5.1.4 package
root# gzcat php-5.1.4.tar.gz |tar xvf -
root# cd php-5.1.4
root# ./configure --with-apxs2=/usr/local/apache2/bin/apxs\
--with-ldap --with-mysql=/opt/mysql/mysql/
root# /usr/local/bin/make
root# /usr/local/bin/make install
root# cp php.ini-dist /usr/local/lib/php.ini
Edit httpd.conf to load the PHP module
and to parse certain extensions as PHP
root# vi /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
Start Apache
root# /usr/local/apache2/bin/apachectl start
Add environmental variables below HTTPD
root# vi /usr/local/apache2/bin/apachectl
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/sparcv9/:
/usr/lib:/usr/openwin/lib:/opt/local/lib:/usr/local/ssl/lib:
/usr/local/apr/lib:/opt/mysql/mysql/lib
PATH=/bin:/sbin:/usr/ccs/bin:/usr/sbin:/usr/openwin/bin:\
/usr/ucb:/usr/local/bin/
export LD_LIBRARY_PATH PATH
Create Apache Startup Script
19-Apr-2006 05:18
For unix (especially opensuse 10.0) you can find bison and flex here:
ftp.gnu.org/non-gnu/flex
ftp.gnu.org/pub/gnu/bison
Peace ;-)
30-Mar-2006 03:13
I've (painfully) discovered that installing PHP5 with "make install" under SuSe 9.2 is NOT a good idea.
http://www.aditus.nu/jpgraph/apache2suse.php
This page explains how to install it without breaking everything that's php-related in the Apache2 configuration. Its first purpose, though, is to show how to have php 4 and 5 to cohabit properly.
28-Sep-2005 10:30
Using Apache2 & PHP5 work perfectly fine & safe together.
- all core modules are safe in Zend Engine 2
- third-party-libraries should be avoided
- semaphores and shared memory enables you to ensure yourself that your application/website is thread-safe also with non-thread-safe PHP modules!
04-Aug-2005 12:30
FILE TRUNCATED!!
during the make process should u receive an error declaring ext/ctype/ctype.lo (or another file) is truncated then you need to 'make clean' prior to a healthy 'make' and 'make install.'
looking into your ext/ directory you may find the offensive file to be 1 byte long.
28-Feb-2005 01:22
For the SuSE9.2 install of PHP5.
First:
If building on a x64 platform, please set LDFLAGS="-L/usr/lib64" before configure.
As for install, it suffices to go to /etc/apache2 and:
ln -s sysconfig.d/loadmodule.conf httpd2-prefork.conf
and then make install
10-Feb-2005 10:21
To install mysql and mysqli with PHP5 do the following:
after doing:
./configure --with-mysql=/path/to/mysql_config --with-mysqli=/path/to/mysql_config
do this:
"
if you want to use both the old mysql and the new mysqli interface, load the Makefile into your editor and search for the line beginning with EXTRA_LIBS; it includes -lmysqlclient twice; remove the second instance
"
then you can:
make
make install
.....
Pleasse note: you must have mysql-dev installed (RPM or source) or you will not have the mysql_config file at all. The standard, server, and client installations of MySQL do not include it. I read somewhere that the mysql and mysqli paths must be identical.
Quoted from Michael Kofler at the following link:
http://www.kofler.cc/forum/forumthread.php?rootID=3571
20-Jan-2005 04:36
Building PHP 5.x with Apache2 on SuSE Professional 9.1/9.2
SuSE uses a rather fragmented set of Apache configuration files stored in /etc/apache2/. When you configure PHP 5.x with:
$ ./configure --with-apxs2=/usr/sbin/apxs2
$ make
everything builds just fine; but when you issue:
$ su -c "make install"
the unconventional Apache conf file layout confuses the install-sapi section of the Makefile and the process halts with the following error:
apxs:Error: Config file /etc/apache2/httpd2-prefork.conf not found.
make: *** [install-sapi] Error 1
At this point only the PHP SAPI library has been copied into place; the rest of the files (like PEAR scripts, PHP-CLI, etc) have not been installed. But never fear! You can overcome this problem with the following steps:
1. Edit Makefile and change the following line to remove "install-sapi":
install_targets = install-sapi install-cli install-pear install-build install-headers install-programs
2. Issue the make install command again:
$ su -c "make install"
3. Add the PHP module & type instructions to the Apache configuration. As root, create a new file, /etc/apache2/conf.d/php5.conf that contains the following lines:
LoadModule php5_module /usr/lib/apache2/libphp5.so
AddType application/x-httpd-php php
--- And that's it. Everything else is just as the documentation suggests it should be.
15-Nov-2004 09:38
Hi too had same problem with multiview like when i execute http://huey/admin/test.php it used to compile but when i use http://huey/admin/test it wouldnt recognise it as php file... i worked it out with the addhandler method and AddType in different line and setting multiview for directive
"multiviews Options Indexes FollowSymLinks MultiViews"
the directives u can set it to root directory so now when u type pn test it will search in precendence for test.php, test.html if any .....
its working for me with apache2.0.47 and php 4.3.9 on solaris
praveen
30-Sep-2004 11:52
If you're trying to get PHP and Multiviews to work properly, try this page:
http://tranchant.plus.com/notes/multiviews
(In brief, a request for the URL http://example.net/thing, where there are possible matches thing.php and thing.pdf, returns a 406 with many browsers because of the application/x-httpd-php MIME type set above. The link above gives a better method for using php, instead using these directives:
AddHandler php5-script php [or php-script for php4]
AddType text/html php
For more info see the link.)
