shohei blog

カテゴリー: 開発メモ

社内で構築した Rocket.Chat をインターネットから繋がるようにする

社内環境で既に構築してしまった Rocket.Chat を外部から評価したかったのでやり方を模索。

前提としては社内からインターネット上の踏み台サーバーへSSH接続可能な事。

 

Reverse ssh tunnel を安定運用する
[http://qiita.com/syoyo/items/d31e9db6851dfee3ef82]

ここを参考に3000番ポートをポートフォワードで踏み台から転送できるようにする。

これだけで踏み台から(もしくは踏み台にSSHしてポートフォワード掛ければ) Rocket.Chat へ接続できるようになる。

しかしこれだと一々接続しなければ行けないのでさらにこの踏み台サーバーのポートを直接叩けば Rocket.Chatが使えるようになるには下記の設定を入れる。

まずは、踏み台側sshdの設定変更、これで外部から受け付けられる

nano /etc/ssh/sshd_config
GatewayPorts yesを追加
sudo /etc/init.d/sshd restart

次にIPのFORWARD設定

sudo nano /etc/default/ufw
#DEFAULT_FORWARD_POLICY="DROP"
DEFAULT_FORWARD_POLICY="ACCEPT"

sudo nano /etc/ufw/sysctl.conf
net/ipv4/ip_forward=1</pre>

最後にiptables(ufw)の変更、

nano /etc/ufw/before.rules
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -m tcp -p tcp --dst <IP ADDRESS> --dport <OUTBOUND PORT> -j DNAT --to-destination 127.0.0.1:<FORWAD PORT>
COMMIT
ufw reload

これで繋がるようになるはず。

php70-php-gdを入れても設定が反映されなかった

WordPressではGDというライブラリを使い画像の処理を行っているそうな。
サムネイル(アイキャッチ)の縮小や画像編集で「ご利用中のホスティング環境は画像の回転機能に対応していません。」が出る場合はこれが上手く動いていないのが原因。

CentOSなのでこんな感じ

# yum list |grep php-gd
php70-php-gd.x86_64                        

#yum install php70-php-gd

これで使えるようになると思ったらどうも反応しない。
phpinfoにもGDの項目がenable以前に表示もされていない。

というわけで下記を行なったところ解決。

 

extension=/opt/remi/php70/root/usr/lib64/php/modules/gd.so

CPIにownCloud 8をインストールする

htaccessをこうすれば動く

# Version: 8.0.2

Options +FollowSymLinks
 <IfModule mod_fcgid.c>
 <IfModule mod_setenvif.c>
 <IfModule mod_headers.c>
 SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
 RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
 </IfModule>
 </IfModule>
 </IfModule>
 <IfModule mod_php5.c>
 php_value upload_max_filesize 513M
 php_value post_max_size 513M
 php_value memory_limit 512M
 php_value mbstring.func_overload 0
 php_value always_populate_raw_post_data -1
 <IfModule mod_env.c>
 SetEnv htaccessWorking true
 </IfModule>
 </IfModule>
 <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
 RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
 RewriteRule ^\.well-known/carddav /remote.php/carddav/ [R]
 RewriteRule ^\.well-known/caldav /remote.php/caldav/ [R]
 RewriteRule ^apps/calendar/caldav\.php remote.php/caldav/ [QSA,L]
 RewriteRule ^apps/contacts/carddav\.php remote.php/carddav/ [QSA,L]
 RewriteRule ^remote/(.*) remote.php [QSA,L]
 RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* /503.php [L]
 RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* /503.php [L]
 #RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
 #RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
 </IfModule>
 <IfModule mod_mime.c>
 AddType image/svg+xml svg svgz
 AddEncoding gzip svgz
 </IfModule>
 <IfModule mod_dir.c>
 DirectoryIndex index.php index.html
 </IfModule>
 AddDefaultCharset utf-8
 Options -Indexes
 <IfModule pagespeed_module>
 ModPagespeed Off
 </IfModule>
 <IfModule mod_headers.c>
 <FilesMatch "\.(css|js)$">
 Header set Cache-Control "max-age=7200, public"
 </FilesMatch>
 </IfModule>

ErrorDocument 403 /owncloud/core/templates/403.php
 ErrorDocument 404 /owncloud/core/templates/404.php

<Limit GET POST OPTIONS>
 Order allow,deny
 Allow from all
 </Limit>
 <LimitExcept GET POST OPTIONS PROPFIND DELETE PROPPATCH MKCOL PUT COPY>
 Order deny,allow
 Deny from all
 </LimitExcept>
 <IfModule mod_dav.c>
 Dav Off
 </IfModule>

Starbug1 1.6.01をさくらのレンタルサーバーで動かしてみた

仕事で使う必須ツールとなっているStarbug1ですが、最近はVPSを使う機会が増えたのでインストールにあまり苦労しなくなりました。

今回は久しぶりにレンタルサーバーを使う機会があり、多いにはまったので後日また苦労しないようにメモしておきます。

作者さんの解説記事
http://blog.starbug1.com/archives/285
こちらはちょっと古いのでそのままでは最新版のインストールができませんので、補足ということになります。

1)さくらでCPANを使えるようにする。

 

必要なライブラリが増えたのでCPANをインストールします。CPAN自体はそんなに大変じゃないですが、インストール先のパス設定をしないとroot権限無いからインストールできねぇ!って怒られます。

 

2)必要なライブラリをCPANでインストールします

3)元の解説記事を参考にMakefileを修正します

 

4)makeコマンド

 

gmake INITIAL_LOCALE=ja_JP static webapp

です。当方でさくらサーバー内のSQLite3のライブラリでのコンパイルは通りましたがdbaccessエラーがでました。