ubuntu お作法いろいろメモ

パッケージをインストールするには、apt-get install パッケージ名
パッケージの一覧は dpkg -l

apache

/etc/apache2/sites-available にある default を、適当な名前(たとえば サーバ名)にコピーし修正して使う。その後、a2ensite その適当なファイル名 して service apache2 restart (多分、reload でもOK)
SSI や USERDIR などを使うには、a2enmod userdir とかする。引数は /etc/apache2/mods-available 参照。

cgi を、Script Alias 以外で使うには、/etc/apache2/mods-available/mime.conf の中の #AddHandler cgi-script .cgi のコメントを外す必要がある。もちろん、site- の設定の ExecCGI も必要。

新サーバへの移行の際には、旧サーバ(別IPアドレスで生きてる)から REDIRECT しておくべき。

ftp

vsftpd なんかを導入。apt-get install vsftpd とかして。
/etc/vsftpd.conf で、write_enable=YES しないと、ファイルを置きにいけないことに 注意。また、アクセス制御は、/etc/hosts.allow に許可する hosts.deny に拒否する ホストを記述する。inetd なしで動く。




2013.4-5, vsftp が、ubuntu 13.04 にアップグレード後うまくうごかなくなった。
対処法は、 Login is not possible
Vincent DAVY (vincentdavy) wrote on 2013-05-01: 	#27

Hi all,

Previous messages were sent too fast and I didn't find a way to remove them.
I posted the patched version of vsftpd in both 34 and 32 bits arch : please feel free to download.

Don't forget to remove the previous installed version on your system or dpkg will tell you that the package is already installed :
sudo apt-get remove vsftpd
sudo dpkg -i vsftpd_patched.deb

That's all, and it doesn't remove config files.

If you prefer to compile your own version, here is the procedure :
mkdir vsftpd-patched
cd vsftpd-patched
sudo apt-get build-dep vsftpd
sudo apt-get install fakeroot
apt-get source vsftpd
--> Go on https://build.opensuse.org/package/view_file?file=vsftpd-drop-newpid-from-clone.patch&package=vsftpd&project=openSUSE%3AFactory&rev=3ed24d12e1827ea673331e213ab3d477 and copy/paste the patch in a file (assuming in vsftpd-drop-newpid-from-clone.patch for the rest of this tutorial)
patch -p0 < vsftpd-drop-newpid-from-clone.patch
cd vsftpd-3.0.2/
dpkg-buildpackage -us -uc -nc
cd ../

You'll get the compiled .deb in the directory.
Remove previous installed version of vsftpd on your system and install the brand new patched one.
sudo apt-get remove vsftpd
sudo dpkg -i vsftpd_patched.deb

You can remove the directory where you built the package after installation.

ユーザ、グループ

FreeBSD からでも、awk などで、カラムを適当に変更すれば、パスワードごと移動可能。 vipw で/etc/passwd を、 vipw -s で /etc/shadow を修正。
同様に、vigr vigr -s で /etc/group /etc/gshadow を修正。
FreeBSD から持ってきたこれらのデータは、awk で2つに分けて、エディタ上で 取り込むのが簡単

データの移行

rsync -avzc --iconv=UTF-8,EUCJP などすれば、ファイル名コード変換も可能。 iconv の後ろは、local,remote の順。ただし、一般ユーザに winscp を使わせると Windows のコードのままファイルが置かれているので、この変換が動かず そのファイルが無視されてしまう。注意。文字化けを諦めて、iconv なしで コピーするべきか。(最近の WinSCP は UTF コードがちゃんと使えるようだ 2012.12)

2012.11

シェルコマンド類

2012.12

postfix, dovecot

定番のメール配送ソフトは postfix、 IMAP4 サーバは、dovecot
これらの設定は、 /etc/postfix /etc/dovecot にある。
sendmail からの移行を考えると、
/etc/postfix/master.cf で submission smtps を設定しておき、 main.cf でいろいろ適切に設定して、 mailbox は、mbox 型にしておくべき
/var/mail にかけないという類のエラーの対処は、 http://wiki.dovecot.org/MailLocation/Mbox の /var/mail dotlocks を参照。 mail_privileged_group = mail とか。最終的には dovecot の mail_privileged_group = postdrop と /var/mail を postfix:postdrop にもしてみたけど。。。。 (2013.1)
/etc/dovecot/conf.d/01-mail-stack-delivery.confにある mail_locationは
mail_location = mbox:~/mail:INBOX=/var/mail/%u とすべき。
さすがに、日本語が化けると不便なので、 apt-get install language-pack-ja して、 dpkg-reconfigure locales しておく。
wordpress をパッケージで入れたら、wp-setup するらしい。 いやいや、apt-get install wordpress したら、/usr/share/doc/wordpress を よめとか。(http://askubuntu.com/questions/215163/wordpress-installation-on-ubuntu-12-10)
とりあえず、README.Debian を読めば分かるはず。
どうやら、/usr/share/doc/wordpress/examples/setup-mysql.gz を動かすらしい
結局、下のを見てやっても、結構ハマった。最終的には、mysql で手動でデータベースを 作成して、それを指定した。(はず)このとき、'user'@'localhost' の ' を 書かないといけないみたい? apache2 の方は、Alias 指定で動かしているつもり。 この辺は、設定ファイル群を保存しておかねば。(2012.12.18)
サーバ移行時には、旧サーバ側で、Rewrite などして、対応すべし。(全部持ってくなら Redirect)

http://www.nofuture.tv/diary/ によると、以下のようにするらしい。

WordPressのインストール(スライド7枚目)

# apt-get install wordpress mysql-server

でインストールでWordPressをインストールすると、MySQLのrootパスワードを尋ねられるので設定します。
設定は3つ(スライド8枚目)

WordPressインストール後の3つの設定ですが、こんな感じで設定します。
0. ドキュメントを読みます

スライドに書いてませんが、まずはドキュメントを読みましょう。

# cd /usr/share/doc/wordpress/
# lv README.Debian

英語で「わからん!」という人も、とりあえずは「Quick setup」だけは読んでください。

    Quick setup

    Setup apache to point to /usr/share/wordpress. See the examples/apache.conf

    Database and filesystem setup can be done with the help of a script in examples/setup-mysql. Beware: it assumes that you want to install your files in /srv/www/.

1. MySQLとサイトFQDNの設定

「管理スクリプトを叩くと」と書いていますが、どこにあるかというと、Quick Setupにも書いてあるように /usr/share/doc/wordpress ディレクトリの下に example ディレクトリがあり、そこにapacheの設定サンプルとMySQLの設定スクリプトがあります。

# cd examples/
# ls
apache.conf  setup-mysql.gz ←これ!

setup-mysql.gzはgzipで圧縮されているので展開してから実行します。 何もつけずに実行するとヘルプが出ます。

# gunzip setup-mysql.gz
# bash ./setup-mysql
./setup-mysql [-h | -d | -b] [-n NAME | -e DB Name] [-u MySQL user] [-t MySQL host] FQDN

Creates by default a Wordpress mysql configuration depending on required fully
qualified domain name(FQDN).

Options:
    -n name for the wordpress site; see also -e below
    -h help
    -d destroy and purge
    -b backup
    -u mysql username, will require password
    -t mysql server hostname, if unset localhost will be used
    -e existing empty mysql database name; will replace -n

Example: You want your blog to be served from http://blog.example.com
         for user 'wordpress'.

Then run:
sudo bash setup-mysql -n wordpress blog.example.com

BUGS: See ../TODO.Debian

ヘルプには -n でサイト名(=db名)、その後ろにドメイン名(FQDN)をつけて実行するようにと書いてあるので、そのように実行します。

# bash ./setup-mysql -n (サイト名) (ドメイン名)
PING (ドメイン名) (xxx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from (ドメイン名) (xxx.xxx.xxx.xxx): icmp_req=1 ttl=64 time=0.048 ms

--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.048/0.048/0.048/0.000 ms
/etc/wordpress/config-(ドメイン名).php written
Trying to create wp-content directory: /srv/www/wp-content/(FQDN)
Setting up permissions
Goto http://(ドメイン名) to setup Wordpress

MySQLの設定は終わりました。 メッセージにも書いてありますがWordPerssの設定などは以下のようになります。

    設定ファイル: /etc/wordpress/config-(ドメイン名).php
    コンテンツなどが格納されるディレクトリ: /srv/www/wp-content/(ドメイン名)/;
        サイト共通の設定(themes,plugins,languages)はシンボリックリンクで、実体は/var/lib/wordpress/wp-content/以下にあります。

2. 日本語の設定

日本語を利用するために /etc/wordpress/config-(ドメイン名).php の最後の行にWPLANGを追記します。 コマンドライン一発ではこんな感じ。

# echo "define('WPLANG', 'ja');" >> /etc/wordpress/config-(ドメイン名).php

3. Apacheの設定を追記

example/apache.confに設定が書いてあるので、それを元にApacheの設定をします。

まず、ページャなどでapache.confを開き必要な設定をコピーします。

# lv apache.conf

ドメイン名のルート直下でマルチドメインのサイトを利用する予定がなければ、一番最初に書いてある例を元にapacheの設定をおこないます。

# vi /etc/apache2/sites-available/(ドメイン名)

以下の内容を追記します。

NameVirtualHost *:80


UseCanonicalName Off
VirtualDocumentRoot /usr/share/wordpress
Options All

# wp-content in /srv/www/wp-content/$0
RewriteEngine On
RewriteRule ^/wp-content/(.*)$ /srv/www/wp-content/%{HTTP_HOST}/$1


追記が終わればサイトを有効にして、ドキュメント通りモジュールを有効化。 そしてapacheを再起動します。

# a2ensite (ドメイン名)
# a2enmod rewrite && a2enmod vhost_alias && /etc/init.d/apache2 restart

以上でDebianパッケージを使ったWordPressのセットアップは終了です。 ブラウザでアクセスすればWordPerss自体のセットアップに入ります。
メリット・デメリット(スライド12枚目)

Debianパッケージを使うメリット・デメリットに「バーチャルホストを使った複数のWordPressサイトが作れて便利」と書きました。

DebianのWordPressパッケージは、異なったドメインのサイト(マルチドメイン)を一つのWordPressで簡単に運用できるようになっています。

方法は、

    setup-mysqlスクリプトで異なるdb名、ドメイン名を登録。
    Apacheの設定サンプル2番目、3番目を参考にしてそれぞれのドメイン名のバーチャルホストを設定。

この2つだけです。

Debianで設定するメリットは、WordPress上で頑張らなくてもできることです。 ということで、こちらもお試しください。

https://help.ubuntu.com/community/WordPress によると 

Install Wordpress

Use any method to install.

wordpress php5-gd 

An example is using the command line terminal with apt-get install:

 sudo apt-get install wordpress php5-gd

The installation places the files in the /usr/share/wordpress folder, generally.

So that Apache2 knows where to find the installation folder, make a symbolic link to the Apache2 www folder:

sudo ln -s /usr/share/wordpress /var/www/wordpress 

Then install WordPress using the supplied script

sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress localhost

Note: (Use sh instead of bash for Feisty or earlier.) This script creates the MySQL database and user wordpress for the new MySQL database named localhost (that will be used for WordPress). If you will be hosting a virtual host and/or already know your URL, it is best to name your database the same as your URL. Also if you plan on hosting multiple blogs with different virtual hosts, each needs a differently named database, which would be achieved in the same way. For example, if your URL is wordpress.mydomain.org, then the command would be

sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress_mydomain_org wordpress.mydomain.org

If you will be using a virtual host, create your apache2 virtual host file in the /etc/apache2/sites-available folder. When you are finished, enable it by making a symbolic link from that virtual host file to the sites-enabled folder. However, this can be dangerous until you have secured your WordPress installation against malicious anonymous users on the Internet, so should only be done after the initial installation is complete and anonymous user creation is turned off. Whenever you change your virtual hosts, you must restart Apache2:

sudo /etc/init.d/apache2 restart

Now, browse to "http://localhost/wordpress" in your browser to install it (or http://''wordpress.mydomain.org''/wordpress if you are using a virtual host). You will be given an initial user named admin and a random password. Write it down. Then login as the admin user and change the password. 

でも結局

でも、結局、管理ユーザのホーム以下に、wordpress を持ってきて展開して すませちゃいました。(2012.12)

ユーザで wordpress

ユーザの public_html 内で php を使うには、
etc/apache2/mods-enabled/php5.conf を書き換える。(下のようにコメントアウトする)
#
#    
#        php_admin_value engine Off
#    
#
もちろん、a2enmod userdir とか service apache2 restart とか必要。
http://blog.shiten.info/2010/05/ubuntu-10-04-%E3%81%AE-apache2-userdir-%E3%81%A7-php-%E3%81%8C%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84%E4%BB%B6.html や http://linux.keicode.com/servers/apache-userdir.php をみました。

さらに、http://wpdocs.sourceforge.jp/WordPress_%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB にあるように、mysql でデータベースとすれを使う ユーザを設定する。

$ mysql -u adminusername -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5340 to server version: 3.23.54
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> CREATE DATABASE databasename;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"hostname"
    -> IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)
  
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT
Bye
"hostname" は "localhost" でいいかな。" が必要かも
あとは、wp-config-sample.php を wp-config.php にコピーして 上の情報を記入すれば、http://サーバ名/~ユーザ/wp-admin/wp-install.php で 設定できるはず。(2013.5)

メモのページへ