:::: MENU ::::

PHP構文内でHTMLのエスケープシーケンスがエラーになる

PHP構文内にHTML記述する場合には、特殊文字はエスケープシーケンスを使う必要があります。

例えば、PHP構文内で、HTMLにてURLやパスを指定する場合

print(" <frame src=\"index.php\" name=\"head\" scrolling=\"no\">");

このように、HTML内の”は¥”で記述します。

それで、このような記述で、サーバーによって、正常に起動する場合と、エラーになる場合が発生しました。

エラーになる場合は、そのままのエスケープシーケンスが混入しているため、src=”index.php”…となるところが、src=¥”index.php¥”となっているのが原因です。
正常に動作するサーバーとエラーとなるサーバーをApache,PHPの設定で比較した所、short_open_tagが原因でありました。

# vim /etc/php.ini
....
short_open_tag = On  #<--OffからOnへ変更
....

エラーとなるサーバーでは、short_open_tag = Offであったため、これをOnの設定にし、Apacheを再起動したとこ、エラーが解消され、正常に動作となりました。

 


1Passwordの警告によるブラウザーの設定

しばらく前から、Google Chrome上に、Macアプリの1Password機能拡張を入れていたら、下記の警告が出るようになっていたので対処。

1Password can’t verify the identity of your web browser

ヘルプを参照記事を見れば、対処方法が載っています。
https://support.1password.com/code-signature/

私の環境の場合は、Homebrew caskによるGoogle Chromeを起動していたからでした。

アプリケーションフォルダにブラウザーアプリを入れろとの事ですので、Homebrewではなく、正式にGoogle Chromeをダウンロードして、アプリケーションフォルダに入れて解決です。

尚、アプリを変更しても、タブやクッキー、機能拡張などの全ての設定は、~/Library/Application Support/Google/Chrome内に保存されていますので、安心して引き継がれます。


WEBページの文字化けはApacheの設定だけではなかった

CentOS7にて、yumでインストールしたApacheで、以前の設定のまま稼働状態になっていたにも関わらず、なぜかUTF-8以外のページが文字化けしていた。

UTF-8以外のページは、charsetの文字コードも記述しているにも関わらず、ブラウザー(Safari,Firefox,Google Chrome)で自動認識されない症状。

Apacheの設定では、このようば文字化けに関する設定は、/etc/httpd/httpd.conf内のAddDefaultCharが関係しているので、

#AddDefaultCharset UTF-8
AddDefaultCharset Off

このどちらかを記述していれば問題ないはず。

さらには、conf.d内のバーチャルホスト等の設定も、これらの記述は書かれていないことを確認。
設定を変更したならば、Apacheを再起動することで有効になるが、これでも文字化けは解決せず。

かなり、時間を費やして、ページや設定を弄りましたが、どうやら、この問題はApacheだけではなかったようです。

それは、PHPの設定

PHPの設定でも、以前から全く変更はしていませんでしたが、/etc/php.ini内のdefault_charsetを空白にする必要があるようです。

;default_charset = "UTF-8"
default_charset = ""

これで、Apacheを再起動したところ、文字化けが解消されました。

文字化けしてたページ内では、ごく普通なHTMLで、PHP構文は使ってないにも関わらず、 PHPが関係していたのです。


SSH接続後にCan’t open display等でXが起動出来ない

sshで接続先のX Windowsを利用したGUIアプリを起動すると、よく下記のエラーなどで陥る罠

Error: Can't open display:
unable to open X server `'
unable to open display :0.0
Warning: No display specified. You will not be able to display graphics on the screen.

Xの環境変数やら、ディスプレイ番号も絡んで来ると思いきや、SSH接続でX転送が有効になっていない事が多々あるのでメモ

$ ssh -Y <remote_host>

接続後に、リモートホスト側のXアプリを起動。


CORESERVERのmysqlとmysqldumpのパス

CoreServerで動かしているWordPressでDBのバックアップが取られていない事に、今更気づいたので、確認した所、mysqlmysqldumpが見つかりませんとの表示が出ていた。

CoreServerでは、mysqlとmysqldumpのパスが違う所にあるようなので、下記のパスに設定

mysqldump : /usr/local/mysql/bin/mysqldump
mysql : /usr/local/mysql/bin/mysql

これでOKです。

せめて、/usr/local/bin下にでも入れてくれればいいのにね。


Homebrewでwarning: Insecure world writableが出るようになった

ここ最近、Homebrewでまた下記のパーミッション警告が出るようになった。

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb:213: warning: Insecure world writable dir /usr/local in PATH, mode 040777

下記のコマンドで警告は出なくなった。

$ sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
$ sudo chmod go-w /usr/local
$ brew update

CentOS7.xでSamba4.2が起動しない

職場のウェブサーバーでWindows共有が接続できないとの連絡を受け、確認したところ、Sambaが起動していなかったので、下記コマンドで起動を試みる。

# systemctl start smb

すると、下記のエラーで起動しない。

Job for smb.service failed because the control process exited with error code

Selinuxを確認

 #getenforce
 Disabled

Firewallを確認

 # systemctl status firewalld
 firewalld.service - firewalld - dynamic firewall daemon
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
 Active: inactive (dead)

はて?何だろう?とログを確認

# less /var/log/log.smbd
 ../source3/smbd/server.c:1256(main)
 error opening config file '/etc/samba/smb.conf'

何だか、設定ファイルのsmb.confでエラーが出ている模様

なので、設定ファイルをデフォルトに戻してみた。

# cd /etc/samba
# cp smb.conf smb.conf.bak
# cp smb.conf.rpmnew smb.conf
(私の環境だと.rpmnewになっていたが、.defaultの場合もある)

再度、Sambaを起動

# systemctl start smb

無事、起動できた。


CentOS7のyum updateでkernelを除外

CentOS7上で、yum更新した後、再起動した際に、起動できないことが度々起こりました。

具体的には、通常にyum更新をかけると、kernelのアップデートがあった場合に、アップデートされ、次回の起動時には、アップデートされたkernelで起動しますが、これが下記のエラーで止まったまま、正常に起動しないということです。

dracut-initqueue[685]: Warning: /dev/root does not exist

このエラーは今まででも何度か体験しているので、yum 更新でkernelを除外設定にした。

yum設定ファイルを編集

# vi /etc/yum.conf

....

exclude=kernel* <--追記

(サーバーとして運用しているので、xorg*やcentos*も実際には追記しています)

 

アップデートされた場合でも、勝手に新しいkernelで起動しない設定

# vi /etc/sysconfig/kernel

....

UPDATEDEFAULT=no <--yesから変更

この2つの設定をしておくと、yum更新でkernelのアップデートが適用外となり、万が一、kernelアップデートされたとしても、現在のkernelで起動できるようになります。


QNAPをZabbixの監視対象にする

Zabbix Serverで監視対象のホストを順次登録しているのですが、NASのQNAPシリーズも監視対象にしたい。

しかし、QNAPのアプリではZabbixは存在しないので、下記の手順でインストールした。

QNAP側 (Zabbix Agent)

  1. Zabbixのフォーラムにて、配布されているQPKGファイルをダウンロード
    https://www.zabbix.com/forum/showthread.php?t=40955
  2. QNAPに管理者でログインし、App Centerを開く
  3. 「手動でインストール」 をクリックし、ダウンロードしたQPKGファイルを選択し、インストール
  4. Zabbix _agentのインストールが完了後、起動をON
  5. 次に、QNAPへTelnet若しくはSSHで管理者にてログイン
  6. zabbixの設定ファイルを編集
    # vim /etc/zabbix/zabbix_agentd.conf
    ….
    Server = xxx.xxx.xxx.xxx (Zabbix ServerのIPに設定)
    ….
  7. zabbix agent再起動
    QNAP側で、起動しているので、一旦停止して起動させます。

    # /etc/init.d/zabbix_agentd.sh stop
    # /etc/init.d/zabbix_agentd.sh start
  8. zabbix agent起動確認
    # ps aux|grep zabbix
    13738 zabbix 696 S /usr/bin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.c
    13743 zabbix 860 S /usr/bin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.c
    ….

Zabbix Server 側

  1. Zabbix Serverへ管理者でログイン
  2. 設定のホスト作成でQNAP用のホストを作成
    IPアドレスにQNAPのIPアドレス
    テンプレートにTemplate OS Linux

これで、しばらく待ち、エージェントの状態が緑になればOKです。

赤のまま表示されていれば、ファイヤーウォールの影響か、ポートの指定、IPの指定等を確認したほうが良いでしょう。

作業した直後、エージェントの状態が赤のままで、調べてみたら、QNAP側のzabbix agentが起動していなかったと言うオチでした。
QNAP上でzabbixを再起動した際に、横着して、zabbix_agentd.sh restartとやっちゃったんです。(_😉


zabbix 2.4.xから3.0へアップデートしたら画面が真っ白

職場のzabbixを2.4.xから3.0へアップデートしたのでメモ

アップデート方法は、ほぼ下記のURL通りです。(手抜き)
http://qiita.com/ryouma_nagare/items/9bcf8f5e3e514103b515

違う点は、pg_dumpでなくて、mysqlを使っている点と、リポジトリの差し替えで、CentOS 6.xの環境だったので、rhelの7を6へ変更したくらいです。

まぁ、すんなりとアップデートが終わり、再起動してみた。

# service start zabbix-server
# service start zabbix-agent

それで、いつも通りにWEBのログイン画面にアクセスすると、画面が真っ白

失敗したのか、zabbixのログを見ても、表示されないエラーは見当たらず、Apacheのログを確認したところ、

PHP Parse error: syntax error, unexpected ‘[‘ in /usr/share/zabbix/index.php on line 29

どうやら、zabbix 3.xからは、php5.6以降が必須らしい。
phpのバージョンを調べたら、5.3.xだったので、早速、phpのアップデートです。
ちなみに、php7は、まだ様子見なので、5.6.xをインストールしました。

下記URLを参考に、remiで5.6をインストールです。
http://syaka.site/2016/03/6/

phpのアップグレード完了後に、Apacheを再起動して、再度WEB画面にアクセスすると、

Not Found The requested URL /zabbix/ was not found on this server.

2.4.xのバージョンまで、同じURLで接続出来ていたのに?と、/etc/httpd/conf.d/zabbix.conを確認したところ、zabbix.conf.rpmsaveに名前変更されたままでしたので、zabbix.confに戻しました。

そして、再度、WEB画面にアクセス。
表示されました! が・・・何だかエラーっぽいのが沢山表示されている。

ふむ、timezoneがどうとか言ってるようで、いつの日からか、timezone設定しなきゃいけなかったのを思い出し、/etc/php.iniを編集して、timezoneを有効にした。

date.timezone = Asia/Tokyo

さらに、Apacheを再起動して、再接続したら、エラーっぽい表示はなくなりましたが、今度は、php内のオプションを変更してね〜とな。

あとは、phpのオプション設定変更と、不足しているモジュールを導入してあげれば良いようです。

/etc/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
always_populate_raw_post_data = -1

不足しているモジュールは、bcmathとxml関連なので、

# yum install php-bcmath php-xml

これで、無事に正常動作が確認できました。 はぁ、疲れた。


ページ:1234567...24