Wikipokpok:ブログ
目次
Ubuntu11.04
Thinkpadのトラックポイントスクロールを有効にする。
参考サイトUbuntu日本語フォーラム/Thinkpad TrackPoint Scrolling in Ubuntu Lucid/10.04
ファイルを新規作成する。 /usr/lib/X11/xorg.conf.d/20-thinkpad.conf 内容は以下のとおり。 Section "InputClass" Identifier "Trackpoint Wheel Emulation" MatchProduct "TrackPoint" MatchDevicePath "/dev/input/event*" Driver "evdev" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection 再起動。
10.10以降ならgpointing-device-settingsをインストールすれば楽だ。参考サイトThinkpad TrackPoint Scrolling in Ubuntu Maverick/10.10
途中からトラックポイントスクロールが利かなくなったので/etc/X11/xorg.confを新規作成し上記の設定を書き加えた。 参考サイトUbuntuJapaneseWiki
PHP
未定義変数とエラー
Notice: Undefined variable: 未定義変数とエラーが返るときは『php.ini』の『error_reporting = E_ALL & ~E_NOTICE』を有効にして、他の『error_reporting 』を無効にする。
Apache
バーチャルホスト設定
参考サイトUbuntu Tips
LVMについて
まずVG (ボリュームグループ) の確認。
shudo@home-server:~$ sudo vgscan
PV (物理ボリューム) の作成。
shudo@home-server:~$ sudo pvcreate /dev/sda1
PVをVGに追加。
shudo@home-server:~$ sudo vgextend home-server /dev/sda1 Volume group "home-server" successfully extended
LV(論理ボリューム)をVGから2GB切り出す。
shudo@home-server:~$ sudo lvcreate -nhome -L2g home-server Logical volume "home" created
LVの削除
shudo@home-server:/$ sudo umount /home/ shudo@home-server:/$ sudo lvremove /dev/home-server/home Do you really want to remove active logical volume "home"? [y/n]: y Logical volume "home" successfully removed
shudo@home-server:~$ sudo lvdisplay /dev/home-server/home --- Logical volume --- LV Name /dev/home-server/home VG Name home-server LV UUID 6o5lfm-do8L-ZV8I-LOaJ-FEVU-P40o-Cpgxfv LV Write Access read/write LV Status available # open 0 LV Size 2.00 GB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:2
切り出したLGをフォーマットする。
shudo@home-server:~$ sudo mkfs.ext4 -j /dev/home-server/home
空の/homeにマウントする。
shudo@home-server:~$ sudo mount /dev/home-server/home /home
shudo@home-server:~$ df -h ファイルシステム サイズ 使用 残り 使用% マウント位置 /dev/mapper/home--server-root 71G 1.6G 66G 3% / udev 2.0G 220K 2.0G 1% /dev none 2.0G 0 2.0G 0% /dev/shm none 2.0G 296K 2.0G 1% /var/run none 2.0G 0 2.0G 0% /var/lock none 2.0G 0 2.0G 0% /lib/init/rw /dev/sdb5 228M 29M 188M 14% /boot /dev/mapper/home--server-home 2.0G 67M 1.9G 4% /home
2GBの/homeに200GB足す。
shudo@home-server:~$ sudo umount /home/
shudo@home-server:~$ sudo lvextend -L+200g /dev/home-server/home Extending logical volume home to 202.00 GB Logical volume home successfully resized
shudo@home-server:~$ sudo mount /dev/home-server/home /home
202GBになった。
shudo@home-server:~$ sudo lvdisplay /dev/home-server/home --- Logical volume --- LV Name /dev/home-server/home VG Name home-server LV UUID 6o5lfm-do8L-ZV8I-LOaJ-FEVU-P40o-Cpgxfv LV Write Access read/write LV Status available # open 1 LV Size 202.00 GB Current LE 51712 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:2
自動マウントにする。
shudo@home-server:/$ sudo vi /etc/fstab /dev/mapper/home--server-home /home ext4 errors=remount-ro 0 1
寺院管理ソフト
CSVファイルからインポート
ファイルを移動する
shudo@shudo:~$ sudo cp meibo.csv /var/lib/mysql/tera/
インポート
mysql> LOAD DATA INFILE "meibo.csv" INTO TABLE kojins FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n';
ZendFramework
apache2 php5 mysql phpMyAdmin SQLite zend-framework インストール
apt-get install apache2 apt-get install php5 libapache2-mod-php5 apt-get install mysql-server apt-get install phpMyAdmin apt-get install php5-sqlite apt-get install zend-framework
mod_rewriteを有効にする
shudo@shudo:~$ sudo a2enmod rewrite Enabling module rewrite. Run '/etc/init.d/apache2 restart' to activate new configuration! shudo@shudo:~$ sudo /etc/init.d/apache2 restart
エラー表示(する)
phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1
PostgreSQL One-Clickインストーラというのもある
参考ページ[1]
Apache Web ServerとPHPはOne-Clickインストーラでインストールする。
インストーラーの起動の仕方。ファイル名を指定するだけ。
root@shudo-laptop:/home/shudo# ./postgresql-8.4.2-1-linux.bin
mediaWikiもインストールできる。最後にLocalSettings.phpを移動する。
root@shudo-laptop:/home/shudo# mv /opt/PostgreSQL/EnterpriseDB-ApachePhp/apache/www/mediaWiki/config/LocalSettings.php /opt/PostgreSQL/EnterpriseDB-ApachePhp/apache/www/mediaWiki
Zend FrameworkはPEARと同じディレクトリにインストールした。include_pathも指定する。
/opt/PostgreSQL/EnterpriseDB-ApachePhp/php/lib/php
Zend FrameworkのクラスファイルがあるディレクトリZendFramework-1.9.7/library/Zendにシンボリックをとおす。
root@shudo-laptop:/home/shudo# cd /opt/PostgreSQL/EnterpriseDB-ApachePhp/php/lib/php root@shudo-laptop:/home/shudo# ln -s ZendFramework-1.9.7/library/Zend
コマンドラインツール
root@shudo-laptop:/home/shudo# cd /usr/bin/ root@shudo-laptop:/home/shudo# ln -s /opt/PostgreSQL/EnterpriseDB-ApachePhp/php/lib/php/ZendFramework-1.9.7/bin/zf.sh root@shudo-laptop:/home/shudo# zf.sh show versionZend Framework Version: 1.9.7
shudo@shudo-laptop:~$ vi ~/.profile alias zf=/opt/PostgreSQL/EnterpriseDB-ApachePhp/php/lib/php/ZendFramework-1.9.7/bin/zf.sh
/wwwの所有者を変更
shudo@shudo-laptop:/opt/PostgreSQL/EnterpriseDB-ApachePhp/apache$ chown -R shudo:shudo www
チュートリアル
プロジェクトの作成
shudo@shudo-laptop:/opt/PostgreSQL/EnterpriseDB-ApachePhp/apache/www$ zf.sh create project tera
2011/2/1
shudo@www-server:/var/lib/mediawiki$ zf create project a60
ライブラリにシンボリックをとおす
shudo@shudo-laptop:/opt/PostgreSQL/EnterpriseDB-ApachePhp/apache/www$ cd tera/library/ shudo@shudo-laptop:/opt/PostgreSQL/EnterpriseDB-ApachePhp/apache/www/tera/library$ ln -s /opt/PostgreSQL/EnterpriseDB-ApachePhp/php/lib/php/Zend
2011/2/1
shudo@www-server:/var/lib/mediawiki$ cd ./a60/library/ shudo@www-server:/var/lib/mediawiki/a60/library$ ln -s /usr/share/php/libzend-framework-php/Zend/
test
http://localhost/tera/public/
postgresのテーブルをmyslのテーブルに移す
idはコピーしない
a60=# \COPY a60_bbs_tab (name, text, date) TO a60bbscopy.txt
文字コードの調整
shudo@red:~$ nkf -w a60bbscopy.txt > a60bbscopyutf8.txt
ファイル名とテーブル名を合わせる
shudo@www-server:~$ mysqlimport -u shudo -p -c email,comment,created a60 guestbook.txt
Zend_Validateのメッセージを日本語にする
清少納言 枕草子について
966年?~1025年?平安時代の女流作家 清原諾子(なぎこ)?
「清少納言」は女房名で、「清」は清原の姓から、「少納言」は親族の役職名から採ったとされている。実名は不明、「諾子(なぎこ)」という説(『枕草子抄』)もあるが信ずるに足りない。
左大臣⇒右大臣⇒内大臣⇒大納言⇒中納言⇒参議⇒左大弁⇒右大弁⇒少納言
天元4年(981年)15歳の頃、橘則光と結婚し、翌年一子則長(982年 - 1034年)を生むも、武骨な夫と反りが合わず、やがて離婚した。
当時の結婚は、一夫多妻制で、通い婚であったために、主人がこなくなれば、それで離婚ということになり、下級に近い中級貴族の娘たちの結婚は、現在のように一生涯をかけての結婚生活という意識はあまりなかった。10年を過ぎたころに則光がこなくなり、それで離婚ということになった。
正暦4年(993年)27歳冬頃から、中宮定子(17歳)に仕えた。定子は正暦元年(990年)1月25日、数え14歳の春に、3歳年下の一条天皇に入内した。
博学で才気煥発な彼女は、主君定子の恩寵を被ったばかりでなく、公卿や殿上人との贈答や機知を賭けた応酬をうまく交わし、宮廷社会に令名を残した。
- く‐ぎょう【公卿】公(こう)と卿(けい)の総称。公は太政大臣・左大臣・右大臣、卿は大納言・中納言・参議および三位以上の朝官をいう。
- れい‐めい【令名】よい評判。名声。
- 【草子】 物語・日記・歌書など、和文で記された書物の総称。
PostgreSQLについて
バックアップと復元
pg_dumpallのファイルから特定のテーブルのみをリストアする
- hogeテーブルのデータの一部を誤って消してしまったので、crondでpg_dumpallしているファイルから復元する。
- pg_dumpallで出力されたファイルをエディタで開き、復元したいテーブルのデータの部分だけをコピーして新しいhogedata.txtテキストファイルをつくる。
- hogeテーブルのデータをすべて消して、\copyでhogedata.txtのデータを戻す。
\COPY hoge_tab (id, name, zip, addr, phone) FROM /home/hogedata.txt
税務について
源泉徴収事務
従たる給与を支払う場合は乙欄の税額を適用する。
年末調整
控除対象配偶者と配偶者特別控除
(平成20年度)給与所得のみの場合、収入金額が103万円未満の場合は控除対象配偶者。収入金額が103万以上141万未満の場合は配偶者特別控除となる。
103万円未満と104万円の控除額は38万円で同じなので、どうしてか税務署に聞いてみた。すると所得税がかかるというところで違いがでるとのことだった。
Zend Frameworkについて
Zend_Db_Tableでのjoin
setIntegrityCheck(false)を書かないとエラーになるので注意。
$table = new Bugs(); $select = $table->select()->setIntegrityCheck(false); $select->where('bug_status = ?', 'NEW') ->join('accounts', 'accounts.account_name = bugs.reported_by', 'account_name') ->where('accounts.account_name = ?', 'Bob'); $rows = $table->fetchAll($select);
Zend_Paginator
Zend_Paginatorの使い方を教えてください。リファレンスガイドを見ましたが分かりません。検索をかけても情報がありません。クイックスタートに組み込みたいと思っています。どなたかよろしくお願いします。--住職 2009年2月3日 (火) 18:16 (JST)
- GuestbookController.php
public function indexAction() { $model = $this->_getModel(); //$this->view->entries = $model->fetchEntries(); $entries = $model->fetchEntries(); $paginator = Zend_Paginator::factory($entries); //1ページに表示するエントリ数 $paginator->setItemCountPerPage(5); $paginator->setCurrentPageNumber($this->_request->getParam('page')); $this->view->paginator = $paginator; }
- /views/scripts/guestbook/index.php
<? //foreach ($this->entries as $entry): ?> <? foreach ($this->paginator as $item): ?> <?= $this->escape($item['id']) ?>[<?= $this->escape($item['name']) ?>] <?= $this->escape($item['comment']) ?> <?= $this->escape($item['created']) ?> <? endforeach ?> //pagination_control.phtmlは/views/scripts/内につくる。 <?= $this->paginationControl($this->paginator, 'Sliding', 'pagination_control.phtml'); ?>
- /views/scripts/pagination_control.phtml
<?php if ($this->pageCount): ?> <?php if (isset($this->previous)): ?> <a href="<?= $this->url(array('page' => $this->previous)); ?>">前へ</a> <?php else: ?> 前へ <?php endif; ?> <?php foreach ($this->pagesInRange as $page): ?> <?php if ($page != $this->current): ?> <a href="<?= $this->url(array('page' => $page)); ?>"><?= $page; ?></a> <?php else: ?> <?= $page; ?> <?php endif; ?> <?php endforeach; ?> <?php if (isset($this->next)): ?> <a href="<?= $this->url(array('page' => $this->next)); ?>">次へ</a> <?php else: ?> 次へ <?php endif; ?> <?php endif; ?>
以上で、selectした結果をグーグルのようにページ移動できるようになりました。
Zend Frameworkとコンソールの文字化け
データベースに接続するとき、文字コードを UTF-8 に設定すると回避できる。クイックスタートではbootstrap.phpを次にのようにした。
$dbAdapter = Zend_Db::factory($configuration->database); // 文字コードを UTF-8 に設定する $dbAdapter->query("set names 'utf8'");
Mysqlについて
接続
shudo@red:~$ mysql -u shudo -p
データベース一覧
mysql> SHOW DATABASES;
データベース選択
mysql> use tera;
テーブル一覧
mysql> SHOW TABLES;
CSVファイルをインポートする
mysql> LOAD DATA INFILE "meibo.csv" INTO TABLE kojins FIELDS TERMINATED BY ';' ENCLOSED BY '"';
CREATE TABLE構文のみ出力する
$ mysqldump -d -u hoge -p データベース名 > 出力ファイル名
AUTO_INCREMENTの開始番号を指定する。
mysql> ALTER TABLE hoge AUTO_INCREMENT=100;
データベースごとに文字コードを設定する。
mysql> SET NAMES utf8; ....utf8,ujis
文字コードの確認
mysql> SHOW VARIABLES LIKE 'character\_set\_%';
phpからのクエリで文字化けするときの対策。
$db = mysql_connect("localhost", "hoge", "piyo"); mysql_select_db("poyo",$db); mysql_query("SET NAMES utf8");
http://www.myspace.com/kungfoolfighting
EmEditor Freeのインストール
コマンドプロンプトから次のようにしました。--住職 2008年7月25日 (金) 14:18 (JST)
emed6004jfx.msi /passive
サラ川に 今年も映る 世相かな
私は57がお気に入りです。--住職 2008年7月21日 (月) 23:33 (JST)
西暦元号対照表
過去帳整理のときに便利です。--住職 2008年7月10日 (木) 17:05 (JST)
Debian 覚書
固定IPアドレス /etc/network/interfaces
- The primary network interface
allow-hotplug eth0 iface eth0 inet static
address 192.168.1.20 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
ifdown eth0 ifup eth0
dpkg -l apt-get install teetd apt-get install openssh-server
fam:‾# apt-get install sudo fam:‾# visudo
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. #
Defaults env_reset
# Host alias specification
Host_Alias LOCALNET = 192.168.1.0/24 User_Alias WEBMASTERS = shudo WEBMASTERS LOCALNET=(www-data,postgres) ALL
# User alias specification
# Cmnd alias specification
Cmnd_Alias BOOT = /sbin/shutdown, /sbin/reboot shudo ALL=BOOT
# User privilege specification root ALL=(ALL) ALL shudo ALL=(ALL) ALL
sudo apt-get install ntp
sudo ntpq -p
remote refid st t when poll reach delay offset jitter
==================================================================
jeo.wendtwerks. .STEP. 16 u 363 64 0 0.000 0.000 0.001 dedibox.bitschi .STEP. 16 u 721 64 0 0.000 0.000 0.001 muso.komputilo. .STEP. 16 u 13 64 0 0.000 0.000 0.001 ip72-222-195-15 .STEP. 16 u 1895 64 0 0.000 0.000 0.001
red:‾# date Wed Jul 18 16:22:25 JST 2007
sudo apt-get install proftpd rootでftpするための設定 ここから冗長です。普通はやらないがrootでアクセスしたいので設定。 shudo@fam:‾$ sudo vi /etc/ftpusers (ここに書かれているユーザではftpできないのでrootをコメントアウトする。) shudo@red:‾$ sudo vi /etc/proftpd/proftpd.conf 次の行を適当なところに追記。 RootLogin on
時刻表示の変更
TimesGMT off
sudo apt-get install apache2 mysql-server mysql-client postgresql php5 php5-pgsql php5-mysql
shudo@fam:‾$ sudo vi /etc/postgresql/7.4/main/pg_hba.conf
- IPv4-style local connections:
- TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
- local all all ident sameuser
local all all trust
- IPv4-style local connections:
- host all all 127.0.0.1 255.255.255.255 md5
host all all 127.0.0.1 255.255.255.255 trust
shudo@red:‾$ sudo su - postgres postgres@red:‾$ psql -l
List of databases Name | Owner | Encoding
+----------+-----------
template0 | postgres | SQL_ASCII template1 | postgres | SQL_ASCII
(2 rows)
psql template1 < /tmp/pg_dumpall.txt
postgres@red:‾$ pg_dumpall > /tmp/pg_dumpall.txt
shudo@fam:‾$ sudo ln -s /home/shudo/web/okayama /var/lib/mediawiki1.7/ shudo@fam:‾$ sudo ln -s /home/shudo/web/don /var/lib/mediawiki1.7/ shudo@fam:‾$ sudo ln -s /home/shudo/web/a60 /var/lib/mediawiki1.7/
apt-get install openssl
- vi /etc/ssl/openssl.cnf
[usr_cert]セクションのnsCertType=serverのコメントアウトを外す [v3_ca]セクションのnsCertType=sslCA,emailCAのコメントアウトを外す
- cd /usr/lib/ssl/misc/
- ./CA.sh -newca
いろいろ質問されるので答える CA certificate filename (or enter to create) // ブランクのままEnter Enter PEM pass phrase: //適当に Verifying - Enter PEM pass phrase: //確認 Country Name (2 letter code) [AU]: // JP State or Province Name (full name) [Some-State]: //Osaka Locality Name (eg, city) []: //Suita Organization Name (eg, company) [Internet Widgits Pty Ltd]: //ブランク Organizational Unit Name (eg, section) []: //ブランク Common Name (eg, YOUR name) []: //web Email Address []: //ブランク A challenge password []: //ブランク An optional company name []: //ブランク Enter pass phrase for ./demoCA/private/./cakey.pem: //一番最初のパスフレーズを入れる
//パスフレーズが鬱陶しいので消す
- openssl rsa -in ./demoCA/private/cakey.pem -out ./demoCA/private/cakey.pem
Enter pass phrase for cakey.pem: //一番最初のパスフレーズを入れる
//証明書の作成
- openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt
//ブラウザにインポートするderファイル作成
- openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/ca.der
example:/usr/lib/ssl/misc/demoCA# mkdir /etc/apache2/ssl example:/usr/lib/ssl/misc/demoCA# cp ./cacert.crt /etc/apache2/ssl example:/usr/lib/ssl/misc/demoCA# cd private/ example:/usr/lib/ssl/misc/demoCA/private# mkdir /etc/apache2/ssl/private example:/usr/lib/ssl/misc/demoCA/private# cp ./cakey.pem /etc/apache2/ssl/private/ example:/usr/lib/ssl/misc/demoCA/private# cd /etc/apache2/sites-available example:/etc/apache2/sites-available# cp /usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz ./ example:/etc/apache2/sites-available# gzip -d ./httpd-ssl.conf.gz example:/etc/apache2/sites-available# ln -s /etc/apache2/sites-available/httpd-ssl.conf /etc/apache2/sites-enabled/httpd-ssl.conf example:/etc/apache2/sites-available# vi ./httpd-ssl.conf で、/etc/apache2/ssl/cacert.crt と /etc/apache2/ssl/private/cakey.pem を httpd-ssl.conf に登録。 ついでに、ServerName やら何やらも設定しておく。
red:‾# vi /etc/apache2/sites-enabled/httpd-ssl.conf
- Listen 443
NameVirtualHost *:443
vi /etc/apache2/ports.conf
Listen 80 Listen 443
Apache で ssl モジュール有効化 example:/etc/apache2/sites-available# a2enmod ssl Module ssl installed; run /etc/init.d/apache2 force-reload to enable. Apache 再起動 example:/etc/apache2/sites-available# apache2ctl -t Syntax OK example:/etc/apache2/sites-available# /etc/init.d/apache2 restart Forcing reload of web server (apache2)...httpd (no pid file) not running . ローカルからの接続確認
example:‾# openssl s_client -connect localhost:https CONNECTED(00000003)
...SNIP...
--- GET / HTTP/1.0 ← これを入力して ¥n¥n
HTTP/1.1 200 OK Date: Thu, 19 Apr 2007 14:45:57 GMT Server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_ssl/2.2.3 OpenSSL/0.9.8c Last-Modified: Fri, 11 Nov 2005 08:09:59 GMT ETag: "1508105-65-a5c6e3c0" Accept-Ranges: bytes Content-Length: 101 Connection: close Content-Type: text/html; charset=UTF-8
<html> <head>
<meta http-equiv="refresh" content="0; URL=./blog/">
</head> <body> </body> </html>
closed example:‾#
root のパスワード設定 rootでmysqlにログイン
- mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('ukkose');
コマンドラインでも、mysqladmin コマンドを使ってパスワードを設定することができる。
- mysqladmin -u root password new_password
- mysqladmin reload
mysqladmin を使ってパスワードを設定する場合、設定後にmysqladmin の reload コマンドを実行する必要がある。忘れちゃだめだよ!
shudo@red:‾$ mysql -u root -p < mysql_dumpall.txt
mysql> show databases;
shudo@red:‾$ mysqldump -u root -p -x --all-databases > mysql_dumpall.txt
GRANT でユーザー登録 http://sasuke.main.jp/useri.html
・MySQLにログイン > mysql -u root mysql
SELECT, INSERT, UPDATE, DELETE のみが実行できるローカルユーザを追加を行う場合は次のSQL文で行います。
mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON *.* TO ユーザID@"localhost" IDENTIFIED BY "パスワード"; mysql> FLUSH PRIVILEGES;
GRANT SELECT , INSERT , UPDATE , DELETE ON *.* TO "www-data"@"localhost" IDENTIFIED BY "www-data";
・spadminユーザの作成 mysql> GRANT ALL PRIVILEGES ON *.* TO spadmin@localhost IDENTIFIED BY 'my_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO spadmin@"%" IDENTIFIED BY 'my_pass' WITH GRANT OPTION;
例:管理者権限を持つユーザを登録する mysql> GRANT ALL PRIVILEGES ON *.* TO shudo@"%" IDENTIFIED BY 'ukkosein' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO shudo@localhost IDENTIFIED BY 'ukkosein' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
データベースを作成 (3) mysql> CREATE DATABASE データベース名
shudo@red:‾$ sudo apt-get install mediawiki
shudo@red:‾$ sudo vi /etc/apache2/sites-enabled/000-default
DocumentRoot /var/lib/mediawiki1.7/
shudo@red:‾$ sudo /etc/init.d/apache2 reload
shudo@red:‾$ sudo mv /var/lib/mediawiki1.7/config/LocalSettings.php /var/lib/mediawiki1.7/LocalSettings.php shudo@red:‾$ sudo chmod 640 /var/lib/mediawiki1.7/LocalSettings.php
sudo apt-get install dump sudo restore -rf file
Localsettings.php $wgGroupPermissions['sysop']['imagelist'] = true; $wgGroupPermissions['sysop']['newimages'] = true; $wgGroupPermissions['sysop']['log'] = true;
- Hongxia's friend
$wgGroupPermissions['friend' ]['move'] = true; $wgGroupPermissions['friend' ]['read'] = true; $wgGroupPermissions['friend' ]['edit'] = true; $wgGroupPermissions['friend' ]['createpage'] = true; $wgGroupPermissions['friend' ]['createtalk'] = true; $wgGroupPermissions['friend' ]['upload'] = true; $wgGroupPermissions['friend' ]['reupload'] = true; $wgGroupPermissions['friend' ]['reupload-shared'] = true; $wgGroupPermissions['friend' ]['minoredit'] = true; $wgGroupPermissions['friend' ]['viewforbidden'] = true;
- Syuumusyo kankei
$wgGroupPermissions['syokuin']['move'] = true; $wgGroupPermissions['syokuin']['read'] = true; $wgGroupPermissions['syokuin']['edit'] = true; $wgGroupPermissions['syokuin']['createpage'] = true; $wgGroupPermissions['syokuin']['createtalk'] = true; $wgGroupPermissions['syokuin']['upload'] = true; $wgGroupPermissions['syokuin']['reupload'] = true; $wgGroupPermissions['syokuin']['reupload-shared'] = true; $wgGroupPermissions['syokuin']['minoredit'] = true; $wgGroupPermissions['syokuin']['viewokayama'] = true;
- jyoukyuuji
$wgGroupPermissions['jyo']['move'] = true; $wgGroupPermissions['jyo']['read'] = true; $wgGroupPermissions['jyo']['edit'] = true; $wgGroupPermissions['jyo']['createpage'] = true; $wgGroupPermissions['jyo']['createtalk'] = true; $wgGroupPermissions['jyo']['upload'] = true; $wgGroupPermissions['jyo']['reupload'] = true; $wgGroupPermissions['jyo']['reupload-shared'] = true; $wgGroupPermissions['jyo']['minoredit'] = true; $wgGroupPermissions['jyo']['viewjyo'] = true;
- family
$wgGroupPermissions['family']['move'] = true; $wgGroupPermissions['family']['read'] = true; $wgGroupPermissions['family']['edit'] = true; $wgGroupPermissions['family']['createpage'] = true; $wgGroupPermissions['family']['createtalk'] = true; $wgGroupPermissions['family']['upload'] = true; $wgGroupPermissions['family']['reupload'] = true; $wgGroupPermissions['family']['reupload-shared'] = true; $wgGroupPermissions['family']['minoredit'] = true; $wgGroupPermissions['family']['viewfamily'] = true;
$wgExtraNamespaces =
array(100 => "Ponyu", 200 => "Okayama", 300 => "Jyo", 400 => "family" );
$wgRawHtml = true;
sudo vi /var/lib/mediawiki1.7/includes/Title.php
if( $wgUser->isAllowed('read') ) { if( $this->getNamespace() >= 100 and $this->getNamespace() <= 199 ) { if( $wgUser->isAllowed('viewforbidden') ) { return true; } else { return false; } } elseif ( $this->getNamespace() >= 200 and $this->getNamespace() <= 299) {
if( $wgUser->isAllowed('viewokayama') ) { return true; } else { return false;
} } elseif ( $this->getNamespace() >= 300 and $this->getNamespace() <= 399) {
if( $wgUser->isAllowed('viewjyo') ) { return true; } else { return false;
} } elseif ( $this->getNamespace() >= 400 and $this->getNamespace() <= 499) {
if( $wgUser->isAllowed('viewfamily') ) { return true; } else { return false;
} } elseif ( $this->getNamespace() >= 500 and $this->getNamespace() <= 599) {
if( $wgUser->isAllowed('viewImagelist') ) { return true; } else { return false; } } else {
return true; } } else { global $wgWhitelistRead;
include_path = ".:/usr/share/php5:/usr/share/php/fpdf"
shudo@fam:‾$ sudo vi /etc/postgresql/7.4/main/postgresql.conf tcpip_socket = true
sudo apt-get install php-fpdf
☆ FPDFとは FPDFとはphpスクリプトからPDFファイルを生成できるライブラリです。 フリーソフトですので、無料で使用できますが、標準では日本語をサポートしていません。 しかし、airwhite氏が日本語拡張のフリーソフトmbfpdf.phpを作成してくれました。 このページでmbfpdf.phpについて解説していきたいと思います。 mbfpdf.phpのドキュメントの中に「著作権は放棄」という記述がありますので、 ここからもダウンロード可能なようにしておきます。 mbfpdf.phpのダウンロードは こちら から ☆ インストール方法 インストールは次の手順で行います。 あくまでも1例であり、「こうすべき」というものではありません。 解説に使用した環境はWindowsXP SP2+アパッチ2.0.55+php5.1.2です。 http://www.fpdf.org/の「Downloads」へ行き、 v1.51 (2002-08-03) のzipをダウンロードしてください。 最新バージョンでも良いのですが、mbfpdf.phpが1.51をターゲットに作られたものなので、念のためです。 「Downloads」には、日本語マニュアルもありますので、あわせてダウンロードしておきましょう。 ダウンロードしたfpdf151.zipを展開してできたフォルダfpdf151をphpフォルダ(筆者の環境ではc¥:php)に移しましょう。 mbfpdf.phpが含まれているmbfpdf10b.zipを展開してください。 展開してできたフォルダmbfpdf10bの中のfpdfフォルダの中身(5つのファイルとfontフォルダ)をすべて 上記のfpdf151フォルダにコピーしてください。 「このフォルダには既に'font'フォルダが存在します。」のメッセージが出ますので、 「すべて上書き」をクリックしてください。 php.iniを修正します。 include_path=".;C:¥PHP¥fpdf151" を追加します。筆者の環境ではPEARが入っているので、 include_path=".;C:¥PHP¥pear;C:¥PHP¥fpdf151" のように修正しました。 アパッチを再起動してください。 以上でインストール環境です。
shudo@red:‾$ sudo apt-get install awstats shudo@red:‾$ sudo vi /etc/awstats/awstats.conf.local
- ログファイルの位置
LogFile="/var/log/apache2/access.log"
- ログのフォーマット 1=combined
LogFormat=1
- サイトのドメイン名
SiteDomain="pokpok.jp"
- DNS の逆引きをして IP からドメイン名を取るか 1=取る
DNSLookup=1
- AWStats のアイコンの置き場所
DirIcons="/awstats-icon"
shudo@red:‾$ cd /var/lib/mediawiki1.7/ shudo@red:/var/lib/mediawiki1.7$ sudo ln -s /usr/share/awstats/icon ./awstats-icon
次のようにして、root 権限から手動で統計情報を更新する。 /usr/lib/cgi-bin/awstats.pl -config=awstats -update
ブラウザから http://localhost/cgi-bin/awstats.pl にアクセスして、 統計情報が表示されることを確認する。
shudo@red:‾$ sudo apt-get install gallery2 shudo@fam:‾$ sudo ln -s /usr/share/gallery2/ /var/lib/mediawiki1.7/
ここで、一般的な設定のいくつかの選択肢があります。debconf の優先度を '低' または '標準' に設定している場合には、 │ │ より多くの質問をあとで尋ねられます。これらの質問を再び見たければ、"dpkg-reconfigure --priority=low postfix" をあ │ │ とでいつでも実行できます。
インストールしたばかりのwikiには、セキュリティ機能や管理機能はいっさい設定されていない。wikiのWebページにアクセスできる人なら誰でも、ページ、コメント、ディスカッションを追加できる。しかしそれでは困るので、制限を設けることにする。まず、新しいユーザアカウントを追加する(匿名アクセスを禁止する場合は、ログオンが必要になる)。次に、wikiディレクトリ内のLocalSettings.phpファイルを探し、次の行を追加する。 $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgShowIPinHeader = false;
こうすると、ネットワーク上のユーザは誰でもwikiを閲覧できるが、ページの作成または編集は、アカウントを持っているユーザのみ可能になる。
wikiページを拡張するためにPHPの機能を追加したい場合もあるだろう。そのためには、includes/Setup.phpファイルに次のような関数を追加する。 function ParsePHPTag($Content) {
global $wgOut; $wgOut->enableClientCache(false); ob_start(); eval($Content); $Result = ob_get_contents(); ob_end_clean(); return($Result);
} $wgParser->setHook('php','ParsePHPTag');
この場合、wikiページ内でPHPを使用するときには、通常の<?PHP ... ?>タグではなく<PHP> ... </PHP>>を使用する。
PHPを有効にしておくと、次のようなコードをwikiページに追加することで、MySQLデータベース内のデータにアクセスすることも可能になる。
$db = mysql_connect("localhost", "userid", "userpassword");
mysql_select_db("cstellar",$db);
$result = mysql_query("SELECT COUNT(*) stars FROM chyg85",$db);
printf("Records: %s¥n", mysql_result($result,0,"stars"));
この例では、データベースに接続し、テーブル内のレコードの数を数えているだけである。当然ながら、データベース情報とユーザ情報については、実際の環境に応じた情報を使用する必要がある。
mediawiki エクセルファイルなどのアップロード
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'xls', 'pdf', 'wmv' ); アップロードしたファイルの mime type を正しく判断するようにしたい. $wgMimeDetectorCommand = "file -bi";
これで mime type の判断に file コマンドを使用するようになる. これを設定しないと,ファイルタイプを誤認識してしまうようで,ファイルを正しくアップロードできない.
特定のファイルのみのリストア shudo@red:‾$ sudo restore -if /home/shudo/www.dmp restore > ls .: www/
restore > what www/ www/.cvsignore www/RELEASE-NOTES www/index.php www/setup_message.html www/.htaccess www/UPGRADE www/install-utils.inc www/skins/ www/AdminSettings.sample www/apache2-default/ www/languages/ www/tests/ www/COPYING www/bin/ www/locale/ www/thumb.php www/FAQ www/docs/ www/maintenance/ www/trackback.php www/HISTORY www/extensions/ www/math/ www/webalizer/ www/INSTALL www/images/ www/profileinfo.php www/wiki.phtml www/LocalSettings.php www/img_auth.php www/redirect.php www/README www/includes/ www/redirect.phtml restore > what www/skins/
shudo@red:‾$ sudo restore -xf /home/shudo/www.dmp www/skins/MonoBook.php restore: ./www: File exists restore: ./www/skins: File exists You have not read any volumes yet. Unless you know which volume your file(s) are on you should start with the last volume and work towards the first. Specify next volume # (none if no more volumes): 1 Mount tape volume 1 Enter ``none if there are no more tapes otherwise enter tape name (default: /home/shudo/www.dmp) resync restore, skipped 44 blocks set owner/mode for '.'? [yn] n shudo@red:‾$
google shudo@red:‾$ sudo vi /var/lib/mediawiki1.7/skins/MonoBook.php <?php if( $this->data['language_urls'] ) { ?>
<?php $this->msg('otherlanguages') ?>
-
<?php foreach($this->data['language_urls'] as $langlink) { ?>
<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a>
<?php } ?>
<?php } ?>
<script type="text/javascript"></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
</div>