idcfクラウド使ってサイトリリース時にした設定
これまで使用してた他の会社のサーバー設定では動かなかったので
対応した箇所3つ。
・1 apacheの起動と停止。apachectlではなく、以下を使う
/usr/sbin/httpd -k stop
/usr/sbin/httpd -k start
・これまでのやつだと以下のエラーがでる。
apachectl -k stop
Passing arguments to httpd using apachectl is no longer supported.
You can only start/stop/restart httpd using this script.
If you want to pass extra arguments to httpd, edit the
/etc/sysconfig/httpd config file.
httpd (no pid file) not running
・2 VirtualHostの箇所を読んでくれないことの対応
/etc/httpd/conf/httpd.conf ファイルでの VirtualHost の指定を IPアドレス指定はしない
<VirtualHost xxx.xxx.xxx.xxx:80>
ではなく
<VirtualHost *:80>
とする
あと 余談だが、
NameVirtualHost *:80
NameVirtualHost xxx.xxx.xxx.xxx
とかの設定はいらない
・3 apache2.4なので参照渡しが不可なので、値渡しにする、
xml.phpでエラー "xml.php"
エラーメッセージ
[:error] [pid 45012] [client xxx.xxx.xxx.xxx:] PHP Fatal error: Call-time pass-by-reference has been removed in xml.php on line 63
Webサーバのエラーログを確認していたところ
PHP Fatal error: Call-time pass-by-reference has been removed in
原因
PHP5.4からCall-time pass-by-reference(関数呼び出しの際に参照渡しを行う)機能が
なくなったので対処方法は参照渡しを値渡しにした。
//test(&$a,$b);//これを実行するとエラーになる
test($a,$b);//エラー回避になる
【&】を削除した。
実際はダメなのかもしれないが動くのでこの対応しとく
対応
lib/xml.phpの
&$ を $ に置換したよ