2012年4月24日火曜日

WordPress用のRewrite Ruleをnginxに設定

nginx_setting_for_wordpress_rewriteWordPressのPermalinkをApache+.htaccessで設定していたのをnginxで実現するための方法を調査。

環境: CentOS 5.8, nginx 1.0.14, PHP 5.3.10, WordPress 3.3.1

参考にしたのは下記Site.

追加したのは下記

if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php?q=$1 last;
}

WordPressのPermalinks設定画面では"/%postname%/"だけにした。

image

設定File全体は下記。
# vi /etc/nginx/conf.d/01_wordpress.conf

server {
    listen       80;
    server_name  wordpress.hoge.com;

    root    /home/httpd/wordpress/httpdocs;
    index   index.php index.html index.htm;
    charset utf-8;

    location = /robots.txt  { access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }

    location ~* \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        include        fastcgi_params;
        client_max_body_size 20M;
    }

    location ~ /\. {
        deny  all;
        access_log off;
        log_not_found off;
    }

    # if the file is not found, forwarded to index.php (permalinks)
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php?q=$1 last;
    }
}

CacheなどPerformanceを考慮した設定はまた今度調べ直す。

 

< Related Posts >

2012年4月18日水曜日

FileをUploadするためのnginxとphp.iniの設定

nginx_file_upload_settingsWordPressをnginx上で構築後、WordPressの管理画面で他のWordPressのDataをImportする際に下記Error。

413 Request Entity Too Large

下記を参考に"client_max_body_size"を設定Fileに追記。

# vi /etc/nginx/conf.d/01_wordpress.conf

location ~* \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_intercept_errors on;
    include        fastcgi_params;
    client_max_body_size 20M;
}

php-fpmも結局php.iniを参照するので、こちらも設定も忘れずに。

upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 128M

nginxとphp-fpmを再読み込み&再起動。
# /etc/rc.d/init.d/nginx reload
# /etc/rc.d/init.d/php-fpm restart

これで大きなFileもUploadできるはず。

 

< Related Posts >

2012年4月13日金曜日

Facebook, Twitter, Google+のShare Buttonを設置する方法

Web like_tweet_ 1buttonSiteを構築するときに定番になっているFacebook Like, Tweet Button, Google +1 Buttonの設定方法。

まずは埋め込むScriptを自動生成してくれる各Official SiteへのLink

以下はParameterの設定など開発者向け情報のLink

 

1. Facebook Like & Share

"Like"に統合されてSupportされなくなった"Share"機能
Facebook Share - Facebook Developer

Open Graph ProtocolのDocument
Open Graph Protocol - Facebook Developers

"Like" (OGP)の動作確認が出来るTool。昔は"URL Linter"って名前だった。
Debugger - Facebook Developers

 

2. Tweet Button

Parameterの説明。
Tweet Button | Twitter Developers

iframe内の幅を変更する方法
新しくなった公式Twitterボタン(ツイートボタン)のデザインを修正する: 小粋空間

 

3. Google +1 Button

"+ 1 Button"の設定、Parameterの説明
+1 Button - Google+ Platform - Google Developers

動作確認。Facebook debuggerの+1版。
Webmaster Tools - Rich Snippets Testing Tool

Google+ 開発者向け公式Blog
Google+ Developers Blog

 

ちなみにWordPressを使っているならPluginを導入した方が簡単。

 

< Related Posts >

2012年4月12日木曜日

TeraTermの日本語文字化け対策して、次回起動時も反映する設定

teraterm-setting日本語環境のCentOSに接続したときにTeraTermが文字化けするのを直す方法。

環境: Windows 7 Home Premium 64-bit, TeraTerm 4.73, CentOS 5.8

Downloadは公式Siteから。

文字化けするときに確認するのは下記2つ。


< 2015/07/06 Modified >
サーバー側の文字コードを確認
# vi /etc/sysconfig/i18n

LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

再ログインして確認
# env



< 2013/05/22 追記 >
Setup → General... Languageを「UTF-8」か「Japanese」にしないと下記設定項目が出てこない。v4.77で確認。


 

1.Setup → Terminal... → localeを「japanese」にする。

image

2.Setup → Font... → 日本語Font「MS Gothic」とかにする。

image

 

これを次回起動時にも反映させたいので、
Setup → Save setup...
を選択して設定fileを出力する。これをTeraTermのInstall Folderにある同名のFile(TERATERM.INI)に上書きするばok.

 

< Related Posts >

2012年4月11日水曜日

CentOSにNginx + php-fpmをInstall、設定してWordPressを動かす

nginx php wordpress前回の基礎知識編を踏まえ、今回はNginxをInstallしてWordPressを動かすまで。

環境: CentOS 5.8 32bit(i386), nginx 1.0.14, php 5.3.10

参考にしたのは下記Site.

 


1. nginxをInstall - yum経由でupdate出来るようにする。

nginx official siteのDownloadにyumのRepositoryを設定する方法があったので、yum経由でInstallした。

# vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/5/$basearch/
gpgcheck=0
enabled=1

# yum update
# yum install nginx

 


2. php 5.3をinstallしてphp-fpmを使えるようにする

まずはInstall済みのphpを削除する。
Installされているphp packageを一覧表示
# yum list installed | grep php

一括削除
# yum erase php53*

標準のYUM Repositoryにはphp-fpmがないので、下記SiteからRepositoryを追加する。

# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm -ivh epel-release-5-4.noarch.rpm remi-release-5.rpm

Remi Repositoryを使ってphp-fpmをInstall
# yum install php php-fpm php-devel php-cli php-xml php-mysql php-mbstring php-gd --enablerepo=remi

php-fpmの確認
# php-fpm -v

 


3. nginxを設定

Apacheから移行するので、Processを実行するUser名とVersion情報を出力しないように設定。
# vi /etc/nginx/nginx.conf

user  apache;
http {
    server_tokens off;
}

 


4. php-fpm (FastCGI Process Manager)の設定、起動

PHPはnginxとは別に起動しているCGIに渡して処理をするので、待機しておくProcess数などを設定。

設定Fileは
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf

今回は初期状態のまま何もしない。

起動させて、再起動後も自動起動するように設定
# /etc/rc.d/init.d/php-fpm start
# chkconfig php-fpm on

 


5. WordPress用にMySQLとnginxをInstall, 設定

せっかくなのでRemi Repositoryを使って、MySQLを最新の5.5にする。
# yum install mysql-server --enablerepo=remi

MySQL Serverを起動して、RootのPasswordを設定。自動起動もOn.
# /etc/rc.d/init.d/mysqld start
# mysqladmin -u root password 'NEWPASSWORD'
# chkconfig mysqld on

nginxにWordPressとphpMyAdmin用のaliasを設定する。今回は/opt以下を全部公開する設定。別の機会に詳細を記事にする予定。

まずはdefaultの.confを削除
# rm -f /etc/nginx/conf.d/*.conf
# vi /etc/nginx/conf.d/80_default.conf

server {
    listen       80 default_server;
    server_name  _; # all traffic recieve this section. http://wiki.nginx.org/HttpCoreModule#server_name

    root    /opt;
    index   index.php index.html index.htm;
    charset utf-8;

    location = /robots.txt  { access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }

    location ~* \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        include        fastcgi_params;
    }

    location ~ /\. {
        deny  all;
        access_log off;
        log_not_found off;
    }
}

nginxのconf, fcgi関連の設定は下記Siteを参考に。

nginxを起動
# /etc/rc.d/init.d/nginx start

phpMyAdminをBrowserで開いて、新規DBを作成。ここからは通常のWordPressをInstallする手順と同じ。

次回はmod_rewriteをnginxで実現するための設定を調査予定。

 


< 2012/04/24 Modified >
"default_server"を追記。詳しくは下記Siteを参照。

 


< 2012/05/18 Modified >
php-gdを追記

 

< Related Posts >

Related Posts Plugin for WordPress, Blogger...

Blog Archives