2014年6月12日 星期四

為什麼 PostgreSQL 在 Command Line 可以連,但是在 apache 裡面的程式就不能連。

Linux 有需要這麼多招嗎?見鬼了!

在 Command Line 下執行下面指令試試。

setsebool -P httpd_can_network_connect=1
setsebool -P httpd_can_network_connect_db=1

2014年5月22日 星期四

Ruby on rails 最好 API 這麼難找

不是我要炮,真的是改版不給活路,有夠難找的 API,怎麼弄都不能 work,原來是 SSL 問題,整個肝火上升…

# 從 Session 讀出 acces_token。
      access_token = session[:google]['access_token']
# Google 的 行事歷 API
      url = URI.parse("https://www.googleapis.com/calendar/v3/users/me/calendarList")

      req = Net::HTTP::Get.new(url.path)
#這行重要,需要把 access_token 放到 http request 的 header 中。
      req['Authorization'] = "Bearer #{access_token}"

# 注意 :use_ssl 這部份設定重要,不然不 work,就是我搞一整天的結果…
      res = Net::HTTP.start(url.host, url.port, :use_ssl => url.scheme == 'https') {|http|
        #http.use_ssl = false
        http.request(req)
      }
      puts res.body

      render :json => res.body
      return

2014年2月20日 星期四

2014年2月10日 星期一

slim、htaccess、list permission

今天在設定 Slimt 時遇到一些問題:

  • htaccess 會不會運作要依 apache 的 httpd.conf 中的 AllowOverride 選項的設定,如果沒有設定,Slim 會不 Work。
  • 放 Service 的資料夾需要 list 的權限,否則 slim 也不會運作。
  • php.ini 的 error_reporting 可能會需要加「 ~E_NOTICE」設定。

2014年1月27日 星期一

在 Command Line Restore Postgresql DB 的方式

pg_restore.exe 
--host 10.1.1.55
--port 5432 
--username "postgres" 
--dbname "target_db" 
--no-password  
--verbose "D:\DtabaseBackup\db.backup"

2014年1月23日 星期四

如何打開 Linux 防火牆

如何開啟 Linux 防火牆

這裡以 Postgresql 的 Port 為例:

編輯下列檔案:
vi /etc/sysconfig/iptables

增加這一行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

記得要加在下列這行上面:
-A INPUT -j REJECT…

重啟防火牆:
service iptables restart

在 CentOS 6.4 上裝 Tomcat7

  • 解壓縮 
tar xzf apache-tomcat-7.0.42.tar.gz
  • 啟動 Tomcat 
./bin/startup.sh


  • 設定開機自動啟動:
在 /etc/init.d 建立一個「tomcat7」文字檔,內容如下:
#!/bin/bash  
# description: Tomcat Start Stop Restart  
# processname: tomcat  
# chkconfig: 234 20 80  
JAVA_HOME=/opt/jdk  
export JAVA_HOME  
PATH=$JAVA_HOME/bin:$PATH  
export PATH  
CATALINA_HOME=/opt/apache-tomcat-7.0.50  
  
case $1 in  
start)  
sh $CATALINA_HOME/bin/startup.sh  
;;   
stop)     
sh $CATALINA_HOME/bin/shutdown.sh  
;;   
restart)  
sh $CATALINA_HOME/bin/shutdown.sh  
sh $CATALINA_HOME/bin/startup.sh  
;;   
esac      
exit 0 
tomcat 路徑要自行修改。

設定檔案權限
chmod 755 /etc/init.d/tomcat7

這時你可以使用 service tomcat7 <stop|start|restart>

設定開機自動啟動:

chkconfig --add tomcat7

chkconfig --level 234 tomcat7 on




2014年1月22日 星期三

在 CentOS 6.4 上按裝 Java7


  • 切換到 superuser
  • 下載 Java
http://www.oracle.com/technetwork/java/javase/downloads/index.html

  • 安裝
rpm -Uvh /path/to/binary/jdk-7u51-linux-x64.rpm

  • 設定 command
alternatives --install /usr/bin/java java /usr/java/latest/jre/bin/java 200000

  • 設定 JAVA_HOME 環境變數
export JAVA_HOME="/usr/java/latest"

參考來源:

在 CentOS6.4 按裝 Postgresql on AWS

Install PostgreSQL 9.2.4 Database Server
  • Step1
Add exclude to /etc/yum.repos.d/CentOS-Base.repo file [base] and [updates] sections:

[base]
...
exclude=postgresql*

[updates]
...
exclude=postgresql*
  • Step2(大概是下載一些版本資訊吧)
## CentOS 6 - x86_64 - 64-bit ##
rpm -Uvh http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm

  • Step3

yum install postgresql92 postgresql92-server postgresql92-contrib

Install location(按裝位置)
/var/lib/pgsql/9.2

  • Step4

Initialize db
su - postgres -c /usr/pgsql-9.2/bin/initdb

  • Step5

Open /var/lib/pgsql/9.2/data/postgresql.conf file, and add/uncomment/modify following:
listen_addresses = '*'
port = 5432

  • Step6

Modify PostgreSQL /var/lib/pgsql/9.2/data/pg_hba.conf (host-based authentication) file:
host all all     0.0.0.0/0 md5

  • Step7

Start PostgreSQL Server and Autostart PostgreSQL on Boot
## Start PostgreSQL 9.2 ##
service postgresql-9.2 start
## OR ##
/etc/init.d/postgresql-9.2 start

## Start PostgreSQL 9.2 on every boot ##
chkconfig --levels 235 postgresql-9.2 on

  • Step8
Create Test Database and Create New User
su postgres
createdb test
psql test
CREATE ROLE testuser WITH SUPERUSER LOGIN PASSWORD '12345';
psql -h localhost -U testuser test
  • Step9

Enable Remote Connections to PostgreSQL Server
vi /etc/sysconfig/iptables
Add following line before -A INPUT -j REJECT…(加在哪一行要看清楚)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 10.10.29.50  --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 10.10.29.50 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

  • Step10

Restart Iptables Firewall
service iptables restart
## OR ##
/etc/init.d/iptables restart

psql -h ec2-107-21-150-155.compute-1.amazonaws.com -U testuser -W test