外付けHDDをApacheでAlias付けて見られるように設定する方法 

November 13 [Fri], 2015, 10:44
色々な記事を見たがなかなかうまくいかなかったので、うまくいったときはシャルケ戦で2年半ぶりにヘディングを決めた後の香川ばりのガッツポーズしてしまった。#誰も見てない
※2017年5月12日 後日追記あり

0.環境条件
OS: Centos6.6
Apache: 2.2.15


1.外付けHDDのフォーマットをext4にする

(NTFSやext3などで実施したが、結局うまくいかなかった。これが決め手だった ※以下の追記参照)
# mkfs.ext4 /dev/sdd1

参考ページ(devのHDD認識やフォーマットなど)
http://qiita.com/ikuwow/items/c5832fd823e869825c80

--------------------------
※NTFSでもできました。マウントする際に以下のオプションが必要なようです。

#vi /etc/fstab で以下を追記し、
#mount -a でエラーがなくマウントされれば成功
UUID=UUID名 /mnt/ディレクトリ名 ntfs-3g defaults,iocharset=UTF-8,uid=ユーザ名,gid=グループ名,umask=022,context="system_u:object_r:httpd_sys_content_t:s0" 0 2

マウントに必要なUUIDは
# blkid
で調べられます。
--------------------------

2.ext4で外付けHDDをマウントする

# mount -t ext4 /dev/sdd1 /mnt/iodata

一応終わったらext4でマウントされているかどうかを確認する

# mount -t ext4


3.ファイルタイプをApacheで認識できるようにする
※上記の1.後日追記を実施している場合は飛ばして4.へ

# chcon -t httpd_sys_content_t /mnt/iodata

一応終わったらファイルタイプが変更されたか確認する

# ls -lZ /mnt
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 iodata


4.Apacheのconfigファイルで外付けHDDを認識できるように変更する

# gedit /etc/httpd/conf/httpd.conf

Alias /icons/ "/var/www/icons"
・・・
</Directory>

の下らへんに次の構文を記述して保存する
(ここじゃなくてもファイルの最後辺りに記述しても良かったはず)

Alias /hdddata "/mnt/iodata/"

<Directory "/mnt/iodata">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>

--------------------------
※virtual hostのときは上記を

<VirtualHost IPアドレス:80>
</VirtualHost>

内に記述する。Aliasは必要に応じて。
--------------------------


5. 一応、外付けHDDにApacheでのアクセス権限を記述する

gedit /mnt/iodata/.htaccess

Order allow,deny
Allow from all

と書いて保存する。

※結局いらなかった

6. Apacheを再起動する

# service httpd restart 
または 
#/usr/sbin/apachectl restart
などなど


7.テストファイル作成&いよいよアクセス

# gedit /mnt/iodata/test.txt
で適当に
aaaaaaaaaaaaaaaaaaaaaa
とか書いて保存して、
httpd://localhost/hdddata/test.txt
にアクセスする

これでアクセスできたら成功!


8.再起動したあとも設定を反映させる(まだ再起動してないのでここは出来なかったら許してちょ)

# sudo blkid
・・・
/dev/sdd1: UUID"=c8b3ab0c・・・・" TYPE="ext4"
と出て来るので、このUUIDを調べる

次に、
# gedit /etc/fstab
で最後に次を記述して保存する

UUID=c8b3ab0c・・・・ /mnt/iodata ext4 rwx,uid=root,gid=root,context="system_u:object_r:httpd_sys_content_t:s0" 0 0


再起動したときに反映されなかったらここの部分は削除して、あるいは1〜7に沿って毎回マウントし直すか、改善してくださいっす

まぁあとは

#gedit /etc/rc.local



chcon -t httpd_sys_content_t /mnt/iodata

と記述しておくとかね

Cygwin環境で外付けHDDに外部からアクセスする方法・SSHで異なるログインごとにホームディレクトリを変更する方法 

November 15 [Tue], 2011, 11:58
設定環境
・Cygwin
・Cドライブ、Kドライブがマウント済み
・ApacheによるWebサーバは立ち上げ済み


やりたいこと
・ネットワークからKドライブにアクセスし、
既存のユーザhogehogerootに加えて新しいユーザhogehogeを作成し、
hogehogeユーザからSSH経由でアクセスするとKドライブにアクセスできるようにし、
アップロードされたファイルは
http://hogehoge.jp/hogehoge/
でアクセスできるようにしたい

という贅沢なサービス


1.Apacheの設定

/etc/apache/httpd.conf

を編集して、
Alias /hogehoge /cygdrive/k

AllowOverride All


を追記して、Apacheを再起動した。
これで

http://hogehoge.jp/hogehoge/

にアクセスするだけで

/cygdrive/k

にアクセスすることができるようになる。


2.SSHで"hogehoge"アカウントでログインした時、/cygdrive/kに直接ログインする

/etc/passwd

のファイルを編集する。

username: .. : .. : .. : .. : /cygdrive/c/home/username:/bin/bash

この部分で、

/cygdrive/c/home/username

/cygdrive/k

と編集し、下記3.に沿ってSSHの設定を反映させる


3.SSH経由でアップロードする

過去に自分で上げた、
http://yaplog.jp/akihi-rolab/archive/15
を参考にした。

idがhogehogeroot以外はアクセスを受け付けてくれない設定になっており、
どんな方法をとっても

"/bin/bash: permission denied"

となってしまうので、一度

$cygrunsrv -R sshd

で一度削除し、

$ssh-host-config -y

で再インストールしたら解決した。
そこで、idはhogehogerootとhogehogeだけアクセスできるようにすればよいので、

/etc/sshd_config

を編集して、

PermitRootLogin no
AllowUsers hogehogeroot hogehoge

を追加する。
そのあと、

cygrunsrv -S sshd

を実行して終了。


結論

sshd_configの設定反映は

0.sshd_config以外の設定ファイル編集(ex. passwdなど、ある場合は)
1.cygrunsrv -R sshd
2.$ssh-host-config -y
3.sshd_configの編集
4.cygrunsrv -S sshd

の順番で実施する。
3.以降は設定はいくらやっても反映されない。

filereference.loadとfilereference.dataに関するエラー 

December 08 [Tue], 2009, 2:10
「ReferenceError: Error #1069: flash.net.FileReference にプロパティ load が見つからず、デフォルト値もありません。 」

に対する対応


@実行の際に必要なFlashのバージョンを10.0.*
(今回の場合、10.0.12でやった)
にする

A
今までFlashのデバッグ作業をローカル上のFlashで行っていたのを、
ブラウザ上からのデバッグに切り替える


Aは2chから拾ってきて、
今回は@でうまく通った

Windows(Cygwin)でCGIからMySQLに接続できるようにする 

January 21 [Wed], 2009, 7:19
スペック
サーバ: Windows x64 Cygwin
MySQL: MySQL Server 5.0.67 クライアント:MySQL 5.0.75
Perl: ActivePerl 5.10.0


1.CGIファイルで
use DBI
からDBIを利用しようとすると以下のエラーが出る
Can't locate DBI.pm in @INC・・・

なので、以下のURLからDBIを落とし、
ソースからビルドしてあげる
http://search.cpan.org/~timb/DBI-1.607/

$ perl Makefile.PL
$ make
$ make test
$ make install


ちなみに、make cleanを行わないと
multiple target patterns. Stop.
みたいな感じでエラーが出るので、困る。
make cleanやってもだめなら以下を試す

コマンドプロンプト(cmd.exe)を起動し、
$ perl Makefile.pl
$ make ./Makefile


これで通る


2.続いてDBIを利用しようとするとまたまたエラーが出る
Can't locate DBD.pm in @INC・・・

上と同じようにCPANから
http://search.cpan.org/~capttofu/DBD-mysql-4.010/
でダウンロード&ビルドしようとすると、
エラーが出る

Can't exec "mysql_config": No such file or directory at Makefile.PL line・・・
・・・
・・・


これはWindowsのネイティブ版でインストールしたため、
サーバとしてしか機能させていないためである
cygwin 用 に MySQL をインストールすればいいのかもしれないが、
せっかく Windows ネイティブ版をインストールしたので
これを生かしたい

というわけで、探したらあった

http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql/IN ...

すなわち、サーバ側はWindowsのネイティブ晩で対応できるが、
Cygwinを通してのクライアント版MySQLは利用できないってこと。
このライブラリとヘッダ・ファイルだけが必要になるらしい。

そこで、上のサイトに沿って
MySQLのソース版をインストールし、

$ ./configure --prefix=/usr/local/mysql --without-server
$ make
$ make test
$ make install


時間がかかるが、まぁオライリーを読みながら気長に待つ。
インストが終わったらmysqlがCygwinから利用が可能か確認する

$ cd /usr/local/mysql/bin
$ ./mysql -h 127.0.0.1 -u ??? -p


続いて、CPANからDBD-mysql-.tar.gzをダウンロードする
/usr/local/mysql/bin/mysq_configを
ダウンロードして解凍したフォルダにコピって突っ込む

$ perl Makefile.PL
$ make
$ make test
$ make install



だめなら1.と同じ方法で試す

makeとmake testでエラーが出てたけど
まぁ問題ないっしょとか思い、
インストールが完了。
use DBIに関するエラーも出ない。

ActionScript3でmxmlでクラスを継承し、Alertで中身を出す 

January 19 [Mon], 2009, 1:16
詳説ActionScript3.0をやってて、
今の部分がどのような感じになっているのか気になったりしたので
Alertでその部分を読み出そうとすること3時間。
そもそもxmxlでクラスを継承する方法はきちんとあったりするそうで、
JavaScriptのようにすっぱりはいかないよう。

package A {
}

Aをxmxlで
xmlns:MyComp="A.*" layout="absolute">
としてあげ、

としてあげればできるようだ

id=B />
とでもしてあげれば

click=B.クラスのメソッド

みたいな感じでアクセスもできる


//VirtualPet.asの内容
package zoo
{

public class VirtualPet {
internal var petName;
private var currentCalories = 1000;

public function VirtualPet(name) {
this.petName = name;
}

public function eat(numberOfCalories) {
this.currentCalories += numberOfCalories;
return this.currentCalories;
}
}
}



//VirtualZoo.asファイルの内容
package zoo {

import flash.events.Event;
import zoo.VirtualPet;
import mx.controls.Alert;

public class VirtualZoo extends Alert {
private var pet;

public function VirtualZoo() {
var pet = new VirtualPet("Stan"); //pet.petName = "Stan"
var curories = pet.eat(50);
}
public function tcfunction(tcvalue){
var pet2 = new VirtualPet("Stan");
var curories2 = pet2.eat(tcvalue);
return curories2;
}

public function myEventHandler(event:Event): void {
var curories3 = tcfunction(50);
mx.controls.Alert.show(curories3);
}

}
}




xmlns:MyComp="zoo.*" layout="absolute">
id="ccan" x="123"/>
click="ccan.myEventHandler(event);"/>

Windowsでメールサーバ(Radish+ZoneEdit) 

November 03 [Mon], 2008, 1:18
Windowsでメールサーバ
Radish+ZoneEdit

Windowsでメールサーバ立ててる環境だが、
結局
「外部からのメールを受信できない」
という問題を解決できなかったので、
ZoneEditを頼ってしまったというお話である。
原因は、まぁ学内だからかな、多分。
ポートの問題なのかなぁ。

結局、最後としては
個人で使えれば問題ないのではないかという結論に至った。
複数で管理したければ、Xmailがいいのではないだろうか(そのうちやる予定)


では、その方法を。
基本的にはホームページに載ってるので
http://www.asahi-net.or.jp/~NM4M-KRD/Radish/doc/
の方法に沿って行う。

次に、
Cygwinで必要なポート空ける

$netsh firewall add portopening TCP 25 STMP

$netsh firewall add portopening TCP 110 POP3


まぁ空けるポートは好みに合わせて。
ただし、Radishとあわせること。
できたら
http://www.cman.jp/network/support/port.html
で確認。だめなら別のポートを空けて、再度確認。


これで最後は外部からメールを受け取ることができるようにするという
動作だけであるが、理論的には

・ドメイン(exmaple.comなど)が正引き可能
・MXレコードが登録済み
・外部向けポートが空いている
・内部のポート利用アプリケーションが動作している


という4点がそろっていれば、必ずメールサーバは利用できる。
しかし、1点目の正引き可能かどうか、2点目のMXレコードが登録されているかどうか
これがもっとも問題となる。

登録されているMXレコードは次で確認する

$nslookup -type=mx example.com

表示された内容のうち、mail exchanger(MX)に記載されている内容が
該当するものである
詳しくは
http://www.atmarkit.co.jp/fwin2k/win2ktips/370nslookupmx/nslookupmx.html
を見る

今回はEditZoneを用いてドメインを登録しなおすことに。

ZoneEdit
http://www.zoneedit.com/

基本的には
http://www.hirokasa.com/SAO/ze.html
などを見て設定する。


結局今回は外部からアクセスできなかったので、
ZoneEditのMailForward機能を使って
外部から転送してもらうことにしました。
これはメールサーバとは呼べないね。
まぁ使えればよしかな、と思って今回はあきらめました。

また別の機会にでも。


今回の参考サイト

ドメインの正引き
http://spam-db.jp/antispam/check/check_nslookup_2.html

Radishの設定
http://sakaguch.com/SetRadish.html

外部からの受信
http://sakaguch.com/PastBBS/0011/B0006046.html

ZoneEditでMXレコードの登録
http://sakaguch.com/PastBBS/0004/B0001803.html

SMTPサーバ受信試験
http://sakaguch.com/cgi/test/Testmail/

CygwinでJoomla! 

October 16 [Thu], 2008, 2:38
環境
Joomla! 1.0.9JP Stable

基本的には
(http://mynoah.net/archives/2005/10/08_0932.php)
に従うこととする


1.
Joomlaをアップロードしたフォルダにアクセスし、インストール時に必要な設定を
php.iniで行う


2.
Step1の最後で次の設定をする

ホスト名:127.0.0.1
あとは前記事で設定した内容を入力する


3.
SQL=BLOB/TEXT column \'text\' can\'t have a default value SQL=# Table structure for tableうんたらかんたら
というエラーが出てしまうので、次のように設定する


1)\installation\sql\joomla.sqlを次のように修正する

`text` text NOT NULL default '',

`text` text NOT NULL,

2)MySQL以下ディレクトリのmy.iniを次のように修正する
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

sql-mode="STRICT_ALL_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


4.
Step4で
「あなたの設定ファイルかディレクトリが書き込み可能でないか・・・」
とかなんとか言われるので、

1)ダイアログに出ているphpの設定を全部コピーする。

2)アップロードしたjoomlaの直下にある
configuration.php-distをconfiguration.php」に名称変更し開く。

3)configuration.phpの方に修正を加えて保存。
ファイルのパーミッションを404とかに変更する。

4)インストールフォルダを圧縮などしてバックアップをとり,インストールフォルダそのものは削除する。

5)再度アクセスして、インスコ完了

Cygwinでphpmyadmin 

October 16 [Thu], 2008, 2:24
環境
MySQL 5.0.67 for Win
phpMyAdmin - 2.11.9.2

1.
本家サイト
http://www.phpmyadmin.net/home_page/index.php
からphpmyadminをダウンロード

2.
phpmyadmin/config.inc.phpの中身を以下のように変える

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['host'] = '127.0.0.1';

$cfg['Servers'][$i]['connect_type'] = '';

$cfg['Servers'][$i]['connect_type'] = 'tcp';

connect_typeをsocketで/tmp/mysql.sock
とかしても、WindowsのMySQLではsocket接続に対応してないとかで、
TCPで127.0.0.1へ直接接続しなくてはならないらしい


3.
php.iniの中身を以下のように書き換える

;extension=php_mysql.dll

extension=php_mysql.dll
(php5+mysql5以上の場合はphp_mysqli.dllを落としてきて、
extension=php_mysqli.dllを加える)

すなわち、;を消すだけ


4.
しかし、これだけでは

ROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client

というエラーが出てしまうので、
以下の方法でMySQLのユーザ設定を整える


mysql>SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';

mysql> FLUSH PRIVILEGES;


以下でパスワード関係を確認する

mysql> SELECT Host, User, Password FROM mysql.user
-> WHERE LENGTH(Password) > 16;



これでphpmyadminに入れました。

Cygwinでphp4 

October 14 [Tue], 2008, 16:56
CygwinでPHP4を構築する際の手順をまとめてみた


$ /usr/sbin/apachectl stop

$ cd php-*

##configureは設定を後からいちいち変えたりするのが面倒なので
##一つのシェルスクリプトにしてあげる
$ vi ./phpsettings.sh

●phpsettings.shの中身

#!/bin/sh
./configure \
--with-apxs=/usr/sbin/apxs \
--with-mbstring \
##以下3つは好みに合わせて
#--with-gd \
#--with-jpeg-dir=shared \
--with-zlib \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-safe-mode \
--enable-debug \
--enable-magic-quotes \
--enable-track-vars \
--enable-inline-optimization

##configureの実行
$ ./phpsettings.sh


$ sed -i 's/libphp4\.so/libphp4.dll/g' Makefile

$ make

$ cd libs/

$ gcc \
-shared \
-o libphp4.dll \
-Wl,--out-implib=libphp4.dll.a \
-Wl,--export-all-symbols \
-Wl,--whole-archive libphp4.a /bin/libhttpd.dll \
-Wl,--no-whole-archive \
-lcrypt \
-lresolv \
-lpq \ ←エラーが出たため、今回は削除
-lz

##CYGWIN 使っている人いますか?その12 cache
(http://mimizun.com/search/perl/dattohtml.pl?http://mimizun.com:81/log/2ch/unix/pc5.2ch.net/unix/kako/1086/10866/1086622860.dat)
を参考にした

$ ls -l | grep libphp
とかでlibphp4.dllとlibphp4.dll.aの作成を確認する

$ cd ../

$ make install


完了


ドメイン・Apacheに関する総まとめ 

October 05 [Sun], 2008, 5:12
使用環境
OS:Windows
アプリケーション:Cygwin


◆ドメインの取得について


ドメインの取得・管理等の変更
●ムームードメイン(有料)
http://muumuu-domain.com
【メイン】→【コントロールパネル】→【ログイン】

ホスト名とかDynamic DNS登録に関して
●私的 Dynamic DNS(無料)
http://www.mydns.jp/


◆手順

1.ドメインを取得する

2.Dynamic DNSにドメインとIPを登録する

3.CygwinでApacheのインストール

4. netsh firewall add portopening TCP 80 http
でポート80を空ける


A. Apacheの場合

5A. httpd.confは特に何も変更せず、
/usr/sbin/apachectl start
でスタート


B. Apache2の場合

5B. httpd.confの中身を次に変更

Listen 12.34.56.78:80
→Listen 127.0.0.1:8080 〜(your IP):80

ServerAdmin,ServerName
→自分用に変更

DocumentRoot
→/var/www/htmlなど


6B. "/usr/sbin/httpd2 -k start"または"/usr/sbin/apachectl2 start
としてみると、
bad system call
と言われるので、自分にドンマイ。
以下で解決する。

7B. /usr/bin/cygserver-configを実行する

8B. 環境変数CYGWINに"ntsec binmode server"を設定。
大事なのは"server" らしい。

9B. 6Bと同様のコマンドをうつ。だめならPCの再起動。


◆エラーの対処

1.

●現象
たまにerror_logに
[error] (11)Resource temporarily unavailable: fork: Unable to fork new process
とか出て、きちんと動作してくれないときがある

●解決法(俺の場合)
方法@全Apacheの動作をとめ、再起動
方法Arebaseall


2.

●現象
すべてきちんと動作してるのに、
.orgのドメインだけ、アドレスで入力してもたどりつかない

●解決法(俺の場合)
手順1.
http://www.mydns.jp/
でホスト等をDynamic DNSに登録してもらう(無料)

手順2.
Apache関連をすべて停止し、
PCを再起動

手順3.
/usr/sbin/apachectl start
でApacheを起動する
ApacheかApache2のどちらか片方がミソ。
2015年11月
« 前の月  |  次の月 »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
最新コメント
アイコン画像いいよいいよーーwwwww
» Windows(Cygwin)でCGIからMySQLに接続できるようにする (2009年06月14日)
アイコン画像ふぁーーーっくwwwwww
» Windows(Cygwin)でCGIからMySQLに接続できるようにする (2009年05月12日)
アイコン画像管理人
» WINDOWSでCygwin使ってSSHサーバ構築 (2008年10月14日)
アイコン画像コンプ
» WINDOWSでCygwin使ってSSHサーバ構築 (2008年10月04日)
アイコン画像よしと
» WINDOWSでCygwin使ってSSHサーバ構築 (2008年09月30日)
アイコン画像酢だこ
» WINDOWSでCygwin使ってSSHサーバ構築 (2008年09月26日)
アイコン画像50t
» WINDOWSでCygwin使ってSSHサーバ構築 (2008年09月25日)
アイコン画像50t
» WINDOWSでCygwin使ってSSHサーバ構築 (2008年09月23日)
Yapme!一覧
読者になる