yuu_nkjm blog


2012-12-01(Sat) [長年日記] 編集

[openSUSE][WordPress] openSUSEにWordPressをインストールする (MySQL版)

以前SQLite版を入れたが,やはり王道に乗っておくのが一番ということで,日本語の通常版(MySQL版)をインストールしてみる.

OpenSUSE 12.2 (64bit),WordPressのバージョンは3.4.2-jaだった.

公式サイトのチュートリルがしっかりしているので,基本的にはそれを見れば良い.WordPress のはじめ方 - スタートガイド - WordPress Codex 日本語版

インストール手順

  1. WordPress | 日本語から最新版のtar.gzのリンクを探し,ダウンロードする.展開し,インストールしたいディレクトリにコピーする.
    cd ~/public_html/
    wget http://ja.wordpress.org/wordpress-3.4.2-ja.tar.gz
    tar zxf wordpress-3.4.2-ja.tar.gz
    cp -a wordpress wordpresslab
    
  2. MySQLにデータベース,ユーザアカウントを設定する.
    # rootにもしっかりパスワードはかけておこう.
    mysql -u root -p
     
    # -とか_とか入れるとややこしくなった記憶があるので,読みにくいが我慢.
    # wpを複数入れる際は接頭字が指定できるので,wpdbとかでよかったかも.
    create database wpdbforlab;
    grant all on wpdbforlab.* to 'wpadministrator'@'localhost' identified by '*************';
    exit
     
    # ログイン出来るか確認
    mysql -u wpadministrator -p
    use wpdbforlab
    
  3. http://wordpress.nkjm.info/~user1/wordpresslab/へアクセスすると,wp-config.phpの作成指示が表示されるので,「設定ファイルを作成する」ボタンをクリック.
    wp-config.php ファイルが見つかりません。開始する前にこのファイルが必要です。
    ヘルプが必要な場合はドキュメンテーションをご覧ください。
    ウェブインタフェース経由で wp-config.php を作成できますが、サーバーによっては動作しないかもしれません。最も安全な方法は、手動でファイルを作成することです。
    「設定ファイルを作成する」
    
  4. データベース名: wpdbforlab
    データベースのユーザー名: wpadministrator
    データベースのパスワード: ****
    データベースホスト: localhost
    データベースの接頭辞 (1つのデータベースに複数の WordPress を作動させる場合): お好きにどうぞ.
    
  5. ~/public_html/wordpresslab/にapacheが書き込める権限を与えていないので,手動で生成されたPHPコードを~/public_html/wordpresslab/wp-config.phpに書き込む.この時,文字コードをUTF-8,改行コードをLFとする.
  6. 「インストール実行」ボタンをクリックする.サイトのタイトル,作成するユーザなどを入力し「WordPressをインストール」ボタンをクリックする.
  7. WordpressでFTP接続情報を求められたときのメモ - rubellum's blog
    wp-config.phpに以下を追記.
    define('FS_METHOD', 'direct');
    
    cd ~/public_html
    chmod 707 wordpresslab
    chmod 707 wordpresslab/wp-content
    mkdir wordpresslab/wp-content/upgrade
    mkdir wordpresslab/wp-content/uploads
    chmod 707 wordpresslab/wp-content/upgrade
    chmod 707 wordpresslab/wp-content/uploads
    chmod -R 707 wordpresslab/wp-content/themes
    chmod -R 707 wordpresslab/wp-content/plugins
    
  8. 以上で,インストールが完了.http://wordpress.nkjm.info/~user1/wordpresslab/wp-admin/が管理用ページとなる.続いて,プラグインやテーマのインストールをしていく.

インストールした環境の詳細

.htaccessを利用するプラグインがあるので,AllowOverrideする.必要ならOptionsでFollowSymLinksなども追加する.

/etc/apache2/conf.d/wordpress-jp.conf
 
<Directory "/srv/www/htdocs/jp">
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>

パーマリンクの設定などで,mod_rewriteが必要になる./etc/sysconfigエディタで,rewriteを追加する.

php-curl(,php-gd)がインストールされてなくてはまったことが何度かあった.

zypper search php|grep "i |"
i | apache2-mod_php5                     | Apache 2.0 向け PHP5 モジュール      
i | php5                                 | PHP5 コアファイル                    
i | php5-bz2                             | PHP5 拡張モジュール                  
i | php5-ctype                           | PHP5 拡張モジュール                  
i | php5-curl                            | PHP5 拡張モジュール                  
i | php5-dom                             | PHP5 拡張モジュール                  
i | php5-gd                              | PHP5 拡張モジュール                  
i | php5-iconv                           | PHP5 拡張モジュール                  
i | php5-json                            | PHP5 拡張モジュール                  
i | php5-mbstring                        | PHP5 拡張モジュール                  
i | php5-mcrypt                          | PHP5 拡張モジュール                  
i | php5-mysql                           | PHP5 拡張モジュール                  
i | php5-pdo                             | PHP5 拡張モジュール                  
i | php5-sqlite                          | PHP5 拡張モジュール                  
i | php5-tokenizer                       | PHP5 拡張モジュール                  
i | php5-xmlreader                       | PHP5 拡張モジュール                  
i | php5-xmlwriter                       | PHP5 拡張モジュール                  
i | php5-zip                             | PHP5 拡張モジュール                  
i | php5-zlib                            | PHP5 拡張モジュール                  
i | phpMyAdmin                           | Administration of MySQL over the web 
zypper search apache|grep "i |"
i | ant-apache-bcel                  | Ant 向け apache bcel タスクオプション                    
i | ant-apache-bsf                   | Ant 向け apache bsf タスクオプション                     
i | ant-apache-log4j                 | Ant 向け apache log4j タスクオプション                   
i | ant-apache-oro                   | Ant 向け apache oro タスクオプション                     
i | ant-apache-regexp                | Ant 向け apache regexp タスクオプション                  
i | ant-apache-resolver              | Ant 向け apache resolver タスクオプション                
i | apache-commons-daemon            | Commons Daemon - Java デーモンの制御                     
i | apache-commons-logging           | Apache Commons Logging パッケージ                        
i | apache2                          | Apache Web サーババージョン 2.2                          
i | apache2-devel                    | Apache 2.2 ヘッダファイル                                
i | apache2-doc                      | 追加パッケージのドキュメンテーションです。               
i | apache2-example-pages            | Apache 2 Web サーバ向けサンプルページ                    
i | apache2-mod_perl                 | Apache 向け内蔵 Perl                                     
i | apache2-mod_php5                 | Apache 2.0 向け PHP5 モジュール                          
i | apache2-mod_python               | Apache 2 Web サーバ向け Python モジュール                
i | apache2-prefork                  | Apache 2 "prework" MPM (マルチプロセッシングモジュール)  
i | apache2-utils                    | Apache 2 ユーティリティ                                  
zypper search mysql|grep "i |"
i | libmysqlclient18                     | MySQL コミュニティサーバ向け共有ライブラリ                
i | libqt4-sql-mysql                     | Qt 4 MySQL support                                        
i | libreoffice-base-drivers-mysql       | LibreOffice 向け MySQL データベースドライバ               
i | mysql-community-server               | MySQL コミュニティサーバのサーバ部分                      
i | mysql-community-server-client        | MySQL コミュニティサーバ向けクライアント                  
i | mysql-community-server-errormessages | MySQL コミュニティサーバの開発用ヘッダファイルとライブラリ
i | php5-mysql                           | PHP5 拡張モジュール                                       
/etc/sysconfig エディタ
Network/WWW/Apache2/
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 reqtimeout  mod_proxy mod_proxy_ajp rewrite"

2012-12-02(Sun) [長年日記] 編集

[WordPress][JavaScript][jQuery] 見出しを目次にするスクリプト

jQuery Table of Contents Plugin

TOC | jQuery Table of Contents Pluginがなかなか良い感じ.

見出しに番号をつける


<script type="text/javascript">
// h2にナンバリング
jQuery(function() {
    jQuery(".post-entry .chapterize h2").each(function(i) {
         var current = jQuery(this);
         var txt = current.text();
         current.text((i+1)+". " +txt);
     });
});
</script>

見だしを目次にする

h2とh3の入れ子関係の処理はしていない.見出しから目次を自動生成 & クリックで該当位置にスクロール(jQuery使用) | Stack Stack!を参考にカスタマイズした.


<script type="text/javascript">
//TOCの作成
jQuery(function(){
    var elm = jQuery("<ul></ul>");    
    jQuery(".post-entry h2, .post-entry h3").each(function(i) {
      var current = jQuery(this);
      var tagName = current.get()[0].localName;
      if(tagName == "h2"){
          if(current.attr('id') === undefined){
                current.attr("id", "chapter-" + i);
          }
          elm.append("<li><a href=#" + current.attr('id') + ">" + current.text() + "</a></li>");
      } else if(tagName == "h3"){
          if(current.attr('id') === undefined){
             current.attr("id", "subchapter-" + i);
           }
           elm.append("<li style='list-style-type: none;'>  <a href=#" + current.attr('id') + ">" + current.text() + "</a></li>");
    }
    });    
    jQuery(".table-of-contents").append(elm);
    return false;
});

jQuery-Collapse

jQuery Collapse | webcloudを使うことにした.

目次の項目の折りたたみ

現在表示しているページに関するもの以外は,折りたたむ.jQueryで現在のページの所属しているサブメニューを開いた状態にする。 | webOpixeljQueryで現在のファイル名を取得する方法 | PHPサンプル実験室を参考にした.


// TOCの折りたたみ
jQuery(function() {
	var url = window.location;	
	jQuery('ul.nav li a[href="'+url+'"]').parent().addClass('active');
	var path = url.href.split('/');
	var file_name = path.pop();
        file_name = file_name.split('#')[0];
        jQuery(".reference a[href*='" + file_name + "']").addClass("selected-menu");
        jQuery(".reference ol ol:has(a[href*='" + file_name + "'])").addClass("active");
});
</script>

activeクラスで表示を切りかえるCSSを用意しておく.

.reference ol ol{
    display: none;
}
.reference ol ol.active {
    display: block;
}

2012-12-03(Mon) [長年日記] 編集

[jQuery][WordPress] jQueryのTips

$のバッティングの回避

Uncaught TypeError: Property '%htmlEscapedText%apos; of object [object DOMWindow] is not a functionというエラーについて - by shigemk2などを参考のこと.自分が利用する場合はjQueryって直接指定すればいいんだけど,自分が利用しているjsはそうもいかない.jQueryのバージョンの混在などもめんどくさい問題を引き起こしそうだ.

セレクタで選んでeachした対象を処理するにはfind

[jQuery]eachとthisとfindの使いどころメモ | HappyQualityあたりを参照.

変数がundefinedか確認

javascriptメモ: memoを参照.

if(typeof a === "undefined"){ alert("未定義") };

2012-12-04(Tue) [長年日記] 編集

[Linux][tcpdump] tcpdumpで特定のポートへのパケットを監視する

tcpdump port 25
 
10:43:29.150923 IP tinamous3.**.com.http > v157**.myvps.jp.opencore: Flags [S.], seq 307120186, ack 317587457, win 16384, options [mss 1460], length 0
10:43:38.514822 IP tinamous3.**.com.http > v157**.myvps.jp.40101: Flags [S.], seq 1354444329, ack 1682702337, win 16384, options [mss 1460], length 0

ローカルホストからローカルホストへの接続は検知されないことに注意.

ポートまでパケットが到達していそうだったら,次はそのポートをサービスが待ち受けているかを確認する.サービス(postfixやbindなど)の待ち受け状況をnetstatで確認する - yuu_nkjm blog(2011-12-06)あたりも.


2012-12-05(Wed) [長年日記] 編集

[WordPress] Responsiveテーマの書きかえ

固定ページテンプレートの書きかえ (page.php, content-sidebar-page.php)

<?php echo responsive_breadcrumb_lists(); ?>の下あたりに入れる.

<!--------- nkjm add next-prev start --------->
<div class="next-prev">
<?php previous_page_link_plus( array(
    'order_by' => 'menu_order',
    'in_same_parent' => true,
    'link'           => 'Prev: %title',
) );?> |
<?php next_page_link_plus( array(
    'order_by' => 'menu_order',
    'in_same_parent' => true,
    'link'           => 'Next: %title',
) );?>
</div>
<!--------- nkjm add next-prev end --------->

<!-- end of #content -->の上あたりに入れる.

 <!-- nkjm add 2012-12-08 start -->
<div class="next-prev">
<?php previous_page_link_plus( array(
    'order_by' => 'menu_order',
    'in_same_parent' => true,
    'link'           => 'Prev: %title',
) );?> |
<?php next_page_link_plus( array(
    'order_by' => 'menu_order',
    'in_same_parent' => true,
    'link'           => 'Next: %title',
) );?>
</div>      
<?php echo responsive_breadcrumb_lists(); ?>
<!-- nkjm add 2012-12-08 end -->

functions.php

/** nkjm add for remove rel next/prev **/
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10);

header.php

</head>の直前で読み込む

<script type="text/javascript" src="http://www.nkjmlab.org/open/wplab/jquery.toc.min.js"></script>
<script type="text/javascript" src="http://www.nkjmlab.org/open/wplab/jquery.collapse.js"></script>
<script type="text/javascript" src="http://www.nkjmlab.org/open/wplab/jquery.collapse_storage.js"></script>
<script type="text/javascript" src="http://www.nkjmlab.org/open/wplab/wplab-header.js"></script>
<link rel="stylesheet" id="my-wplab"  href="http://www.nkjmlab.org/open/wplab/wplab.css" type="text/css" media="all" />
<link rel="stylesheet" id="my-print"  href="http://www.nkjmlab.org/open/wplab/wplab-print.css" type="text/css" media="print" />

メモ

パンくずリスト
<?php echo responsive_breadcrumb_lists(); ?>
目次の生成(Widgetにいれた)
<!--------- nkjm add generate external toc start --------->
<div class="generate-toc"></div>
<!--------- nkjm add generate external toc end --------->

2012-12-08(Sat) [長年日記] 編集

[openSUSE][FTP] openSUSEでFTPを使う

セキュリティホールとなりやすそうだからFTPサーバを動かしたくないんだけど,ローカルのプログラムからFTPを使いたいということがあったのでメモ.

yastで"vsftpd"と"yast2-ftp-server"をインストールする.openSUSE 12.2: 第21章 YaST を利用した FTP サーバの設定

サービスの開始
( ) 起動時 (W)  
(x) xinetd 経由 (X)
( ) 手動 (M)
 
選択されたサービス
(x) vsftpd (V)
( ) pure-ftpd (U)
 
┌匿名ユーザと認証ユーザの許可
│( ) 匿名ユーザのみ (U)      
│(x) 認証ユーザのみ (H)      
│( ) 両方とも (B)            
└──────────────
 
 ┌アップロード──────────────────
 │ [x] アップロードの許可 (E)                     
 │   [ ] 匿名ユーザのアップロード許可 (Y)         
 │   [ ] 匿名ユーザにディレクトリ作成を許可 (S)   
 └────────────────────────
 
パッシブモード
 [x] パッシブモードを許可する (I)    
 
SUSEfirewall 設定
[x] ファイアウオールでポートを開く (F)

2012-12-09(Sun) [長年日記] 編集

[WordPress] サイトURL,ホームURLの修正

管理画面から誤ったサイトURL,ホームURLを指定すると,あっさりとWordpressにアクセスできなくすることが出来る.何度かやらかしたなこれ.

サイトURL,ホームURLはDBに記録されているが,wp-config.phpでも設定可能.

define('WP_SITEURL', '正しいアドレス');
define('WP_HOME', '正しいアドレス');

DBの修正はこんな感じ.

use wpdb
select option_value from wp_options where option_name = 'home';
select option_value from wp_options where option_name = 'siteurl';
 
update wp_options set option_value='http://NEW_URL/' where option_name='siteurl';
update wp_options set option_value='http://NEW_URL/' where option_name='home';

2012-12-10(Mon) [長年日記] 編集

[WordPress][MySQL] BackWPupを使ったWordpressの移行(バックアップからの復旧)backwpup_db_restore.php使用版

■Wordpressの移行

BackWPupを使ってバックアップを取っている.使用方法に関しては,今こそ安心できるWordPressバックアップを!復旧作業まで実際にやってみたWordPress丸ごとバックアップ法 | 情報科学屋さんを目指す人のメモが詳しい.

復旧の簡単な手順は以下.

MySQLの準備

MySQLのWordpress用データベースとWordpress用ユーザを作成する.

mysql -u root -p
 
create database wplab;
grant all on wplab.* to 'wpadmin'@'localhost' identified by '**********';

バックアップファイルからの復元

BackWPupでファイルやDBの全てをバックアップしたものを用意する.BackWPupで作成されたバックアップファイルを,移行先にコピーし展開する.またそのディレクトリにDownload › BackWPup.comより取得できるbackwpup_db_restore.phpをコピーする.

http://www.nkjm.info/wp/backwpup_db_restore.phpの様にブラウザでアクセスして,あとはメニューに従うだけ.(http://www.nkjm.info/wp/がWordpressnoホームURL)

Continue Script if needed: http://www.nkjm.info/wp/backwpup_db_restore.php
..............................................
3319 Database Querys done.
Make changes for blogurl and ABSPATH in database if needed.
Restore Done. Please delete the SQL file and this script.

以下のメッセージ出たけど,設定してないな.

You must set 'define('DB_CHARSET', '');' in wp-config.php!

サーバの環境設定は,openSUSEにWordPressをインストールする (MySQL版) - yuu_nkjm blog(2012-12-01)を参照のこと.


2012-12-11(Tue) [長年日記] 編集

[SSD][BenchMark] SSDの速度

Intel SSD 520 - Thinkpad x220 (Core i7)

------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]
 
           Sequential Read :   427.990 MB/s
          Sequential Write :   238.096 MB/s
         Random Read 512KB :   355.154 MB/s
        Random Write 512KB :   234.484 MB/s
    Random Read 4KB (QD=1) :    19.368 MB/s [  4728.5 IOPS]
   Random Write 4KB (QD=1) :    46.235 MB/s [ 11287.9 IOPS]
   Random Read 4KB (QD=32) :   179.016 MB/s [ 43705.0 IOPS]
  Random Write 4KB (QD=32) :   104.400 MB/s [ 25488.3 IOPS]
 
  Test : 1000 MB [C: 46.3% (45.4/98.0 GB)] (x5)
  Date : 2012/12/14 15:11:55
    OS : Windows 7 Enterprise Edition SP1 [6.1 Build 7601] (x64)

トップ «前月 最新 翌月» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|