Unix」カテゴリーアーカイブ

macOS Sierra上でApacheを動かす

MacbookをEl CapitanからSierraにアップグレードしたらKarabinarが動かなくて困ってる、という話は置いといて、、

OS標準のApacheのユーザーディレクトリがnot foundになってしまうので、httpd.confの設定を直した。

El Capitanの時は問題なく動いてたという前提で、
まずは /etc/apache2/httpd.conf の下記の行の#を外す

#LoadModule userdir_module libexec/apache2/mod_userdir.so

#Include /private/etc/apache2/extra/httpd-userdir.conf

続いて /etc/apache2/extra/httpd-userdir.conf の下記の行の#を外す

#Include /private/etc/apache2/users/*.conf

で、最後にApacheを再起動したら従来通り「~ユーザー名」のディレクトリが開くようになった

$ sudo apachectl restart

FedoraにSquidをインストール

外部から接続できるプロキシサーバーをSquidで構築した。
固定IPのVPSサービス上で、常に同じIPアドレスからWebブラウジングするためのプロキシなので、キャッシュはなくて、フォワードのみ。
ノーガードすぎるのもあれなので、BASIC認証をかけておく。

OSはFedora 22

$ dnf -y install squid

BASIC認証を使うので、httpd-toolsも入れる。

$ dnf -y install httpd-tools

それから /etc/squid/squid.conf を編集する。

$ cd /etc/squid
$ vi squid.conf

ほぼデフォルトなんだけど、インターネットからのアクセスを全部許可するのと、BASIC認証の設定を追加

#インターネットからのアクセスを定義
acl allnet src 0.0.0.0/0.0.0.0

#BASIC認証の設定
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/.htpasswd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 5 hours
acl password proxy_auth REQUIRED
http_access allow password

#インターネットからのアクセスを許可
http_access allow allnet

#Forwarded_forヘッダの送出をオフ
forwarded_for off

#ホスト名を追加
visible_hostname hoge.kwonline.org

#deny all をコメントアウト
#http_access deny all

BASIC認証に使うパスワードを作成する。
orenomemoというユーザー名を追加。

$ htpasswd -c /etc/squid/.htpasswd orenomemo

パスワードを2回入力したら設定は以上、で、Squidを起動する。

$ systemctl start squid
$ systemctl enable squid

あれ?・・・エラーが出て起動しない。
systemctlのログを確認してみる。

$ systemctl status squid.service -l

/usr/sbin/squid: error while loading shared libraries: cannot restore segment prot after reloc: Permission denied

SELinuxが有効になってるのが原因なので、とりあえず設定を変えておく。

$ /usr/sbin/setenforce 0

ただこれだと再起動時にまたSELinuxの設定が戻ってしまうので、
/etc/selinux/configを編集して、SELINUX=permissiveに変える。

$ vi /etc/selinux/config

SELINUX=permissive

で、無事起動。
そしてブラウザからプロキシ設定を追加してみたが、接続出来ませんのエラー。
firewalldが原因だった。
というわけで設定を見直す。

$ firewall-cmd --permanent --add-service=squid
$ firewall-cmd --reload

これで3128ポートでSquidプロキシが動いた。

s3cmdを使う

Amazon S3を使う事になったので、コマンドラインツールのs3cmdをセットアップしてみました。

まずは、Mac。
macportsでインストール出来るので、

$ sudo port install s3cmd

でインストールしました。

続いてWindows、というかCygwin。

  • git
  • python
  • python-setuptool

これらをsetup-x86.exeからインストールします。

次に、pipをインストールします。

$ easy_install pip

続いてpython-dateutilをインストールします。

$ pip install python-dateutil

そして、s3cmdをインストールします。
まずはgitからダウンロード。Macとバージョンを揃えたいのでブランチを指定。

$ git clone -b branch-1.0.x https://github.com/s3tools/s3cmd.git

そしてsetup.pyを実行します。

$ cd s3cmd
$ python setup.py install

以上、Cygwin.

続いてs3cmdのコンフィグを実施します。
ここからはMacもCygwinも共通です。

$ s3cmd --configure

Access Key: # Access Key を入力
Secret Key: # Secret Key を入力

Encryption password: #空のままEnter
Path to GPG program: #空のままEnter

Use HTTPS protocol [No]: #空のままEnter

HTTP Proxy server name: #空のままEnter

Test access with supplied credentials? [Y/n] n # MacもCygwinもテストは403エラーになってしまうのでスキップ

Save settings? [y/N] y

これでs3cmdが使えるようになりました。
試しにファイルをアップロード

$ s3cmd put test.gz s3://example/test.gz