VirtualBox でLAMP

昨日のエラー Building The OpenGL support module [FAILED] は消えていましたが、今度はApache2 のhttpd.conf で、Cannot load /usr/local/apache2/modules/mod_ssl.so  into server: libssl.so.1.0.0 とエラーするので、OpenSSL をソースビルドでいれてみました。

LinuxにApacheとOpenSSLをソースからビルドしてインストールする – Qiita
http://qiita.com/DQNEO/items/3613cc1d87c01121a9e2

それでもエラーがなくならないので、yum から mod_ssl をインストールしたところ解決しました。OpenSSL とmod_ssl の違いが分かりませんが結果オーライということで。

[root@centos ~] yum install openssl-devel 
[root@centos httpd-2.2.31] cd modules/ssl
# /usr/local/apache2/bin/apxs -cia -DHAVE_OPENSSL -I/usr/include/openssl -lssl *.c

PHP は (2015年8月9日現在) 最新版、6.5.11 を./configure make make install して

./configure --with-apxs2=/usr/local/apache2/bin/apxs\
--with-iconv\
--enable-mbstring\
--with-mysql\
--with-libxml-dir=/usr/bin/xml2-config

phpinfo.php 表示できました。

phpinfo

Oracle VirtualBox でエラー

VirtualBox 上で CentOS6.6 を自動アップデート(更新が120あります・・・。とか)したら、起動時に [VirtualBox kernel service is not running. Exiting.]

73f0c469-c0ef-77d0-4004-9240e78ce9b9ていうポップアップが出るようになりました・・・orz。

今日も(更新が330 あります・・・。とか)アップデートが出てました。起動ログを見ると、VirtualBox Guest Additions failed ですと?

centos6.7アップデートを完了、再起動すると [CentOS 6.7] になってました。一応、以下のサイト見て

http://blog.livedoor.jp/yoka3/wordpress/4283395.html

# yum -y update kernel
#  yum -y install kernel-devel kernel-headers dkms gcc gcc-c++
して再起動。VirtualBox のメニューから [デバイス] → [GuestAdditions のCD イメージを挿入・・・(Host+D)] して
# cd /media/VBOXADDITIONS_4.3.26_98988
# sh VBoxLinuxAdditions.run

したらとりあえず、起動時ポップアップは出なくなりました。でも

Building The OpenGL support module [FAILED]

エラーが消えないです。誰か教えて、エロい人。

Bluetoothマウスが認識しない

Windows7 64bit で、表題の件でマウスが反応しなくなりました。良くあることでしたが、コントロールパネルのデバイスからペアリングさせようとすると、デバイスの追加でエラーとかでコード0x80004005 を吐いて追加できません。

Bluetoothマウスが”0X80004005″で追加できない場合の対処法 – オンラインメモ

http://memoonline.blog.fc2.com/blog-entry-5.html

タスクバーのBluetooth アイコンを右クリックして設定から、「Bluetoothデバイスによる、このコンピュータの検出を許可する」にチェックを入れてもダメでしたが、上記の方法で再び接続を試みたところ認識するようになりました。

Windows7 ファイル共有

Kaspersky2013 を2015 に無料アップグレードしたところ、VAIO とEPSON ノートの Windows 7 でファイル共有が出来なくなりました。Local Service (TCP) と(UDP) のポート 135, 137, 138, 139, 445 も解放したのですけれども、おかしいですね。

Windows 7 でネットワークプリンターや共有ネットワークフォルダーにアクセスできません。どうすればよいですか  (Kaspersky2014 リンク)

Windows7 で共有設定して、Kaspersky2015 の側でネットワークアダプタが「プライベートネットワーク」になってなかったらしいです。やれやれでした。

Windows10 のアップグレード

まーだ時間掛かりそうですかね~。バグもあるらしいから(最初の内は)まあ、多少はね。

話は変わりますが、うちのテレビまだアナログなんでどうせ買い換えるなら、4K をと考えてはいるのですか価格的にどうなんでしょうか。amazon.co.jp でみると、10~20万円位みたいですね。http://www.amazon.co.jp/s/ref=nb_sb_ss_c_0_2/375-5863496-5734414?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Delectronics&field-keywords=4k%E3%83%86%E3%83%AC%E3%83%93&sprefix=4k%E3%83%86%E3%83%AC%E3%83%93%2Caps%2C850

15万円くらいの予算で近場のお店を廻ってみようかな・・・。

TeraTerm SSH鍵認証

Linux のコマンド操作に欠かせないTeraTerm ですが、root 権限を多用していたのでパスワードが漏れたのかもしれません。今回は、鍵認証によるログイン方法をご紹介します。

まず、TeraTerm でパスワードでログインして [設定] → [SSH 鍵生成…] → (鍵の種類)[RSA]にチェックして、[生成] ボタンを押します。

ssh_key

[鍵のパスフレーズ] を入力して、[公開鍵の保存] [秘密鍵の保存] ボタンをクリックして、フォルダに [id_rsa.pub] [id_rsa] ファイルを保存します。

TeraTerm で、/home/ユーザーディレクトリに移動して公開鍵 [id_rsa.pub] を画面にドラッグします。

save_key

[ファイル転送しますか] のテキストボックスに、[ .ssh] と入力して [SCP]ボタンをクリックします。公開鍵を、.ssh/authorized_keys ファイルにリネームするためコマンドで

$ cd .ssh
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
$ chmod 700 . ←[ピリオドを忘れずに]

鍵が複数あるときには、mv ではなく

# cat id_rsa.pub >> authorized_keys

と入力します。TeraTerm を再起動して、先程入力した鍵のパスフレーズを入力して、[RSA鍵を使う]チェックを入れ フォルダに保存した[秘密鍵] id_rsa を指定して [OK] ボタンを押して

ssh_login

ログインします。ログインした後は、以下の設定でパスワード認証を無効にしましょう。

# vi /etc/ssh/sshd_config
# PasswordAuthentication yes ↓ 設定値を、no に変更
PasswordAuthentication no

(一部、加筆しました。)

apache2 が消えた

/usr/local/apache2 にApache2.2 をソースからインストールして、httpd.conf を編集中に突然、apache2 ディレクトリが消えました。yum からパッケージでインストールした OSインストール時に入っていた apache のhttpd.conf から書き写しをしていた折、ダウンロード、解凍した wordpress を当該ディレクトリに mv コマンドで移動しようとしていた矢先でした。こんなことってあるんですかね。たまげたなぁ~。誰かにハッキングされて消された、ハッキリ分かんだね。 仕方がないからソースからのインストール、(一日の) やり直しますよ、するするっ!

Apacheのソースは、 Download – The Apache HTTP Server Project http://httpd.apache.org/download.cgi#apache22 から最新版をダウンロード。2015年7月28日現在で、最新版はバージョンはapache2.2.31 (Apache 2.4 はインストールしたことある?)・・・ないです。ふ~ん。あっ(察し)。

ディレクトリ移動して httpd-2.2.x/を解凍したら

# cd /usr/local/src
# wget http://ftp.riken.jp/net/apache//httpd/httpd-2.2.31.tar.gz
# tar zxvf httpd-2.2.31.tar.gz
# cd httpd-2.2.31/

ディレクトリ移動して、以下の呪文を唱えます。 CentOSへApache2.xをソースビルドしてService登録する – Qiita

# ./configure --prefix=/usr/local/apache2 \
 --enable-suexec \
 --enable-cache \
 --enable-disk-cache \
 --enable-mem-cache \
 --enable-logio \
 --enable-header \
 --enable-ssl \
 --enable-rewrite \
 --enable-so \
 --enable-proxy \
 --enable-mods-shared=all

ちなみに私は、zlib がないっ!って怒られました。解決法は以下。仕事で使える魔法のLAMP(15):ライブラリが足りなくてビルドできないときは? – @IT

# yum install zlib zlib-devel

./configure をやり直して、続いて# root 権限で

# make
# make install

これで、/usr/local/apache2 にインストール完了です。このとき、設定ファイル httpd.conf は、パッケージインストール時の
/etc/httpd/conf/httpd.conf ・・・ではなく、/usr/local/apache2/conf/httpd.conf に作られます。ここから Apache HTTP Server の設定をしてゆくわけですが、諸先輩方の詳細な解説をリンクして割愛します。 コロのLinuxサーバー構築 – httpd.conf の設定 また起動コマンドも、パッケージとソースビルドでは異なっており、

# service httpd start (パッケージインストール)
# /usr/local/apache2/bin/apachectl start (ソースビルド)

となっております。 あと、覚えている限りですが PHP のインストールもメモしておきます。ソースからインストールする場合、以下のサイト(2015年7月28日現在、PHPバージョン 5.6.11)かミラーリンクをたどってWindows に保存または、リンクアドレスをコピーして、wget コマンドからダウンロード解凍します。 PHP: Downloads http://php.net/get/php-5.6.11.tar.gz/from/a/mirror

# cd /usr/local/src
# wget http://jp2.php.net/get/php-5.6.11.tar.gz
# tar zxvf php-5.6.11.tar.gz
# cd php-5.6.11/

php-5.x.x/ にディレクトリ移動して以下の呪文を唱えます。

# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

すると、apxs がないっ!って怒られました。解決法は以下リンク。 [apache] モジュール追加でapxsが見つからない時の解決方法 | 迷走男子!!

# yum install -y httpd-devel

./configure のやり直し。ところが今度は、libxml2 がないっ!と怒られました。以下のサイトを参考にコマンド入力。 dage.jp » Apache2.2+PHP5.2 完全インストール – part2 – PHPインストール

# yum install -y libxml2 libxml2-devel

./configure のやり直しをします。→ PHP: インストール手順 – Manual

# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-libxml-dir=/usr/bin/xml2-config

今度は成功です。

# make
# make install

(追記)PHP の設定を/usr/local/apache2/conf/httpd.conf で有効にするため下記設定を追加

LoadModule php5_module modules/libphp5.so [新規追加]
<IfModule mine_module>
・・・
AddType application/x-httpd-php .php [新規追加]
AddType application/x-httpd-php-source .phps [新規追加]
</IfModule mine_module>

https://www.stuffy.site/wordpress/index.php/2015/08/15/rebuild-php-on-virtualbox/

してhttpd.conf を編集、

・・・
<Directory "/usr/local/apache2/htdocs/wordpress">
     AllowOverride all
 </Directory>
・・・
 Alias /wordpress/ "/usr/local/apache2/htdocs/wordpress/"

WordPress をインストールして

http://ホストネームアドレス/wordpress/wp-admin/install.php

からセットアップ画面表示できました。

install.php

追記)http://ホストネームアドレス/ でアクセスさせたいときは、httpd.conf のDocumentRoot 設定を

・・・
DocumentRoot /usr/local/apache2/htdocs/wordpress

します。

総じて apache もPHPも、./configure make make install !! ./configure make make install !! て感じで・・・。

wordpress 画像のリンク切れ修正

FQDN を ieServer.net のDDNS に変更してから、グローバルネットワークで確認したところ、wordpress 画像がリンク切れにより表示できませんでした。sql データベースの画像URL がローカルIPアドレスになっていたのが原因でした。この不具合を修正する PHP スクリプトがネットを検索していたところ見つかりました。

WordPressでサーバ移行時にデータベース上のドメインを書き換える方法

WordPressを設置したドメインや設置ディレクトリが変更になった場合に、たった5分で全てのURLを書き換える方法

やり方は、ダウンロード、zip 解凍した searchreplacedb2.php を wordpress インストールディレクトリ直下に転送、またはアップロードします。

FQDN に、searchreplacedb2.php を付けたしてスクリプトにアクセス、実行します。

http://ホストネーム.dip.jp/wordpressインストールディレクトリ/searchreplacedb2.php

あとは、リプレイスしたいローカルIPアドレスとFQDN をフォームに入力してボタンを押すだけです。管理画面から過去ログの非表示の画像を 、ペンアイコンの [編集ボタン] から選択、 [更新] ボタンで再公開していくと画像再表示できました。

作業後は、searchreplacedb2.php の削除をお忘れずに。

wordpress のサイトURL

wordpress の[ダッシュボード] → [設定] → サイトアドレス(URL) をいじっていたら管理画面にアクセスできなくなった・・・orz。

siteurl

いろいろサイトを検索してみると、wp-config.php の先頭に

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

として、設定すると良いとのこと。しかし、コアファイルの場所と読者がアクセスするURL がどちらに設定されているのか解らず、管理画面に一時アクセスできなくなりました。結局 wordpress をインストールし直して直りましたが、投稿してみると今度は、

[WordPress]画像アップロードエラー「web-content/uploads/に移動できませんでした

となり画像アップロードができなくなりました・・・orz。こちらは以前にも対処したケースでしたが、その時の方法を失念しており、まあ、ゆっくり解決するつもりです。たぶん、パーミッションか、.htaccess 設定だと思うんですけど。(※これを書いている途中に、解決しました。原因は、パーミッションと.htaccess と所有権でした。)

IPv6マルチキャスト

NTTフレッツひかりTVチューナーはストリーミングの際、IPv6パケットを各ポートにマルチキャストします。フレッツ光CTUにルーターをカスケードする場合、NTT西日本ではブリッジモード推奨なので、ひかりTVチューナーで受信中のときはデフォルト設定では Buffalo WHR-300HP2 で無線LANでインタネットアクセスができません。(IPv6パケットを送り付けられるので…。)《ちなみに、ひかりTVチューナーのストリーミングを許可させるにはCTU のファイヤウォール詳細設定で、UDP ポート6310~6313 をチューナーのIPv6アドレス(チューナーの設定画面にあります。)宛に許可していることが前提です。》ひかりTVを使ってみての雑感 (外部ページリンク)

そのためPCで無線LANするには、ルーターの IPv6ブリッジ設定をOff にする必要がありました。Buffalo ルーターでブリッジモードにスイッチを切り替えた後、設定画面(192.168.11.100)を表示にするには以下のリンクにある通り、ローカルアドレスを一時的に、プロパティから変更する必要があります。

バッファロールータ 設定画面表示できない

ブリッジモード設定画面から、IPv6ブリッジ設定に相当する [IPv6パススルー機能] をOff にします。具体的には、

IPv6パススルー機能の設定方法 – アンサー詳細 | BUFFALO バッファロー

※Snooping機能を使用することで、マルチキャストを無駄なポートに流さず、ネットワークの負荷を軽減します。
  また、マルチキャスト変換機能対応の機器に対し、高速にマルチキャストパケットを送信することが出来ます。 
※ブロードバンド放送を利用する環境で無線LANパソコンを使用する場合、MulticastRateを映像配信ビットレートより高い速度に設定する必要があります。
  1. [ブロードバンド映像サービスを使う] チェックをオフ。
  2. [Snooping機能] にチェックを入れる。
  3. ビットレートを54Mbps にする。
  4. 場合によっては、ルーターモード(192.168.11.1)で設定画面に入り、[フレッツIPv6サービス対応機を使用する] チェックをオフにする。

Buffalo のこのモデルでWi-Fi 機能を設定するにはAndroidスマホの場合、PPPoE 設定が必要なのでCorega ルーターのようにお手軽というわけにはいかなかったです。でも、セキュリティが・・・orz。iPhoneなら良かったのですが・・・。