「MariaDB_10.0」のインストール。 [MariaDB]
■「RPM-GPG-KEY」インポート。
|
後者の「mysql-libs-5.1.73-3.el6_5.i686」が競合するようなのですが、なんで入っているのかな。依存関係かな。
依存関係無視で「mysql-libs-5.1.73-3.el6_5.i686」アンインストールします。
次に「RPM-GPG-KEY」をインポートします。その後、確認をしてみたのですがファイルをダウンロードしてからインポートするわけでは無いのかな?
ファイルはありませんでした。(rpm -qai gpg-pubkeyで確認はできました。)
■リポジトリのインストール。
|
現れたテキストについでに「enabled=0」を追記しました。
「vi」コマンドで保存します。
■「MariaDB」のインストール。
|
しかし以下問題があります。
「警告: RPMDB は yum 以外で変更されました。」
→yum以外のコマンドやソフトでRPMDBが変更されたことを表す。とのこと。
また、気にしなくてもよいが、この警告が出て、yumのインストールが実行されないことがある。とのこと。
yumのキャッシュをクリアする「yum clean all」コマンドで解決するとのこと。
「php56u-pdo-5.6.4-1.ius.el6.i386 は次のインストール済みと衝突しています: php-pdo < ('0', '5.6', None): php56u-pdo-5.6.4-1.ius.el6.i386」
→うーん。宜しくないのでしょうねぇ。でも他にPHP-PDOが見つからないのです。パス。
「2:postfix-2.6.6-6.el6_5.i686 は次の要求が不足ています:libmysqlclient.so.16」
→「yum provides --enablerepo=mariadb,epel,ius libmysqlclient.so.16」コマンドを実施したところ「MariaDB-compat-10.0.17-1.el6.i686」にも入っているので、今インストールしたということでこのままで良いのではないでしょうか。
「2:postfix-2.6.6-6.el6_5.i686 は次の要求が不足ています: libmysqlclient.so.16(libmysqlclient_16)」
→上と同様みたいなのでOKにします。
「2:postfix-2.6.6-6.el6_5.i686 は次の要求が不足ています: mysql-libs」
→上と同様で「MariaDB-compat-10.0.17-1.el6.i686」に入っているのでOKにします。
「apache」と「PHP」の設定及び動作確認。 [PHP]
■「apache」の設定。
|
に
「PHP」の設定ファイル→「/etc/httpd/conf.d/10-php.conf」「/etc/httpd/conf.d/php.conf」
を読み込ませる必要があるとのこと。
それぞれのファイルを確認してみると、「PHP」の設定ファイルの位置が当方の場所と異なるようです。
環境の違いでそうなるのか、インストールの方法でそうなるのかよくわかりませんが、当方に合わせた設定をしていこうと思います。
「apache」の「/etc/httpd/conf/httpd.conf」に「PHP」の「/etc/httpd/conf.d/10-php.conf」と「/etc/httpd/conf.d/php.conf」を追記するとサイトにはあるのですが、当方と「10-php.conf」の位置が異なりますので修正してから追記しました。追記の場所って一番下で良いのでしょうかね。
また、一番下の追記は、何か他のパッケージのコンフィグを「apache」が読み込む必要がある場合に必要らしいのですが、追記した上の段に「IncludeOptional conf.d/*.conf」というのがあるのですが、意味は違うのでしょうか。
さらに「DirectoryIndex」を検索し「index.htm」「index.cgi」「index.php」を追記し、これらのファイルを許可します。
■「PHP」の設定。
|
まずはインストールした実際のパスを「rpm -ql」コマンドで確認します。
■動作の確認。
|
「PHP」の動作確認をするための「info.php」を作成します。
ブラウザで「http://www.ドメイン名/info.php」今回は「192.168.0.66/info.php」で確認できました。
「PHP5.6.4」のインストール。 [PHP]
■作成されたRPMファイルの確認。
|
■「rpm」コマンドで依存関係を無視してインストールする。
|
サイトを見て回ると「rpm」コマンドでインストールしていることが多いように思いますが、「yum localinstall」コマンドでインストールしてみるもののエラーが発生しました。
要求: php56u-cli(x86-32) = 5.6.4-1.ius.el6
要求: php56u-common(x86-32) = 5.6.4-1.ius.el6
これら要求されたパッケージを同時にインストールすれば良いのでは。
しかしこれもエラー発生で
要求: php56u-pecl-jsonc(x86-32)
を要求されたのですが、これはビルドしたファイル群には存在しません。
どうしたらよいものかとインターネットを検索すると、これはダウンロードしてまたビルドするようですね。
ということでアーカイブから
/home/mockbuild/rpmbuild/SOURCES
にダウンロードし、「rpmbuild --rebuild」コマンドを実施します。が、
php56u-devel は php56u-pecl-jsonc-1.3.6-3.ius.el6.i386 に必要とされています
php56u-pear は php56u-pecl-jsonc-1.3.6-3.ius.el6.i386 に必要とされています
ということで、「php56u-devel」「php56u-pear」をインストールしたいところですが後者がまたないので、SRPMをダウンロード、「rpmbuild --rebuild」コマンドを実施します。
しかしまた
php56u-cli は php56u-pear-1:1.9.5-1.ius.el6.noarch に必要とされています
php56u-xml は php56u-pear-1:1.9.5-1.ius.el6.noarch に必要とされています
ということなのですが、今回は「php56u-cli」「php56u-xml」もすでにありますのでまとめてインストールしてみます。
しかしまたまたエラー発生です。というか
php56u-common → php56u-pecl-jsonc → php56u-pear → php56u-cli → php56u-common
という形で依存関係が一周してしまいインストールが出来ません。調べてみるとこれらは依存関係を無視した形でインストールしてしまうようです。(yumの意味が……)
結果としては、「rpm」コマンドで依存関係を無視する「--nodeps」オプションを付けてインストールします。
■ダウンロードしたソースパッケージをRPMファイルに。
|
「/rpmbuild/RPMS/noarch」ディレクトリに出来るので注意します。
そして「yum localinstall」でインストールします。
同様に「php56u--pecl-jsonc」にも実施、インストールします。
■「PHP5.6.4」および必要なパッケージのインストール。
|
これでとりあえず「PHP」のインストールは終わったのかな?
SPECファイルからPHP5.6.4のRPMをビルドする。 [PHP]
■結論。
|
最新版(5.6.8)を「yum」でインストールしたかったのですが、当方のスキルでは無理でしたので、「rpmbuild」コマンドにて「RPMファイル」をビルドすることにしました。
「apache 2.4.12」に対応する「PHP」のバージョンは「SPECファイル」を調べると、「5.5.20」および「5.6.4」であるように思います。
ビルドするために非常に時間がかかり、長く、時には不要だった対処を記したこの下の記事は、次の失敗の役に立つかも知れないのでこのまま記載しておきます。
しかし全部読むのが面倒な場合、直ぐに再現できるよう簡潔なこの記事を一番上に用意しておきます。
当方の環境では上記の「SPECファイル」の編集と不足分のインストールでビルドが完了しました。
経緯や少し詳細な情報は前日分の記事や、この下の記事を見れば解ります。
■SPECファイルを用いてRPMファイルをビルドする準備。
|
ソースパッケージ「php56u-5.6.4-1.ius.centos6.src.rpm」を「SOURCES」ディレクトリに移動します。
ソースパッケージを「rpm2cpio | cpio -id」コマンドにて展開します。
現れた「SPECファイル」「php56u.spec」を「SPECS」ディレクトリに移動し、「vi」コマンドで編集します。
{_sbindir}を{_bindir}にして保存します。
「rpmbuild」コマンドの「-bb」オプションにて「SPECファイル」から「RPMパッケージ」を作成します。エラーになります。
要求されたパッケージ類を「mockbuild」ユーザーから「bibo-roku」ユーザーに戻り全てインストールします。
■SPECファイルを用いてにRPMをビルドする。失敗。エラーについて調べる。
|
「WARNING: unrecognized options: --with-exec-dir」
「 WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: none, min: 204, excluded: 3.0).」
「WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.」
調べながら対処していきます。
■「--with-exec-dir」の対処。
|
下記の対処は
[root@centos ~]# yum install --enablerepo=epel apr-devel apr-util-devel
をインストールすることにより、発生はするがそのままビルドできましたので、不要な対処でした。
ただ削除すれば警告も出なくなりました。
---追記終わり---
「WARNING: unrecognized options: --with-exec-dir」についての対処です。
警告文の直ぐ上の「./configure」に「--」オプションが沢山ついているのですが、ここに「 --with-exec-dir=/usr/bin」とありますね。
インターネットで検索してみると公式HPに記載がありました。
「 --with-exec-dir[=DIR] セーフモード時には、このディレクトリにある実行ファイルのみ実行を許可します。 デフォルト値は /usr/local/php/bin です。 」
また「警告 この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。」とあります。
「5.6系」のインストールですから、このオプションを追加しなければ良いんでしょうかね。消去して保存します。
■「bison」と「re2c」の対処。
|
まずは「bison」について調べてみます。コマンド「yum list installed」でインストールされているか確認するも返答無しなので、インストールしていないようです。
インストールするためにコマンド「yum provides」を使用して確認すると、リポジトリID「base」で単体でインストールできるようです。
次にインターネットで調べてみると「通常パッケージのbisonを使うとconfigure時に警告が表示されるためサポートされているbisonを一時的に使用します。」とありました。一時的にと言うのはインストール時だけを指すそうですが、PHPをインストールした後はアンインストールするのでしょうか。
次に「re2c」についても同様の作業を実施します。
インターネットの情報で「bison」と同じでした。
全てのエラーを解決したわけでは無いのですが、とりあえず「インストール」という形で解決できるのでは無いかと思われるものだけを対処して、再度ビルドしてみてどの様な結果がでるか確認してみます。
結果「WARNING」は消えました! が、エラーが残っています。
■残りのエラー。
|
下記の対処は
[root@centos ~]# yum install --enablerepo=epel apr-devel apr-util-devel
をインストールすることにより、発生しなくなりました。不要な対処でした。
---追記終わり---
残ったエラーについて把握してみます。
1「perl」がインストールされいない。
2「apxs」が見つからない。パスが間違えているのでは無いか。
3「apache」のビルドに「--enable-so」が行われていないのでは無いか。
「/httpd/build/config_vars.mk」が開けない。
■残りのエラー「perl」の確認。
|
■残りのエラー「apxs」の確認。
|
ネットで調べてみますと「apxsが存在するのにエラーとなっている場合は直接パスを --with-apxs2=/usr/sbin のように指定します。」とのこと。二ヶ所修正しました。
さらに「Apache2のバージョンによっては--with-apxs2とするとエラーが発生してしまい、--with-apxs2filterと変更するとうまく行くことがあります。」ともあり、これも試します。
3については、「apache」のインストール時の設定だと思うので、インストール済みの今回はパスしておきます。
次の「cannot open /httpd/build/config_vars.mk No such file or directory at /usr/bin/apxs line 214.」ですが、パスが「/usr/bin/apxs」と「sbin」ではありません。先の変更と実際のパスと合っています。
「cannot open /httpd/build/config_vars.mk」は読んだとおりですが、実際のパスは「/usr/lib/httpd/build/config_vars.mk」なので、修正をしてみます。
■「Cannot open /httpd/build/config_vars.mk No such file or directory at /usr/bin/apxs line 214.」の対処。
|
そもそも記述の仕方が相対パスみたいですが……。
次に「No such file or directory at /usr/bin/apxs line 214.」と具体的な指摘があります。「apxs」を「vi」で開き214行目を確認します。
さっぱりわからない内容ですが「cannot open」だけ確認できます。
仕方ないので「変数」を検索しまくります。「$file」を検索すると210行目辺りに「get_config_vars」という解りやすい名前を発見しました。これを検索します。
40行あたりに
「get_config_vars("$installbuilddir/config_vars.mk",\%config_vars);」 とありました。
「$installbuilddir」を検索すると
「 my $installbuilddir = $libdir . "/httpd/build";」
「$libdir」検索 を検索すると
「my $libdir = `pkg-config --variable=libdir apr-1`;」
「apr-1」インターネットで検索すると、「/usr/lib64/pkgconfig に apr-1 な設定ファイルが存在しないため、設定が読めず。」とありました。
当方は64ビットマシンではありませんが、「apr-1.pc」とやらが必要らしいので、まずはOS内を検索しますがヒットしませんでした。 「yum provides」で調べますと「apr-devel-1.3.9-5.el6_2.i686」に含まれるようなのでインストールします。
■新たなエラーの確認。と対処。
|
再度エラー発生。「apxs:Error: /usr/bin/apu-1-config not found!.」これが解りやすそうなのでファイルをCentOS内で検索してみます。
非常に似ている名前のファイルを発見。ファイル名を変更して良いものなのか……。 「ls」コマンドでファイルを見ているとやはり追加でインストールすれば良いのでしょうか。
インストールして再度ビルドします。
■「SPECファイル」から「RPMファイル」をビルドする。
|
ただ省略しましたが、「Conflicts: php-enchant < 5.6」やらが沢山あったのでそれが悪いことなのかよくわかりません。
また、これまでのエラーに対処した方法が全て正しいのかも調べなくてはと思っています。
基本的にはエラーの原因はビルドに必要な物がインストールされていないことが原因であったことが多いような気がします。
なので、修正した「SPECファイル」等をデフォルトに戻してからもう一度リビルドしてみようかと思います。(えらく時間がかかりますが……。)
「rpm-build」コマンドと「SPECファイル」の確認 [サーバ立ち上げ準備]
■アーカイブファイルを用いてRPMファイルをビルドする。失敗。
|
PHP5.6系の最新版は「5.6.8」とのことですので、ダウンロードします。
当方は「startx」コマンドを実施し「FireFox」からダウンロードしました。
「rpmbuild」コマンド、オプション「-tb」(アーカイブファイルを用いてRPMファイルをビルドする)でビルドしたのですが、「SPEC」ファイルがない模様。
ファイルを作成したりはハードルが高いので、次の方法に移行します……。
■SRPMを用いてにRPMをビルドする。失敗。追加インストール。
|
「IUS」リポジトリにはアーカイブがあるのでそこから「5.6.7」をダウンロードしました。
今度は「rpmbuild」コマンド、オプション「--rebuild」(SRPMを元にRPMを作成する) 、「--clean」(パッケージが作成された後にビルドツリーを削除する)を実施すると、多数の必要パッケージを提示されてしまいました。
その中に「httpd-devel < 2.4 は php56u-5.6.7-1.ius.el6.i386 に必要とされています」という警告があります。これはつまり、すでにインストールしている「apache 2.4.12」がバージョン高すぎだと言っているようです。これもだめということでしょう。
■「apache 2.4.12」に対応している「PHP」のバージョンを探す。
|
前項目でSPECファイルが無いと警告されたときに作られたのかも知れません。
中にもディレクトリが複数作成されており、中を確認してみると「SOURCES」に多数のファイルと「SPECS」に「php56u.spec」なるファイルを確認しました。
見てもさっぱりわかりませんが、以下関係ありそうな文章を発見しました。
# /usr/sbin/apsx with httpd < 2.4 and defined as /usr/bin/apxs with httpd >= 2.4
「apache」が2.4より低いバージョンなら「/usr/sbin/apsx」
「apache」が2.4以上のバージョンなら「/usr/bin/apsx」
ということでしょうか。
# /etc/httpd/conf.d with httpd < 2.4 and defined as /etc/httpd/conf.modules.d with httpd >= 2.4
「apache」が2.4より低いバージョンなら「/etc/httpd/conf.d」
「apache」が2.4以上のバージョンなら「/etc/httpd/conf.modules.d」
ということでしょうか。
%if 0%{?rhel} < 7
BuildRequires: httpd-devel < 2.4
%else
BuildRequires: httpd-devel
%endif
うーん。「rhel」とは「Redhat」のことですかね?
バージョンはCentOSと同じだと聞いたことがありますが、とするとOSのバージョンが7より低いバージョンなら「httpd-develは2.4より低いバージョンを」そうでなければ「httpd-develのバージョンに指定なし」つまり、「CentOS6.6」の場合「httpd-devel」は2.4より低いバージョンということになりますかね。
うーーん。「httpd」について、2.4以上についても説明がある以上この「PHP5.6系」は「apache 2.4.12」で動くのではないのかなぁ……。あ、でも「CentOS7」の場合の説明なのかな。わからない。
もう少しバージョン違いのSPECファイルの確認をしてみることにします。
■複数バージョンのSPECファイル確認。
|
それらのソースパッケージから「rpm2cpioとcpio」コマンドを使用して「SPECファイル」を取り出してそれぞれ確認してみました。
バージョン | SPECファイル内容抜粋 | 可能/不可能 |
---|---|---|
5.6.7 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.6-2 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.6-1 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.5 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.6.4 | BuildRequires: httpd-devel >= 2.0.46-1 BuildRequires: httpd |
可能 |
5.5.23 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.5.22 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.5.21 | %if 0%{?rhel} < 7 BuildRequires: httpd-devel < 2.4 |
不可能 |
5.5.20 | BuildRequires: httpd-devel >= 2.0.46-1 | 可能 |
バージョン「5.6.4」と「5.5.20」は「httpd-devel >= 2.0.46-1」とあります。これなら条件として「apache 2.4.12」も満たしているということでしょうか。
ということで、より新しい「PHP5.6.4」ソースパッケージをビルドしてみようと思います。
「rpm-build」コマンドをインストール。 [linuxコマンド]
■「yum」にて「PHP5.6」のインストール。失敗。
|
調べてみますと「httpd-mmn」はapacheのソースコードに定義されている、互換性に関する定数とのこと。
当方の場合、インストール済みの「apache 2.4.12」は「httpd-mmn = 20120211」でPHPが要求しているのが「httpd-mmn = 20051115」で異なるためインストールできないと言うことのようです。
では「20051115」はapacheのバージョンいくつなのか調べてみると
2.2.0 - 20051115:0
2.2.2 - 20051115:2
2.2.3 - 20051115:3
2.2.4 - 20051115:4
2.2.6 - 20051115:5
2.2.8 - 20051115:11
2.2.9 - 20051115:15
2.2.10 - 20051115:18
2.2.11 - 20051115:21
ということで、2.2系のapacheを使用する必要があるようです……。
これでは最新版をインストールした意味が無くなってしまいますねぇ。
引き続き調べてみると、「CentOS_6」「apache 2.4系」「PHP5系」のインストールを説明されているサイトが沢山あります。
ただ、やはり全て「yum」でインストールしているわけではないようですね。
仕方ありませんので、「apache 2.4.12」を無駄にしないために「PHP」の新しめのバージョンをビルドしてインストールに挑戦してみることにします。
■「rmpbuild」コマンドのインストール。
|
「こちらの記事」を振り返り作成します。
apache2.4.12のファイル配置。 [Apache]
apache2.4.12の起動確認。 [Apache]
■「apache」の状態確認。
|
http://westbird.blog.so-net.ne.jp/2015-04-23-1
にて「apache2.4.12」のインストールが完了したので、これが起動しているか「service」コマンドで確認したところ、初めは「sudo」が無いため権限が不足と言われてしまいました。
修正後の結果は「停止」とのことなので起動してみます。
■「apache」を起動。
|
「# chkconfig サービス名 on[off]」で設定可能。
「sudo /etc/init.d/httpd start」コマンドで起動させることが出来ました。
以下アドレスに、ホストOS(Windows8.1)のブラウザ、ゲストOS(CentOS)の「X-Window」の「FireFox」いずれからもアクセス不可。
URL:
http://192.168.0.66/ ←66がホストアドレス。
http://centos/ ←「ホスト名の変更」にて設定。
http://www/ ←「ホスト名の変更」にて設定。
次にホストOSからゲストOSに「ping」を打って確認。
C:\Users\xxxxx>ping 192.168.0.66
双方向からのPINGに問題なし。
■「iptables」の編集。
|
これはルータで言うところの「フィルター」の役目をするファイルのようです。
「-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT」
が確認できました。
書式はさっぱりわかりませんが「22」がSSHのポート番号であることはピンときました。
なので、丸ごとコピーしてポートをウェブ用の「80」に変更して追記しました。
「sudo /etc/init.d/iptables restart」で再起動させることにより、全てのURLで確認が取れました!
最新のApache 2.4.12-5 を yum でインストールする。 [Apache]
■リポジトリの一時的「有効」と「無効」。
|
リポジトリ「IUS」で最新のパッケージを確認したのでこれを利用することにしました。
が、現在
http://westbird.blog.so-net.ne.jp/2015-04-20
で設定したとおり、デフォルトで利用できるリポジトリはID「base」「extras」「updates」だけです。
そしてこれらは今回不要なので、「yum」のオプション「--disablerepo=base,extras,updates」とし無効化します。
次に必要なリポジトリ「IUS」を「--enablerepo=ius」で有効化します。これでインストールを実施します。 するとエラーが発生したので下記でこれに対処します。
■必要なファイルを「yum provides」コマンドで検索する。
|
ゆえに、今後も何かインストールするたびに要求されることと思いますが、そのパッケージが名前の通りのものであれば楽ですが、何かのパッケージ内にしか存在しない場合などもあるようで、その場合にパッケージを検索するのに「yum」のオプション「provides」が使えます。
今回は「mailcap」をインストールすることで「mime.types」もインストールされました。
■最新の「apache 2.4.12-5」を「yum」でインストールする。
|
■「httpd-devel」をインストールする。
|
■最新の「httpd-manual」をインストールする。
|
WordPressをインストールするために [CentOS]
そしてブログなどをと思ったら、「WordPress」なるものの存在を知りました。
調べてみると「WordPressとは、ブログを作成するためのアプリケーション(=ソフトの一種)です。」とあります。
最新版のインストール条件は
・スクリプト言語としてPHP(バージョン 5.2.4 以上)
・データベースとしてMySQL(MySQL バージョン 5.0 以上)
・PHPとMySQLが利用可能なWebサーバ
さらに調べると「PHP」は「5.6系」まであるようですが「最新版」を選択しようと思います。
「MySQL」は調べてみると今後「MariaDB」に移行していくかも知れないということで、「5.0系」と「10.0系」が存在するようですが後者の「最新版」を選択しようと思います。
気に掛かるのは「10.0系」でも「MySQL」5.0以上と判断されるか否かです。
「apache」は「2.2系」と「2.4系」が存在するようですが後者の「最新版」を選択しようと思います。
今更ですが、当方はど素人なので、「yum」を使用しないとバージョンアップ等の管理が難しいと思っています。
しかし反面、セキュリティや機能については最新版が推奨されていることが多いと思いますが、その最新版は「yum」では提供されていないことも多いとのこと。
「yum」と「最新版」のどちらを優先するか当方にはちょっと判断がつきません。
なので基本的には「yum」で進めて「yum」でインストールできない物は「rpm」か「ソースコード」からコンパイルしてみようかと思います。
[最新]Apache HTTP Server 2.4.12(リリース日:2015/01/29)
[最新]PHP 5.6.7(リリース日:2015/03/19)
[最新] MariaDB 10.0.13(リリース日:2014/08/11)
[最新] WordPress 4.1.2(リリース日:2015/04/22)とのこと。
・PHP本体
・Webサーバ(apache)
・Webブラウザ