PHP 5.3.29をApache 2とともにUbuntu 14に個別に正常にインストールしました。
私はPHPを次の方法でインストールしました:
Sudo -i
wget http://in1.php.net/distributions/php-5.3.29.tar.bz2
tar -xvf php-5.3.29.tar.bz2
cd php-5.3.29
./configure
make
make install
ただし、PHPとApacheにはリンケージがないようです。つまり、ApacheとPHPの両方をインストールしましたが、ApacheはPHPを実行しません。
私が試したこと:
このサイトから: https://docs.moodle.org/28/en/Compiling_PHP_from_source
「ApacheとPHPの構成」、これをApache構成ファイルに追加するように求められました。
LoadModule php5_module modules/libphp5.so
ただし、「libphp5.so」モジュールがありません。
一部の人々は私にこれを実行するように頼みました:
Sudo apt-get install libapache2-mod-php5
しかし、コマンドを実行すると、PHP 5.5.9がインストールされましたが、PHP 5.3.29。
Apacheを実行するにはどうすればよいですかPHP 5.3.29私がインストールしたものですか?
これは私にとってはうまくいきます:
Sudo -s
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget -O php-5.3.29.tar.gz http://de1.php.net/get/php-5.3.29.tar.gz/from/this/mirror
tar -xzf php-5.3.29.tar.gz
cd php-5.3.29
apt-get install Apache2 php5 php5-common php5-cli php5-mysql php5-Gd php5-mcrypt php5-curl libapache2-mod-php5 php5-xmlrpc mysql-server mysql-client libapache2-mod-fastcgi
apt-get install build-essential php5-dev libbz2-dev libmysqlclient-dev libxpm-dev libmcrypt-dev libcurl4-gnutls-dev libxml2-dev libjpeg-dev libpng12-dev
./configure --prefix=/usr/share/php53 --datadir=/usr/share/php53 --mandir=/usr/share/man --bindir=/usr/bin/php53 --includedir=/usr/include/php53 --sysconfdir=/etc/php53/Apache2 --with-config-file-path=/etc/php53/Apache2 --with-config-file-scan-dir=/etc/php53/conf.d --enable-bcmath --with-curl=shared,/usr --with-mcrypt=shared,/usr --enable-cli --with-Gd --with-mysql --with-mysqli --enable-libxml --enable-session --enable-xml --enable-simplexml --enable-filter --enable-inline-optimization --with-jpeg-dir --with-png-dir --with-zlib --with-bz2 --with-curl --enable-exif --enable-soap --with-pic --disable-rpath --disable-static --enable-shared --with-gnu-ld --enable-mbstring
make && make install
a2enmod cgi fastcgi actions
service Apache2 restart
vi /etc/Apache2/php53.conf
インサート:
#Include file for virtual hosts that need to run PHP 5.3
SetHandler application/x-httpd-php5
ScriptAlias /php53-cgi /usr/lib/cgi-bin/php53-cgi
Action application/x-httpd-php5 /php53-cgi
AddHandler application/x-httpd-php5 .php
追加のスクリプトを開始する環境スクリプトを作成しますPHP version
vi /usr/lib/cgi-bin/php53-cgi
インサート:
#!/bin/sh
PHPRC="/etc/php53/Apache2/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php53/php-cgi
Apache 2の仮想ホストを構成します
Include php53.conf
ServerName example.org
DocumentRoot /var/www/sites/example.org
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
最後に、再起動...
service Apache2 restart
ソース: https://erdfisch.de/en/multiple-versions-php-Apache-under-linux
ヴィッティヒの答えは素晴らしいです!私のUnixウェブサイトでphp 5.1をphp 5.6に置き換えるために使用しました。 Wittichとは異なり、私は2つのバージョンを同時に実行しようとしていませんでした。私は単に、Apacheと統合された古いバージョンのphpから、cgiから実行される新しいバージョンにアップグレードすることを試みていました。
何らかの理由で、Wittichのいくつかのコマンド(SetHandlerコマンドなど)が原因で、Apacheを試した後、Apacheをロードできませんでした。 Apacheが正しく動作するように、私は彼の答えを単純化する必要がありました。 Wittichの手順に6つの変更を加えました。
Apt-getは自分のUnixシステムでは動作しないため、apt-getの代わりにyumを使用しました。
私はphp 5.3ではなくphp 5.6をインストールしていたので、configureコマンドのスイッチで「php53」のすべてのインスタンスを「php56」に変更しました。これはすべてが機能するために必要なわけではありませんが、以下の私のパスを理解するのに役立ちます。
Httpd構成フォルダー(/etc/httpd/conf.d)の1つで、phpのcgi実装用にすでにセットアップされているファイル(php_cgi.conf)を見つけました。その内容は:
scriptAlias/phppath/"/ var/www/cgi-bin/cgi_wrapper /"
アクションphp-script/phppath/cgi_wrapper
このファイルの内容と存在により、Wittichのいくつかのステップをスキップまたは変更できます。 php53-cgiもphp53.confも作成していません。
\#!/ bin/sh
exec/usr/bin/php56/php-cgi
AddHandler php-script .php
したがって、要約すると、ハイジャックしてガイドとして使用できる既存のphp_cgi.confファイルがある場合、Wittichの回答を古いApacheベースのphpバージョンから新しいcgiベースのバージョンにアップグレードする方法に簡単に変換できます。
David Brogdonによる投稿は、configure、make、およびmake installコマンドを初めて使用するユーザーにとってのWittichの回答を補完するものであることがわかりました。
http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html
私は何時間もインターネットを検索しましたが、Brogdonの投稿やWittichの答えほど役立つものは見つかりませんでした。 Wittichの答えは彼のUnixシステムで完璧に機能したに違いありませんが、私のシステムで動作させるために少し修正する必要がありました。
これは私にとってスクラッチUbuntu 14.04で動作します:
システムパッケージを更新する
apt-get update
apt-get upgrade -y
依存関係をインストールして環境を準備する
apt-get install -y build-essential libxml2-dev Apache2 Apache2-dev
echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
apt-get install -y libapache2-mod-php5 --no-install-recommends
ダウンロードPHP 5.3.29
apt-get install -y wget && cd /tmp && wget http://php.net/distributions/php-5.3.29.tar.bz2
Apacheのモジュールapxs2を解凍して構成します。
tar -xvf php-5.3.29.tar.bz2 && cd php-5.3.29 && ./configure --with-apxs2=/usr/bin/apxs2
インストールする
make && make install
機能するかどうかを確認する
service Apache2 restart && php -v
docker pull fabriciohp/php-5.3.29