レミブログでそれらのリポジトリに関連する質問以来、私は this 、 this および this を読んだと言ってみましょう。ブログエントリはまったく役に立たないか、ここで何か不足していますが、何が何かわかりません。以下に、どのステップを実行したかを明らかにし、私が間違っていることを見てみましょう。 PHP 5.6.xとPHP 7.0をSCLとしてインストールする予定です(両方でいくつかのアプリケーションをテストする必要があり、PHP 5.6を保持する必要があるため)。いくつかのWordpress開発によるxのサポート)とSetHandlerを介してApache 2.4.xを使用するため、以下の手順に従います。
Software Collectionsツールをインストールします。
yum install scl-utils
システム用のリポジトリを含むパッケージをダウンロードします(この場合はhttpd24の場合)。
wget http://www.softwarecollections.org/en/scls/rhscl/httpd24/epel-6-x86_64/download/rhscl-httpd24-epel-6-x86_64.noarch.rpm
Repoパッケージをインストールします。
yum install rhscl-httpd24-epel-6-x86_64.noarch.rpm
コレクションをインストールします。
yum install httpd24
ソフトウェアコレクションの使用を開始します。
scl enable httpd24 bash
Httpd24サービスを開始します(デフォルトオプション)
service httpd24-httpd start
PHP56をSCLとしてインストールします。
yum install php56 php56-php-common php56-php-cli php56-php-fpm php56-php-Gd php56-php-intl php56-php-mbstring php56-php-mcrypt php56-php-opcache php56-php-pdo php56-php-pear php56-php-pecl-apcu php56-php-imagick php56-php-pecl-xdebug php56-php-pgsql php56-php-xml php56-php-mysqlnd php56-php-pecl-jsonc php56-php-pecl-Zip php56-php-process php56-runtime
PHP56-FPMを起動します。
service php56-php-fpm start
PHP70をSCLとしてインストールします。
yum install php70 php70-php-common php70-php-cli php70-php-fpm php70-php-Gd php70-php-intl php70-php-mbstring php70-php-mcrypt php70-php-opcache php70-php-pdo php70-php-pear php70-php-pecl-apcu php70-php-imagick php70-php-pecl-xdebug php70-php-pgsql php70-php-xml php70-php-mysqlnd php70-php-pecl-jsonc php70-php-pecl-Zip php70-php-process php70-runtime
テストApacheがインストールされ、実行されています。
http://mylocalip
そして、成功しました。RedHat/ CentOSのApacheデフォルトページが表示されます。これまでのところすべて良い。次のコードを使用して、/var/www/html/info.php
の下にファイルを作成しました。
<?php
phpinfo();
?>
実行して到達しようとすると:
http://mylocalip/info.php
ファイルが見つからないため、Apacheが間違った場所に移動します。問題ありません。/opt/rh/httpd24/root/etc/httpd/conf/httpd.conf
の下でファイルを編集し、DocumentRoot
を/opt/rh/httpd24/root/var/www/html
から/var/www/html
に変更して、私が同じissueを見つけたすべての場所で同じ変更、Apacheを再起動して再試行しましたが、同じエラーが発生しました。 /var/www/html
の権限を確認したところ、次のようになりました。
# ls -l /var/www/
drwxrwsr-x 3 Apache root 4096 Nov 13 04:51 html
ここで何が恋しいの?私は何を間違っていますか?これについていくつかのアイデアや助けを私に与えることはできますか?
私は同じ手順をテストしました、それは私のために機能します:(
/ opt/rh/httpd24/root/var/wwwを/ var/wwwに変更したことを確認してください(なぜこれが必要かわからないのですが)。
# grep www /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf | grep -v "^#"
DocumentRoot "/var/www/html"
<Directory "/var/www">
<Directory "/var/www/html">
# Redirect permanent /foo http://www.example.com/bar
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
次に、上記の手順で欠落しています:php70-php-fpmを切り替えて別のポート(私の場合は9002)をリッスンし、正しいSELInuxを設定します。
# semanage port -a -t http_port_t -p tcp 9002
次に、vhost管理用に2つの名前(el6php56およびel6php70)を作成し、Apache構成ファイルを追加して、各vhostのPHPファイルを正しいFPMサービスにリダイレクトします。
# cat /opt/rh/httpd24/root/etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName el6php56
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
<VirtualHost *:80>
ServerName el6php70
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9002"
</FilesMatch>
</VirtualHost>
次に(デフォルト/最初のvhostはphp 5.6を使用します)
私はたまたまこれに遭遇しました。 httpd24-httpを使用したいので、/ var/wwwの代わりに/ opt/rh/httpd24/root/var/wwwを使用しているようです。 Afaikは、SELinuxが/ opt/rh/httpd24/root/var/wwwと/ var/wwwをどのように扱うかで違いがあります。 「setenforce 0」を試して、SELinuxの問題かどうかを確認します。強制を元に戻すには、「setenforce 1」を使用します。
Php70の設定は次のとおりです:/ etc/opt/rh/rh-php70