Archive for the 'Tips' Category

今週検索したTips

何番目系の便利なCSSまとめ

https://qiita.com/ituki_b/items/62a752389385de7ba4a2

 
QRCODE作成
※ 検索で一番上に出てくる「”qr.quel.jp”」は変なものを仕込もうとするので要注意!

https://www.cman.jp/QRcode/

 
【WordPress】カスタムメニューのid・classを削除・追加|シンプルにカスタマイズ

https://blog-and-destroy.com/6842

 
既に登録済みの画像を一括リサイズしてくれるプラグイン Regenerate Thumbnails

https://www.vektor-inc.co.jp/post/regenerate-thumbnails/

 
【コピペOK】GoogleMapの地図をレスポンシブサイトに埋め込む方法

https://inthecom.net/718

 
個性的なギャラリーが作れる!WordPressプラグイン「FooGallery」の魅力と使い方

https://www.08-photo.com/wordpress-plugin-foogallery/

 
InstagramをWordPressに埋め込むには「Insta Show」プラグインが最適!Instagram Feedより良い!

http://lifestylecreators.net/1928

 
WordPress アップグレード用の定数

https://wpdocs.osdn.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86
define( ‘FS_METHOD’, ‘ftpext’ );
define( ‘FTP_BASE’, ‘/path/to/wordpress/’ );
define( ‘FTP_CONTENT_DIR’, ‘/path/to/wordpress/wp-content/’ );
define( ‘FTP_PLUGIN_DIR ‘, ‘/path/to/wordpress/wp-content/plugins/’ );
define( ‘FTP_PUBKEY’, ‘/home/username/.ssh/id_rsa.pub’ );
define( ‘FTP_PRIKEY’, ‘/home/username/.ssh/id_rsa’ );
define( ‘FTP_USER’, ‘username’ );
define( ‘FTP_PASS’, ‘password’ );
define( ‘FTP_HOST’, ‘ftp.example.org’ );
define( ‘FTP_SSL’, false );

 
WordPressで自動更新したい時のパーミッション、もしくはFS_METHOD手動設定やめようって話

https://qiita.com/unarist/items/2186839e1c63453b9b96

 
WordPressのアップグレードやプラグインの更新をFTP画面なしで行う方法

https://web.plus-idea.net/2017/02/wordpress-upgrade-without-ftp/

 
エクセル 文字列を日付に変換する

https://www.tipsfound.com/excel/02106

 
WordPress画像圧縮プラグイン(無料版) 5つの中でどれが一番圧縮できるかを比較してみた

https://ruuski.net/web/wordpress-image-optimize-plugins-compare/

 

Amazon LinuxにSERPOSCOPEを入れる

1.Javaのバージョンを確認する

# java -version

java version "1.7.0_151"
OpenJDK Runtime Environment (amzn-2.6.11.0.74.amzn1-x86_64 u151-b00)
OpenJDK 64-Bit Server VM (build 24.151-b00, mixed mode)

2.yumを更新する(yumリポジトリの更新)

# sudo yum update -y

3.Java8をインストールする

# sudo yum install -y java-1.8.0-openjdk-devel.x86_64

4.Javaコマンドのバージョンを切り替える

# alternatives –config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number: 2

5.Javaのバージョンを確認する

# java -version

openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

# javac -version

javac 1.8.0_151

6.AWS(EC2)のセキュリティグループ(インバウンド)で 7134ポートを開く

カスタム TCP ルール TCP 7134 0.0.0.0/0
カスタム TCP ルール TCP 7134 ::/0

7.SERPOSCOPEをダウンロードして動作させる

# mkdir /var/www/serposcope
# cd /var/www/serposcope
# wget https://serposcope.serphacker.com/download/2.9.0/serposcope-2.9.0.jar
# java -jar /var/www/serposcope/serposcope-2.9.0.jar

8.起動時に自動実行させる

# cd /etc/init.d/
# nano application-starter

#!/bin/sh
# chkconfig: 345 99 10
# description: start shell
case "$1" in
  start)
    sudo java -jar /var/www/serposcope/serposcope-2.9.0.jar
       ;;
  stop)
       echo "stop!"
       ;;
  *) break ;;
esac

# chmod +r application-starter
# chkconfig –add application-starter
# chkconfig application-starter on
# chkconfig –list

レガシー環境で動作しているサイトの常時SSL化

Ubuntu10.04 で、EC-CUBE 2.4.4 と WordPress 3.0.1 が動いているという、今となってはかなり特殊な(レガシーな)環境で動作しているサイトの常時SSL化をいたします。(備忘録)

1.WordPressのデータダンプ

# mysqldump -u root -ppassword wordpress-db > wordpress-db-dump20180918.sql

2.データダンプの書き換え(http ⇒ https)

# 画像ファイルは、http://hoge.com/??? を取る
# URLは書き換え
# wp_options は文字長が入っているので要注意

3.Let’s Encrypt (dehydrated)を入れる

# curl -kLO https://github.com/lukas2511/dehydrated/releases/download/v0.6.2/dehydrated-0.6.2.tar.gz
# tar xf dehydrated-0.6.2.tar.gz
# cd dehydrated-0.6.2
# cp docs/examples/config config
# nano config
WELLKNOWN=”/var/www/dehydrated” #コメントを取る
# mkdir /var/www/dehydrated
# nano /etc/apache2/conf.d/dehydrated.conf
Alias /.well-known/acme-challenge /var/www/dehydrated


# nano domains.txt
hoge.com www.hoge.com
# ./dehydrated –register –accept-terms
# ./dehydrated -c –accept-terms
# crontab -e
0 3 1,15 * * /root/dehydrated-0.6.2/dehydrated –config /root/dehydrated-0.6.2/config –cron >> /tmp/ssl-update.log 2>&1

4.apache2 への組み込み

# nano /etc/apache2/sites-available/default-ssl

NameVirtualhost *:443

ServerName hoge.com
ServerAlias www.hoge.com
DocumentRoot /www/wordpress/
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
SSLEngine on
SSLCertificateFile /root/dehydrated-0.6.2/certs/hoge.com/fullchain.pem
SSLCertificateKeyFile /root/dehydrated-0.6.2/certs/hoge.com/privkey.pem
SSLCertificateChainFile /root/dehydrated-0.6.2/certs/hoge.com/chain.pem

# a2enmod ssl # sslモジュールを入れる
# a2ensite default-ssl
# service apache2 restart
# netstat -ltup4 # httpsが上がっていることを確認

5..htaccess の書き換え(http ⇒ https)

# nano /www/wordpress/.htaccess
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
#RewriteRule ^index\.php$ – [L]
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(hoge\.com)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule . index.php [L]

6.データダンプからデータベースを書き換え

# mysql -u root -p
use wordpress-db;
source db1.sql; # httpを書き換えたダンプ(UTFで保存)

7.WordPressテーマの書き換え

httpが直書きされてそうなファイル
# cd /www/wordpress/wp-content/themes/hoge/
functions.php
header.php
loop-index.php
style.css

8.EC-CUBEの書き換え

# nano /home/www/hoge/eccube-2.4.4/data/install.php
define (‘SITE_URL’, ‘https://shop.hoge.com/’);
define (‘SSL_URL’, ‘https://shop.hoge.com/’);

# httpが直書きされてそうなファイル
# nano /home/www/hoge/eccube-2.4.4/html/user_data/include/preview/bloc_preview.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/include/preview/footer.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/include/preview/header.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/footer.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/header.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/bloc/optional.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/bloc/other_menu.tpl
# nano /home/www/hoge/eccube-2.4.4/data/Smarty/templates/default/site_frame.tpl
# nano /home/www/hoge/eccube-2.4.4/data/Smarty/templates/default/detail.tpl
# nano /home/www/hoge/eccube-2.4.4/data/Smarty/templates/default/bloc/category.tpl

10.eth0がリネームされ、ネットワークが使えない時

# ifconfig
lo しか有効になっておらず、ネットワークアクセスできない。
# nano /etc/network/interfaces
eth0_rename になってた
# rm /etc/udev/rules.d/70-persistent-.rules
# reboot
これで直った。リネームされた原因不明

11.PostgreSQLが壊れていた場合(pg_xlog不整合でサービスが起動せず)

# su postgres
# cd /usr/lib/postgresql/8.4/bin
# ./pg_resetxlog -f /var/lib/postgresql/8.4/main/
# ./pg_ctl -D /var/lib/postgresql/8.4/main start
これで一応直る(でもDBがなくなってる)
# ./pg_ctl -D /var/lib/postgresql/8.4/main stop

# いろいろやったが結局、PostgreSQL を止めた状態で rsyncで正常に動いているサーバから丸ごと転送かけた
# rsync -rtlzvogpHAX –rsync-path=”/usr/bin/rsync” –block-size=4096 –delete -e “ssh -p 22″ /var/lib/postgresql/8.4/ root@1.1.1.4:/var/lib/postgresql/8.4/

12.さくらのVPSでテスト環境を作る

12-1.OSはISOからインストールする
  ここ(http://old-releases.ubuntu.com/releases/10.04.0/)からダウンロード
  ubuntu-10.04.4-server-amd64.iso

12-2.sftpでサーバーへISOイメージをアップロードする
  コントロールパネルから「OSインストール」をクリックして「ISOイメージインストール」を選択
  「SFTPアカウントの作成を行う」を選択
  FTPで、アップロード

12-3.IPアドレスの設定
  Ubuntuの設定で、IPアドレスを設定します
  コントロールパネルの情報を転記(IPアドレス、ネットワークマスク、ゲートウェイ、DNSサーバー)
  あとで設定は上書きするので、「OpenSSH server」だけ選択

12-4.ログイン

12-5.rootのパスワードを設定
$ sudo passwd root
$ su -
#

12-6.visudo してsudo時にパスワードを聞かれないよう変更
# visudo
%sudo ALL=(ALL:ALL) NOPASSWD: ALL

12-7./etc/ssh/sshd_config を編集
# nano /etc/ssh/sshd_config
Port 22xx
PasswordAuthentication no

12-8.sshサーバを再起動
# service ssh restart

12-9.認証キーを作る
# cd
# mkdir .ssh
# nano .ssh/authorized_keys
# cp -a .ssh/ /home/myuser
# chown -R myuser:myuser /home/myuser/.ssh/

12-10.teratermからsshで入りなおす

Ubuntu10.04 に Let’s Encrypt (dehydrated)を入れる

訳あって最新版にできない Ubuntu10.04に Let’s Encrypt (dehydrated)を入れるためのメモ

前段階として、Ubuntu10.04 を update しておく。
それから、openssl と curl を TLS1.2対応にする。

# vim /etc/apt/sources.list

jp.archive –> old-releases
security –> old-releases

# apt-get update
# apt-get -y upgrade openssl
# apt-get -y upgrade curl

# cd
# wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
# tar xvfz openssl-1.0.2o.tar.gz
# cd openssl-1.0.2o
# ./config –prefix=/usr –openssldir=/usr/share/ssl shared
# make
# make test
# make install
# apt-get -y upgrade openssl

# cd
# wget http://curl.mirror.anstey.ca/curl-7.58.0.tar.bz2
# tar xf curl-7.58.0.tar.bz2
# cd curl-7.58.0
# ./configure –enable-libcurl-option –with-ssl=/usr –prefix=/usr
# make
# make test
# make install
# apt-get -y upgrade curl
# curl -V
# curl https://login.starbucks.co.jp/login

最後のスタバのログイン画面は TLS1.2でアクセスできたかどうかの確認。

Let’s Encrypt を入れるために、推奨されているのは Certbot なんだけど、python2.7 が必要だったり、Ubuntu10.04 にはいろいろ足りないものが多くて断念。
同じ機能(Certbot互換)の dehydrated でやってみる。(もちろんできたからこれを書いているんだけど)
git clone や wget でSSLエラーが出るので、tar.gzを取ってきて解凍。
あと、いろいろ面倒なので、root で作業。(よい子はマネしないように)

# curl -kLO https://github.com/lukas2511/dehydrated/releases/download/v0.6.2/dehydrated-0.6.2.tar.gz
# tar xf dehydrated-0.6.2.tar.gz
# cd dehydrated-0.6.2
# cp docs/examples/config config
# vim config # configのWELLKNOWNのコメントを外す

WELLKNOWN=”/var/www/dehydrated”

# mkdir /var/www/dehydrated
# chmod 755 /var/www/dehydrated
# vim /etc/apache2/conf.d/dehydrated.conf

Alias /.well-known/acme-challenge /var/www/dehydrated
<Directory /var/www/dehydrated/>
</Directory>
# これがないと怒られる。

# service apache2 restart

# apache2を再起動させないで「./dehydrated -c –accept-terms」をやるとエラーになります。
+ Challenge validation has failed :(
ERROR: Challenge is invalid! (returned: invalid) (result: {
“type”: “http-01″,
“status”: “invalid”,
“error”: {
“type”: “urn:ietf:params:acme:error:connection”,
“detail”: “Fetching http://hogehoge.com/wp-signup.php?new=hogehoge.jp: Error getting validation data”,
“status”: 400
},
ERROR: Challenge is invalid! (returned: invalid) (result: {
“type”: “http-01″,
“status”: “invalid”,
“error”: {
“type”: “urn:ietf:params:acme:error:unauthorized”,
“detail”: “Invalid response from http://hogehoge.jp/.well-known/acme-challenge/13oQnXoFMzKWEXdSXmavt-UTcW7CS_CD-UlQ9L_nhtY: \”\u003c!DOCTYPE html\u003e\r\n\u003chtml dir=\”ltr\” lang=\”ja\”\u003e\r\n\u003chead\u003e\r\n\u003cmeta charset=\”UTF-8\” /\u003e\r\n\u003ctitle\u003eNothing found for Well-known Acme-challe\”",
“status”: 403
},

# vim domains.txt

hogehoge.com www.hogehoge.com
# 必要なサブドメインはすべて書く。ワイルドカードも使えるらしいが怖くてテストしてない。
# 最初に書いたドメインでディレクトリが作られる。

# ./dehydrated --register --accept-terms
# ./dehydrated -c --accept-terms

# 最初の1回だけアカウントが作られる。
# domain.txt に書かれたドメインの証明書を取ってくる。
# 更新の都合もあるので、domain.txt にはすべてのドメインを書いておく。
# 更新の必要がなければ、スキップされる。

$ vim /etc/apache2/sites-available/default-ssl

<IfModule mod_ssl.c>
NameVirtualhost *:443
<VirtualHost *:443>
ServerName hogehoge.com
ServerAlias www.hogehoge.com
DocumentRoot /www/wp/
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
SSLEngine on
SSLCertificateFile /hoge/dehydrated-0.6.2/certs/hogehoge.com/fullchain.pem
SSLCertificateKeyFile /hoge/dehydrated-0.6.2/certs/hogehoge.com/privkey.pem
SSLCertificateChainFile /hoge/dehydrated-0.6.2/certs/hogehoge.com/chain.pem
</VirtualHost>
# apache のバーチャルホストの書き方。

$ vim /www/wp/.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.|ww2\.|wp\.)?hogehoge\.com$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# http を https へリダイレクト。

$ service apache2 restart

# apache をリスタート。

毎月1日と15日に更新チェック
$ crontab -e

0 3 1,15 * * /root/dehydrated-0.6.2/dehydrated –config /root/dehydrated-0.6.2/config –cron >> /tmp/ssl-update.log 2>&1

hotmailから拒絶を食らった場合の解決法

@live.jpあてに転送したメールが届かないという相談がありました。
ログを調べてみると確かにブロックされてエラーになっています。

postfix/smtp[]: : to=<xxx@live.jp>, orig_to=<info@kdp-satooya.com>, relay=mx2.hotmail.com[65.55.37.120]:25, delay=1.1, delays=0.01/0/0.47/0.67, dsn=5.0.0, status=bounced (host mx2.hotmail.com[65.55.37.120] said: 550 SC-001 (COL0-MC4-F17) Unfortunately, messages from 49.212.132.42 weren't sent. Please contact your Internet service provider since part of their network is on our block list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. (in reply to end of DATA command))

550 SC-001:
ポリシーを理由にメールが Outlook によって拒否されました。拒否された理由は、メールの内容が迷惑メールの特徴に似ていることか、IP/ドメインの評価に関連している可能性があります。電子メールまたはネットワーク管理者のどちらでもない場合は、電子メールまたはインターネット サービス プロバイダーに連絡して支援を依頼してください。

うちのサーバーIP(49.212.132.42)が丸ごとブロックされているみたいです。
どうやら、なんらかのアルゴリズムでスパム発信元認定されたみたいです。
同様の現象は OCNでもSO-NETでも起きているので、うちも大手並み扱いされるようになったかと放置しておいてもいいのですが、いやそれはよくないので、解決策を探しました。

https://support.msn.com/eform.aspx?productKey=edfsmsbl2&ct=eformts
このURLからIPアドレスを送ったら、ものの30分ほどで解除してくれました。表現的には『軽減済み』ですけどね。

同じくこの問題で困っている方、参考になさってください。

Detectify でサイトの脆弱性をチェックしてもらったら Warningがたくさん

Detectifyというサイトがあって、無料で脆弱性のチェックをしてくれる。

登録の仕方等の使い方は、こちら「あなたのWebサイトの脆弱性を調査してくれるサービス『Detectify』」が詳しい。

Scan Startして3日ほどで結果を返してくれる。
試しにうちで管理しているサイトのひとつを調べて見たら、以下のような結果に。
0 Exploits Found / 24 Warnings Found / 222 Notices Found

危ない(Exploits)はゼロでよかったが、注意(Warnings)が24もあるのは気になる。
今日はこれをつぶしていこう。

  1. PHP Easter Egg
    URLの最後に「?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000」これを付けると、phpinfo()が表示されてしまうという、ちょっとしたTips。設定ファイルとか、なんのLIBが有効かなどがわかると侵入者に手がかりを与えかねないのでこれはふさいでおこう。
    「/etc/php5/apache2/php.ini」に「expose_php = On」があるので、これを Offにして完了。

    ※参考> [PHP]phpinfo()に関する小ネタHack

  2. Operating System Disclosure
    ApacheのレスポンスにOSが出ているよという警告。これも隠しておこう。
    「/etc/apache2/conf.d/security」の「ServerTokens Prod」と「ServerSignature Off」で Serverは「Apache」だけになる。

    ※参考> 【Apache】HTTPヘッダの確認方法とセキュリティ対策(レスポンスヘッダの変更方法)

  3. Directory Listing
    ディレクトリ一覧(ファイル一覧)が見えてるところがあるよという警告。これはつぶしておく。
    「/etc/apache2/conf.d/security」に「Options Includes ExecCGI FollowSymLinks」を追加。
    これ自体は、CGIとシンボリックリンクの許可だが、明示的に Optionsを指定することで「Indexes」(ファイル一覧)を禁止することになる。

    ※参考> 第2回 ディレクトリ非表示の意味をもう一度見つめ直す

  4. Cookie not HttpOnly
    HttpOnlyクッキーにしないと、javascript等から読みだされてしまうよということなんですが、変更したときの影響がよくわからないので、ペンディング。
  5. Input AutoComplete
    オートコンプリートが Onになっていると危ないよという指摘だが、これは使い勝手とのトレードオフになるので、このまま放置。

    ※参考> HTML でオートコンプリートをオフにする方法

  6. Unencrypted Login
    WordPressのログイン画面が httpなので、これをSSL(https)にしなさいという指示。
    wp-config.phpに「define(‘FORCE_SSL_LOGIN’, true);」を追加するだけでできるのだが、SSL証明書を用意したり、他のお客様(マルチドメインで運用しているので)への影響を考えてペンディング。

    ※参考> Administration Over SSL

imap_open()のエラー(phpバージョン違い)

詳しく原因まで追究できていないんだけど、誰かの役に立てばと思いアップ。


PHP 5.2.6 で動作していた imap_open() が、PHP 5.3.2 になると動かなくなった。

#!/usr/bin/php -q
#PHP 5.2.6 のサンプルコード
<?php
$mailserver = "example.com";
$mbox = imap_open("{".$mailserver.":110/pop3/notls}INBOX", "user@".$mailserver, "password", "OP_READONLY");
var_dump($mbox);
if ($mbox) {
  imap_close($mbox);
}
?>

PHP 5.2.6では、このコードはエラーなく動く。

PHP 5.3.2では、以下のエラーになる。

PHP Warning:  imap_open() expects parameter 4 to be long, string given in ...

文字列(”OP_READONLY”)が整数(OP_READONLY)に変わったようだ。
ここを修正してもエラーになる。

PHP Warning:  imap_open(): Couldn't open stream {mail.example.com:110/pop3/notls}INBOX in ...
bool(false)
PHP Notice:  Unknown: Read-only POP3 access not available (errflg=2) in Unknown on line 0

POP3のリードオンリーはダメみたいだ。

しかたがないので、pop3は使わず、imapにしたらうまくいった。

#!/usr/bin/php -q
#PHP 5.3.2 のサンプルコード
<?php
$mailserver = "example.com";
$mbox = imap_open("{".$mailserver.":143/imap/notls}INBOX", "user@".$mailserver, "password", OP_READONLY);
var_dump($mbox);
if ($mbox) {
  imap_close($mbox);
}
?>

pop3もimapもサポートしてるメールサーバじゃないとダメだけど、一応解決ということで。

Windows7 Home PremiumでXpモードを使う

やりたいことはタイトル通りです。

お客様用に ThinkPad Edge E420を買ったのはいいのですが、このOSが「Windows 7 Home Premium 64」一択で他の選択肢はナシときた。
Office付きを買ったし、別にいいかと思っていたのですが、お客様がどうしても使いたい「文籍(MonJack)」というフリーのソフトが Delphiの32ビット環境で作られており、これがどうやっても動かない。
じゃあ、XPモードでとなるわけですが、Home Premium には XPモードがないよーというわけです。
手順はこんな感じです。

  1. Windows XP Mode のダウンロード
    エディションは「Professional 64ビット版」とかを選んでおくこと。Homeだと選択肢がでない。
    2番目にインストールの「Virtual PC Download」をクリック。
    インストールは「更新プログラムのインストール」みたいになるので、一瞬アレっとなるけど、終わってスタートメニューを見るとちゃんと入っている。
  2. 仮想マシンの作成
    ここでちゃんとしたXPが必要になります。(うちには使わなくなったXPがごろごろしているので問題ありませんが)
    メモリー容量はあとで変えられます。
    CDドライブにXPのインストールCDをセットして、作成した仮想マシーンをダブルクリックし、通常通りXPをインストール。
    一番の問題はパーテションを切るとき、ケチって 10GBとかにしないこと。SP3までアップグレードしたらだいたい10GBがいっぱいになります。20~30GBくらいは切っておきましょう。
  3. 統合機能
    仮想マシーンの「ツール」メニューから「統合機能を有効にする」をクリックする。
    あとは、仮想マシーンの「設定」メニューでドライブ割り当てなどを適宜行う。
  4. パーテションを拡大したいとき
    ケチって10GBとかにした場合のパーテション拡大方法は、仮想ハードディスクのサイズを拡大する に書いてある通り。
    注意点としては、VHD Resizerで拡大するとき、Fixed(容量固定)を選択すること。Dynamic(容量可変)だとうまくいかなかった。
    また、できあがった「.VHDファイル」を仮想マシーンの「設定」メニューで 2台目のハードディスクとしてマウントすること。
    そしてパーテション拡張が終わったら、1台目のハードディスクとしてマウントすればOK。

IE7互換モード

IE8とIE7互換モードで1ピクセルくらいずれることがよくあって、いちいち IEハック入れるの、面倒臭いなぁと思っている貴方!
もうそんな人はいないと思いますが、もしいたら騙されたと思ってコレを headerに入れてみてください。

<meta http-equiv="X-UA-Compatible" content="IE=8" />



IE8から互換モードの切替えボタンが消えるので、IE7互換モード対応はしなくてよくなります。
やったねパパ。 もちろん、IE7、IE6、・・・はガン無視ということで。
“IE=Edge” という手もありますが、IE9がメジャーになったときズレズレだったらヤだしね。
 
※ ちゃんとした知識が欲しい人は、こちら ⇒ WordPressテーマ “iNove” とIEの互換表示モード をどうぞ。

Memo:タブの吐き出し・・・9/10

cleanuptheworld

 
最近は記録するのが面倒臭くなって、「また、いるときググればいいでしょ。ぼんやりと記憶に残ってるし」と、さっさとタブを閉じてしまっていたので、反省!
ちゃんと記録しておかねば、イパネバの娘。
(結構書いたので、今日のところはこのくらいで勘弁しといたろ!)

  1. PHPで末尾の削除
    $s = "aaa,bb,cccc,";
    $s = rtrim($s, ",");
    
  2. jQuery Slider plugin (Safari style)
    
    $(function() {
      $("#id名").slider({ ... });
    });
    
    

    読み込み時に動かしておくことが重要!($(function() なしで書いても何もおこらないよ)

  3. EC-CUBEのフッターが fotter になっていたところを footer に修正してくれた。(2.5から適用)
  4. ブラウザの右端にペロッと表示されて、スクロールしても動かない画像
    position:fixed;
    right:0px;
    bottom:20px;
    

    bottomを指定すると下の方に張り付いて Good!

  5. uupaa.js
    latest logのひとが開発している jQueryに代わるライブラリ。機能はよさげなんだけど「導入実績なし」というところがちょっと。
  6. 使えるHTMLエンティティ文字 – raquo,laquo
    FireBugでエラーになる。もちろん使えるけど。
  7. isset()とempty()のまとめ
    ここを見るといいよ。
  8. mb_ereg_replace
    正規表現による置換のマルチバイト文字列版。それより、いまだに str_replaceのマルチバイト版が標準に入っていない方が不思議。
  9. メールループ(循環メール)はどうやって防がれているか?
    postfixが「Delivered-To:にあるメッセージを”mail forwarding loop”としてbounce」するということ。自分が送ったメールには、Delivered-To:を付けておいて、「Deliverd-To」フィールドの内容と送付先が同じ場合は NGにするということのようです。ここ参照。
  10. Smartyの中で isset()を使うとき
    <!--{ if isset($tpl_previous_page|smarty:nodefaults) }-->
    

    nodefaultsをかけておかないと、エラーになります。その理由は、こちらで。

次ページへ »