Linux Memo/OpenPNE
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*OpenPNE[Free SNS【ソーシャルネットワーキングサービス】] ...
RIGHT:更新日 &lastmod();
**OpenPNEのインストール [#n76eb278]
OpenPNEはフリーのSNSでMySQL+PHPで実現でき携帯からもアクセ...
***事前準備 [#ob84e2f0]
# apt-get install MySQL
# apt-get install MySQL-client
# apt-get install php5-apache2-5.2.5-0vl1
# apt-get install php5-mysql
など
''php.ini''~
[Vine]
output_buffering = Off
expose_php = Off
;;memory_limit = 32M
memory_limit = 128M
variables_order = "GPCS"
;;default_charset = EUC-JP <==コメントアウト
extension_dir = /usr/lib/php5
allow_url_include = Off
sendmail_path = /usr/sbin/sendmail -t -i
session.save_path = "/var/php5/session"
session.use_only_cookies = On
session.use_strict_mode = On
session.entropy_file = /dev/urandom
session.entropy_length = 32
session.hash_function = 1
;;mbstring.language = Japanese <==コメントアウト
;;mbstring.internal_encoding = EUC-JP <==コメントアウト
;;mbstring.http_input = auto <==コメントアウト
;;mbstring.http_output = pass <==コメントアウト
;;mbstring.encoding_translation = On <==コメントアウト
&color(red){とくに最後の5行をコメントアウトしないと日本...
MySQLのデフォルトをUTF-8に変更
''my.cnf''~
[client]
default-character-set = utf8
#password = your_password
# The MySQL server
[mysqld]
default-character-set=utf8
port = 3306
[mysql]
default-character-set = utf8
no-auto-rehash
***インストール [#ac2c2db4]
# cd /var/www
# tar zxvf /usr/local/src/OpenPNE-2.10.4.tar.gz
# mv OpenPNE-2.10.4 OpenPNE
# chown -R apache.apache OpenPNE
# chmod -R 777 OpenPNE/var/
''MySQLの設定''
# mysql -u root -p
mysql> grant all privileges on openpne.* to openpne@loca...
Query OK, 0 rows affected (0.03 sec)
mysql> create database openpne CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)
''openpneデータベース初期設定''
# mysql -u openpne -p openpne \
< /var/www/OpenPNE/setup/sql/mysql41/install/install-2.1...
# mysql -u openpne -p openpne \
< /var/www/OpenPNE/setup/sql/mysql41/install/install-2.1...
***pnebiz(グループウエア)の設定 [#b9816d5e]
ヘッダー部に「グループウェア機能はこちら → 施設予約 ...
# mysql -u openpne -p openpne \
< /var/www/OpenPNE/setup/sql/mysql41/option/pnebiz-heade...
ただしこのときは設定画面で「SNS設定」でBIZ使用設定を使用...
***OpenPNEの設定 [#rc6c2a60]
# cd OpenPNE/
# cp config.php.sample config.php
ランダムな56桁の文字列を取得※OpenPNE設定ファイル編集で使用
# apt-get install expect (mkpasswdコマンドがない場合)
# mkpasswd -l 56
8ramMdfTxykhprvytrfliesxzoyqwqyxfpqefkt@imqoc0unipdtypfa
''config.php''
&color(red){OPENPNE_URLとOPENPNE_SSL_URLをIPではなくhttp:...
// Web上の絶対パス(URL)(最後にスラッシュを付ける)
define('OPENPNE_URL', 'http://192.168.1.1/openpne/');
// DBサーバ設定
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
'dsn' => array(
'phptype' => 'mysql',
'username' => 'openpne', <==DB
'password' => '******',
'hostspec' => 'localhost',
'database' => 'openpne',
'new_link' => false,
),
);
// DB暗号化キー(56バイト以内のASCII文字列)
define ('ENCRYPT_KEY', '8ramMdfTxykhprvytrfliesxzoyqwqyx...
// メールサーバードメイン
// 携帯メール投稿の宛先などのドメイン名に使われる
define('MAIL_SERVER_DOMAIN', 'mie-chukyo-u.ac.jp'); ← ...
//--- オプション設定
// デバッグモード
// 0: off ... エラー非表示、エラーログを記録する
// 1: on ... エラー表示、エラーログを記録しない
// 2: on ... 1 + Smartyデバッグコンソール
// define('OPENPNE_DEBUGGING', 1);
define('OPENPNE_DEBUGGING', 0);
///
// SSL設定
///
// 特定ページだけのSSLを使用するかどうか
//define('OPENPNE_USE_PARTIAL_SSL', false);
define('OPENPNE_USE_PARTIAL_SSL', true);
// SSL用URL (Cookieの値を引き継ぐため、OPENPNE_URL と同...
//define('OPENPNE_SSL_URL', 'https://sns.example.com/');
define('OPENPNE_SSL_URL', 'https://192.168.1.1/openpne/');
// SSLを使用することが必須であるアクションリスト
$GLOBALS['_OPENPNE_SSL_REQUIRED'] = array(
'admin' => array( <==追加
'page_login', <==追加
), <==追加
'pc' => array(
'page_o_regist_prof', 'page_o_regist_prof_confirm',...
'ktai' => array(
// 'page_o_login', 'do_o_login', 'do_o_easy_login',
// 'page_o_login2', 'do_o_update_ktai_address',
// 'page_o_regist_pre', 'page_o_regist_input', 'do_o_...
// 'page_o_regist_end',
// 'page_o_password_query', 'do_o_password_query',
// 'page_h_config_prof', 'do_h_config_prof_update_c_m...
// 'page_h_config_easy_login', 'do_h_config_easy_logi...
// 'page_h_config_mail', 'do_h_config_mail_insert_c_k...
// 'page_h_pc_send', 'page_h_pc_send_confirm', 'do_h_...
// 'page_h_config_password_query', 'do_h_config_passw...
// 'page_h_config_password', 'do_h_config_password_up...
// 'page_h_config', 'page_h_invite', 'do_h_invite_ins...
));
// SSLを使用するかどうかをユーザーが選択できるアクション...
$GLOBALS['_OPENPNE_SSL_SELECTABLE'] = array(
'pc' => array(
),
'ktai' => array(
//以下を追加し、携帯でもSSLを使用可能にする。ただし'page...
//'do_o_update_ktai_address'は携帯への初めてのメールで認...
//送られるのでそれをSSL化しなようにコメントアウトこれでS...
//ただし、不具合も考慮し、アクセス方法はユーザーが選択
'page_o_login', 'do_o_login', 'do_o_easy_login',
// 'page_o_login2', 'do_o_update_ktai_address',
'page_o_regist_pre', 'page_o_regist_input', 'do_o_in...
'page_o_regist_end',
'page_o_password_query', 'do_o_password_query',
'page_h_config_prof', 'do_h_config_prof_update_c_mem...
'page_h_config_easy_login', 'do_h_config_easy_login',
'page_h_config_mail', 'do_h_config_mail_insert_c_kta...
'page_h_pc_send', 'page_h_pc_send_confirm', 'do_h_pc...
'page_h_config_password_query', 'do_h_config_passwor...
'page_h_config_password', 'do_h_config_password_upda...
'page_h_config', 'page_h_invite', 'do_h_invite_inser...
));
&color(red){携帯(ktai)だけコメントアウトはSSLのおれおれ認...
地図を利用するためGoogle Maps API keyを取得してconfig.php...
///
// Google Maps API key
// http://www.google.com/apis/maps/ から取得
///
define('GOOGLE_MAPS_API_KEY', 'ABQIAAAAlAldUyiDHCoKI_79W...
''OpenPNE用CRON登録''
# crontab -e
00 6 * * * /bin/sh /var/www/OpenPNE/bin/tool_send_dair...
00 6 * * * /bin/sh /var/www/OpenPNE/bin/tool_send_birt...
00 6 * * * /bin/sh /var/www/OpenPNE/bin/tool_send_sche...
*/20 * * * * /bin/sh /var/www/OpenPNE/bin/tool_rss_cache...
''SNS管理者宛メールの転送設定''
/etc/postfix/aliases
sns: webmaster
''メール投稿設定''(携帯電話からも使用する場合のみ)~
携帯電話からのメール投稿を受け付けるように設定~
&color(red){ただし、PCRE形式の正規表現が利用できるように...
maillogにpostfix起動時に「 Is the postfix-pcre package in...
オプションの "pcre" マップタイプを使うと、\s は空白で \S ...
# apt-get install postfix-pcre
準備中... ############################...
1:postfix-pcre ############################...
Adding pcre map entry to /etc/postfix/dynamicmaps.cf
/etc/postfix/aliases.regexpを作成
/^get(@.*)?$/ "|/usr/bin/php /var/www/OpenPNE/bin/mail.p...
/^p[0-9]+-[0-9a-z]{12}(@.*)?$/ "|/usr/bin/php /var/www/O...
/^t[0-9]+-[0-9a-z]{12}(@.*)?$/ "|/usr/bin/php /var/www/O...
/^b[0-9]+-[0-9a-z]{12}(@.*)?$/ "|/usr/bin/php /var/www/O...
/etc/postfix/main.cf
alias_maps = hash:/etc/aliases, pcre:/etc/postfix/aliase...
^^^^^^^^^^^^^^^^^^^^^^^^...
# /etc/rc.d/init.d/postfix restart
cronから余計なメールを出さないようにする
# cd OpenPNE/bin
tool_send_dairy_news.cronを修正
#! /bin/sh
cd $1
2 -f tool_send_daily_news.php > /dev/null
^^^^^^^^^^^^追加
***Apache設定 [#o16d5aa4]
以下のファイルを作成し、OpenPNEのアクセスパスを指定する~
''/etc/apache2/conf.d/openpne.conf''~
Alias /openpne /var/www/OpenPNE/public_html
# /etc/rc.d/init.d/apache2 reload
**OpenPNE確認 [#i23c56fd]
***セットアップ [#seca712b]
http://サーバー名/openpne/?m=setupへアクセス
必ず下記の設定をおこなってからセットアップを実行してくだ...
setup/sql/mysql4x/install-2.10-create_tables.sql の実行
setup/sql/mysql4x/install-2.10-insert_data.sql の実行
config.php の設定
一度、セットアップを実行した後でこのページを表示すること...
セットアップをやり直したい場合はデータベースを空にしてか...
というメッセージが出るがすでにopenpneデータベース初期設定...
login画面~
https://192.168.1.1/openpne/?m=pc
管理画面~
https://192.168.1.1/openpne/?m=admin&a=page_login
あとはGUI上から設定
***注意事項 [#aae166df]
''携帯から''~
「設定変更」で携帯からアクセスできるようにするには、携帯...
また、一度loginすると先の携帯メールを設定するページに削除...
''簡単ログイン''~
SoftBankの3Gではどうも製造番号がOFFなので製造番号通知をO...
以下のような[[ページ:http://bo.pne.jp/ticket/1921]]もあっ...
softbank3G携帯ではUIDが取得できるため、こちらを取得すれ...
試しに実装してみました webapp/lib/OpenPNE/KetaiID.phpの...
// SoftBank
elseif (!strncmp($ua, 'SoftBank', 8)) {
$pieces = explode('/', $ua);
$piece_sn = explode(' ', $pieces[4]);
$sn = array_shift($piece_sn);
if (!strncmp($sn, 'SN', 2)) {
$id = $sn;
}
}
を
// SoftBank
elseif (!strncmp($ua, 'SoftBank', 8)) {
$pieces = explode('/', $ua);
$piece_sn = explode(' ', $pieces[4]);
$sn = array_shift($piece_sn);
if (!strncmp($sn, 'SN', 2)) {
$id = $sn;
}else{
// 固体番号が取得できない場合にUIDを取得
$headers = apache_request_headers();
if ($headers["x-jphone-uid"]) {
$id = $headers["x-jphone-uid"];
}
}
}
**ちょっと改造 [#k942b2c5]
***フリーページ [#gcad8533]
お知らせ->フリーページ管理でログイン前、ログイン後のHTML...
<a href="./?m=pc&a=page_o_free_page&c_free_page_id=1" ta...
とする。idでページを区別する
***緯度・経度 [#z44d46f9]
Map表示設定時に緯度経度が必要なのでそのページを「コミュニ...
''webapp/modules/pc/templates/c_edit.tpl''~
305行前後
<div class="padding_s">
緯度:<input class="text" name="map_latitude" type="text...
value="({$c_commu.map_latitude})" id="lat">
^^^^^^^<==追加
経度:<input class="text" name="map_longitude" type="tex...
value="({$c_commu.map_longitude})" id="lng">
^^^^^^^<==追加
拡大率:<input class="text" name="map_zoom" type="text" ...
(以下のjavascriptを追加
<script type="text/JavaScript">
<!--
function winOpen(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
<A HREF="#" onclick="winOpen('/mapinput/input.php','newW...
'scrollbars=yes width=850,height=700')"> \
ここ</A>から、緯度・経度を取得することができます。<BR> <...
※手動設定の場合は、都道府県の選択で「その他(手動設定)...
</div>
/var/www/html/mapinput/input.phpのサンプルは添付
#ref("input.php")
です。
**バージョンアップ [#xf829aed]
***マイナーバージョンアップ [#q022946b]
+新しいバージョンを/var/wwwに展開して、config.phpとvarデ...
+変更を行ったphp等のファイルを同じように変更する
+旧バージョンをOpenPNE-X.Y.Zとりネームして、新しいバージ...
+一応Postfixをリロードを行う
**その他 [#zd280949]
「招待メールドメイン制限」に追加して招待メールを送りその...
''コミュニティ管理者の交代''~
コミュニティ管理の譲渡は管理者が
+管理しているコミュニティを開きます。
+「コミュニティメンバー」が表示されている下部にある[メン...
+管理権を譲渡したい人を探し、[管理権を渡す]をクリックしま...
+管理人交代依頼を送信する画面が表示されるので、依頼する場...
+管理権の交代依頼のメールを受けた人が、交代の承認をおこな...
同じメニューで副管理者を任命することができる~
''副管理者について''~
-メンバーをコミュニティから退会させる権限はありません。
-承認が必要なコミュニティの場合は、入会依頼を副管理者権限...
-コミニュニティを削除する権限はありません。
[[参考:http://agoria.jp/faq.html]]
***携帯からPCメールアドレスの設定 [#f4f71a9e]
携帯からPCメールアドレスを設定してもユーザが設定したメー...
設定確認をおこなわないと、管理者のメンバーリストのPCメー...
この場合は''c_pc_address_pre''とい一時保管テーブルに入っ...
mysql> select * from c_pc_address_pre;
+--------------------+-------------+--------------------...
--------------------------+---------------------+
| c_pc_addess_pre_id | c_member_id | pc_address ...
session | r_datetime |
+--------------------+-------------+--------------------...
--------------------------+---------------------+
| 2 | 4 | okada@abc-u.ac.jp |
xxxxe0043xxx6d7dxx2cec09a5exxxxx | 2008-03-01 15:11:15 |
+--------------------+-------------+--------------------...
--------------------------+---------------------+
1 row in set (0.00 sec)
また、確認時にPCアドレスを登録後PCでloginする前の状態
メールにきたURLから登録終了するとき
以下のエラーが出るようだがうまく登録できている
原因不明
このURLは既に無効になっています。
また、確認後はパスワードやメールアドレス(携帯も含む)は...
c_member_secure
**smarty [#p5a88d6f]
デザインのテンプレート挿入では使用できるがSmartyテンプレ...
しかしながら、そのままではOpenPNEでは、テンプレート挿入時...
''lib/include/Smarty/Smarty.class.php''
200行
* @var integer
*/
/* var $php_handling = SMARTY_PHP_PASSTHRU; */
var $php_handling = SMARTY_PHP_ALLOW; <==ALLO...
/**
230行
*/
var $security_settings = array(
/* 'PHP_HANDLING' ...
'PHP_HANDLING' =...
'IF_FUNCS' =...
...
...
...
...
'INCLUDE_ANY' =...
/* 'PHP_TAGS' ...
'PHP_TAGS' =...
'MODIFIER_FUNCS' =...
'ALLOW_CONSTANTS' ...
);
''$php_handling''~
smartyのこの変数がテンプレートに埋め込まれた PHP コードの...
-SMARTY_PHP_PASSTHRU - PHPコードを実行せずにそのまま出力...
-SMARTY_PHP_QUOTE - PHPコードをHTMLエンティティとして表示...
-SMARTY_PHP_REMOVE - PHPコードをテンプレートから除去しま...
-SMARTY_PHP_ALLOW - PHPコードを実行します。
''テンプレートのデリミタ''~
テンプレートタグは、デリミタによって囲まれ、デフォルトの...
{php} {/php}
&color(red){Openpneでは デリミタが({ })};
({php}) ({/php})
''例''~
({php})
echo "abc <br>";
({/php})
***SmartyのテンプレートでURLのデータ取得 [#zc334d97]
アクセスが
openpne/?m=pc&a=page_c_home&target_c_commu_id=1
のときテンプレートで
({$smarty.get.target_c_commu_id})とすると1を取得すること...
({if $smarty.get.target_c_commu_id eq '1'})
OKです<BR> <==target_c_commu_idが1の時
({elseif $smarty.get.target_c_commu_id eq '2'})
ぼちぼち <BR>
({else})
だめです <BR>
({/if})
***topページ(?m=pc&a=page_h_home)でユーザidを取得するには...
ID = ({$c_member.c_member_id})
***プロフィール情報の取得 [#b2bc6406]
c_member_profileテーブルから、c_member_id と c_profile_id...
たとえばc_profile_idが9にセットされた情報の取得
// DBのパラメータセット
$db_host = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$db_user = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$db_pass = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$db_name = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$u = $GLOBALS['AUTH']->uid(); //ユーザID
$conn = mysql_connect($db_host, $db_user, $db_pas...
mysql_select_db($db_name);
//ユーザIDとプロフィールIDで選択
$sqlcmd ="SELECT * FROM c_member_profile where c_...
$result = mysql_query($sqlcmd);
$count = mysql_num_rows($result);
$r = mysql_fetch_array($result);
$kubun = $r["value"];
//複数ヒットするときの例
// $i = 0;
// while ($r = mysql_fetch_array($result)){
// $kubun[$i] = $r["value"];
// $i++;
// }
echo "区分 $kubun <Br>";
***携帯のSSLページJump [#g20a6e80]
アンカーを通常のようにすると自己認証の場合Softbankではエ...
このときページがphpでは認証エラーが生じるが、htmlだとOKだ...
第一のページ~
''ktaissl.html''~
<FORM ACTION="https://192.xxx.xxx.xxx/openpne_data/ktais...
<INPUT TYPE="submit" VALUE="SSLへ">
</FORM>
第2のページ~
''ktaissl2.html''~
<form action="/openpne/?m=ktai" method="post" name="f">
<input type="submit" value="SSLあり">
</form>
''【携帯版】HTML挿入(ページ上部)''~
<a href="http://192.xxx.xxx.xxx/openpne_data/ktaissl.htm...
***紹介制から、登録制に変更 [#vc189bfb]
以下のようにソース変更より管理画面からデザイン=>ナビゲ...
ほかにも修正が必要かも
「友達を誘う」以下のページで行っているのでアクセス不可に...
-webapp/modules/pc/page/h_invite.php
-webapp/modules/ktai/page/h_invite.php
以下のページがパソコンのリンク元なので以下のように変更する
-webapp/lib/util/util.php
/* array('url' => '?m=pc&a=page_h_invite', 'caption' => ...
array('url' => '#', 'caption' => '友人を誘う'),
以下のページが携帯のリンク元(コメントアウト)
-webapp_biz/modules/ktai/templates/h_home.tpl
-webapp/modules/ktai/templates/h_home.tpl
({if $smarty.const.IS_USER_INVITE && ($smarty.const.OPE...
$smarty.const.OPENPNE_REGIST_FROM_NONE)})[i:140]<!-- <a ...
a=page_h_invite})&({$tail})">友人を誘う</a> --><br>(...
以下のところに携帯で紹介制だとあるので変更
-webapp/modules/portal/templates/portal_user_top_ktai.tpl
-webapp/modules/portal/templates/preview_ktai.tpl
-webapp/modules/ktai/templates/o_login.tpl
変更前
({$SNS_NAME})は招待制のソーシャルネットワーキングサービ...
登録には({$SNS_NAME})({if $smarty.const.IS_USER_INVITE})...
変更後
({$SNS_NAME})は学内専用のソーシャルネットワーキングサー...
登録には({$SNS_NAME})({if $smarty.const.IS_USER_INVITE})...
**参考ページ [#ubbcffdd]
-http://fedorasrv.com/openpne.shtml
-[[smartyマニュアル:http://www.smarty.net/manual/ja/]]
-[[テーブル内容について:http://jisaku-sns.info/modules/pu...
-[[テーブル内容(内部)>Linux Memo/OpenPNE_Table]]
終了行:
*OpenPNE[Free SNS【ソーシャルネットワーキングサービス】] ...
RIGHT:更新日 &lastmod();
**OpenPNEのインストール [#n76eb278]
OpenPNEはフリーのSNSでMySQL+PHPで実現でき携帯からもアクセ...
***事前準備 [#ob84e2f0]
# apt-get install MySQL
# apt-get install MySQL-client
# apt-get install php5-apache2-5.2.5-0vl1
# apt-get install php5-mysql
など
''php.ini''~
[Vine]
output_buffering = Off
expose_php = Off
;;memory_limit = 32M
memory_limit = 128M
variables_order = "GPCS"
;;default_charset = EUC-JP <==コメントアウト
extension_dir = /usr/lib/php5
allow_url_include = Off
sendmail_path = /usr/sbin/sendmail -t -i
session.save_path = "/var/php5/session"
session.use_only_cookies = On
session.use_strict_mode = On
session.entropy_file = /dev/urandom
session.entropy_length = 32
session.hash_function = 1
;;mbstring.language = Japanese <==コメントアウト
;;mbstring.internal_encoding = EUC-JP <==コメントアウト
;;mbstring.http_input = auto <==コメントアウト
;;mbstring.http_output = pass <==コメントアウト
;;mbstring.encoding_translation = On <==コメントアウト
&color(red){とくに最後の5行をコメントアウトしないと日本...
MySQLのデフォルトをUTF-8に変更
''my.cnf''~
[client]
default-character-set = utf8
#password = your_password
# The MySQL server
[mysqld]
default-character-set=utf8
port = 3306
[mysql]
default-character-set = utf8
no-auto-rehash
***インストール [#ac2c2db4]
# cd /var/www
# tar zxvf /usr/local/src/OpenPNE-2.10.4.tar.gz
# mv OpenPNE-2.10.4 OpenPNE
# chown -R apache.apache OpenPNE
# chmod -R 777 OpenPNE/var/
''MySQLの設定''
# mysql -u root -p
mysql> grant all privileges on openpne.* to openpne@loca...
Query OK, 0 rows affected (0.03 sec)
mysql> create database openpne CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)
''openpneデータベース初期設定''
# mysql -u openpne -p openpne \
< /var/www/OpenPNE/setup/sql/mysql41/install/install-2.1...
# mysql -u openpne -p openpne \
< /var/www/OpenPNE/setup/sql/mysql41/install/install-2.1...
***pnebiz(グループウエア)の設定 [#b9816d5e]
ヘッダー部に「グループウェア機能はこちら → 施設予約 ...
# mysql -u openpne -p openpne \
< /var/www/OpenPNE/setup/sql/mysql41/option/pnebiz-heade...
ただしこのときは設定画面で「SNS設定」でBIZ使用設定を使用...
***OpenPNEの設定 [#rc6c2a60]
# cd OpenPNE/
# cp config.php.sample config.php
ランダムな56桁の文字列を取得※OpenPNE設定ファイル編集で使用
# apt-get install expect (mkpasswdコマンドがない場合)
# mkpasswd -l 56
8ramMdfTxykhprvytrfliesxzoyqwqyxfpqefkt@imqoc0unipdtypfa
''config.php''
&color(red){OPENPNE_URLとOPENPNE_SSL_URLをIPではなくhttp:...
// Web上の絶対パス(URL)(最後にスラッシュを付ける)
define('OPENPNE_URL', 'http://192.168.1.1/openpne/');
// DBサーバ設定
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
'dsn' => array(
'phptype' => 'mysql',
'username' => 'openpne', <==DB
'password' => '******',
'hostspec' => 'localhost',
'database' => 'openpne',
'new_link' => false,
),
);
// DB暗号化キー(56バイト以内のASCII文字列)
define ('ENCRYPT_KEY', '8ramMdfTxykhprvytrfliesxzoyqwqyx...
// メールサーバードメイン
// 携帯メール投稿の宛先などのドメイン名に使われる
define('MAIL_SERVER_DOMAIN', 'mie-chukyo-u.ac.jp'); ← ...
//--- オプション設定
// デバッグモード
// 0: off ... エラー非表示、エラーログを記録する
// 1: on ... エラー表示、エラーログを記録しない
// 2: on ... 1 + Smartyデバッグコンソール
// define('OPENPNE_DEBUGGING', 1);
define('OPENPNE_DEBUGGING', 0);
///
// SSL設定
///
// 特定ページだけのSSLを使用するかどうか
//define('OPENPNE_USE_PARTIAL_SSL', false);
define('OPENPNE_USE_PARTIAL_SSL', true);
// SSL用URL (Cookieの値を引き継ぐため、OPENPNE_URL と同...
//define('OPENPNE_SSL_URL', 'https://sns.example.com/');
define('OPENPNE_SSL_URL', 'https://192.168.1.1/openpne/');
// SSLを使用することが必須であるアクションリスト
$GLOBALS['_OPENPNE_SSL_REQUIRED'] = array(
'admin' => array( <==追加
'page_login', <==追加
), <==追加
'pc' => array(
'page_o_regist_prof', 'page_o_regist_prof_confirm',...
'ktai' => array(
// 'page_o_login', 'do_o_login', 'do_o_easy_login',
// 'page_o_login2', 'do_o_update_ktai_address',
// 'page_o_regist_pre', 'page_o_regist_input', 'do_o_...
// 'page_o_regist_end',
// 'page_o_password_query', 'do_o_password_query',
// 'page_h_config_prof', 'do_h_config_prof_update_c_m...
// 'page_h_config_easy_login', 'do_h_config_easy_logi...
// 'page_h_config_mail', 'do_h_config_mail_insert_c_k...
// 'page_h_pc_send', 'page_h_pc_send_confirm', 'do_h_...
// 'page_h_config_password_query', 'do_h_config_passw...
// 'page_h_config_password', 'do_h_config_password_up...
// 'page_h_config', 'page_h_invite', 'do_h_invite_ins...
));
// SSLを使用するかどうかをユーザーが選択できるアクション...
$GLOBALS['_OPENPNE_SSL_SELECTABLE'] = array(
'pc' => array(
),
'ktai' => array(
//以下を追加し、携帯でもSSLを使用可能にする。ただし'page...
//'do_o_update_ktai_address'は携帯への初めてのメールで認...
//送られるのでそれをSSL化しなようにコメントアウトこれでS...
//ただし、不具合も考慮し、アクセス方法はユーザーが選択
'page_o_login', 'do_o_login', 'do_o_easy_login',
// 'page_o_login2', 'do_o_update_ktai_address',
'page_o_regist_pre', 'page_o_regist_input', 'do_o_in...
'page_o_regist_end',
'page_o_password_query', 'do_o_password_query',
'page_h_config_prof', 'do_h_config_prof_update_c_mem...
'page_h_config_easy_login', 'do_h_config_easy_login',
'page_h_config_mail', 'do_h_config_mail_insert_c_kta...
'page_h_pc_send', 'page_h_pc_send_confirm', 'do_h_pc...
'page_h_config_password_query', 'do_h_config_passwor...
'page_h_config_password', 'do_h_config_password_upda...
'page_h_config', 'page_h_invite', 'do_h_invite_inser...
));
&color(red){携帯(ktai)だけコメントアウトはSSLのおれおれ認...
地図を利用するためGoogle Maps API keyを取得してconfig.php...
///
// Google Maps API key
// http://www.google.com/apis/maps/ から取得
///
define('GOOGLE_MAPS_API_KEY', 'ABQIAAAAlAldUyiDHCoKI_79W...
''OpenPNE用CRON登録''
# crontab -e
00 6 * * * /bin/sh /var/www/OpenPNE/bin/tool_send_dair...
00 6 * * * /bin/sh /var/www/OpenPNE/bin/tool_send_birt...
00 6 * * * /bin/sh /var/www/OpenPNE/bin/tool_send_sche...
*/20 * * * * /bin/sh /var/www/OpenPNE/bin/tool_rss_cache...
''SNS管理者宛メールの転送設定''
/etc/postfix/aliases
sns: webmaster
''メール投稿設定''(携帯電話からも使用する場合のみ)~
携帯電話からのメール投稿を受け付けるように設定~
&color(red){ただし、PCRE形式の正規表現が利用できるように...
maillogにpostfix起動時に「 Is the postfix-pcre package in...
オプションの "pcre" マップタイプを使うと、\s は空白で \S ...
# apt-get install postfix-pcre
準備中... ############################...
1:postfix-pcre ############################...
Adding pcre map entry to /etc/postfix/dynamicmaps.cf
/etc/postfix/aliases.regexpを作成
/^get(@.*)?$/ "|/usr/bin/php /var/www/OpenPNE/bin/mail.p...
/^p[0-9]+-[0-9a-z]{12}(@.*)?$/ "|/usr/bin/php /var/www/O...
/^t[0-9]+-[0-9a-z]{12}(@.*)?$/ "|/usr/bin/php /var/www/O...
/^b[0-9]+-[0-9a-z]{12}(@.*)?$/ "|/usr/bin/php /var/www/O...
/etc/postfix/main.cf
alias_maps = hash:/etc/aliases, pcre:/etc/postfix/aliase...
^^^^^^^^^^^^^^^^^^^^^^^^...
# /etc/rc.d/init.d/postfix restart
cronから余計なメールを出さないようにする
# cd OpenPNE/bin
tool_send_dairy_news.cronを修正
#! /bin/sh
cd $1
2 -f tool_send_daily_news.php > /dev/null
^^^^^^^^^^^^追加
***Apache設定 [#o16d5aa4]
以下のファイルを作成し、OpenPNEのアクセスパスを指定する~
''/etc/apache2/conf.d/openpne.conf''~
Alias /openpne /var/www/OpenPNE/public_html
# /etc/rc.d/init.d/apache2 reload
**OpenPNE確認 [#i23c56fd]
***セットアップ [#seca712b]
http://サーバー名/openpne/?m=setupへアクセス
必ず下記の設定をおこなってからセットアップを実行してくだ...
setup/sql/mysql4x/install-2.10-create_tables.sql の実行
setup/sql/mysql4x/install-2.10-insert_data.sql の実行
config.php の設定
一度、セットアップを実行した後でこのページを表示すること...
セットアップをやり直したい場合はデータベースを空にしてか...
というメッセージが出るがすでにopenpneデータベース初期設定...
login画面~
https://192.168.1.1/openpne/?m=pc
管理画面~
https://192.168.1.1/openpne/?m=admin&a=page_login
あとはGUI上から設定
***注意事項 [#aae166df]
''携帯から''~
「設定変更」で携帯からアクセスできるようにするには、携帯...
また、一度loginすると先の携帯メールを設定するページに削除...
''簡単ログイン''~
SoftBankの3Gではどうも製造番号がOFFなので製造番号通知をO...
以下のような[[ページ:http://bo.pne.jp/ticket/1921]]もあっ...
softbank3G携帯ではUIDが取得できるため、こちらを取得すれ...
試しに実装してみました webapp/lib/OpenPNE/KetaiID.phpの...
// SoftBank
elseif (!strncmp($ua, 'SoftBank', 8)) {
$pieces = explode('/', $ua);
$piece_sn = explode(' ', $pieces[4]);
$sn = array_shift($piece_sn);
if (!strncmp($sn, 'SN', 2)) {
$id = $sn;
}
}
を
// SoftBank
elseif (!strncmp($ua, 'SoftBank', 8)) {
$pieces = explode('/', $ua);
$piece_sn = explode(' ', $pieces[4]);
$sn = array_shift($piece_sn);
if (!strncmp($sn, 'SN', 2)) {
$id = $sn;
}else{
// 固体番号が取得できない場合にUIDを取得
$headers = apache_request_headers();
if ($headers["x-jphone-uid"]) {
$id = $headers["x-jphone-uid"];
}
}
}
**ちょっと改造 [#k942b2c5]
***フリーページ [#gcad8533]
お知らせ->フリーページ管理でログイン前、ログイン後のHTML...
<a href="./?m=pc&a=page_o_free_page&c_free_page_id=1" ta...
とする。idでページを区別する
***緯度・経度 [#z44d46f9]
Map表示設定時に緯度経度が必要なのでそのページを「コミュニ...
''webapp/modules/pc/templates/c_edit.tpl''~
305行前後
<div class="padding_s">
緯度:<input class="text" name="map_latitude" type="text...
value="({$c_commu.map_latitude})" id="lat">
^^^^^^^<==追加
経度:<input class="text" name="map_longitude" type="tex...
value="({$c_commu.map_longitude})" id="lng">
^^^^^^^<==追加
拡大率:<input class="text" name="map_zoom" type="text" ...
(以下のjavascriptを追加
<script type="text/JavaScript">
<!--
function winOpen(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
<A HREF="#" onclick="winOpen('/mapinput/input.php','newW...
'scrollbars=yes width=850,height=700')"> \
ここ</A>から、緯度・経度を取得することができます。<BR> <...
※手動設定の場合は、都道府県の選択で「その他(手動設定)...
</div>
/var/www/html/mapinput/input.phpのサンプルは添付
#ref("input.php")
です。
**バージョンアップ [#xf829aed]
***マイナーバージョンアップ [#q022946b]
+新しいバージョンを/var/wwwに展開して、config.phpとvarデ...
+変更を行ったphp等のファイルを同じように変更する
+旧バージョンをOpenPNE-X.Y.Zとりネームして、新しいバージ...
+一応Postfixをリロードを行う
**その他 [#zd280949]
「招待メールドメイン制限」に追加して招待メールを送りその...
''コミュニティ管理者の交代''~
コミュニティ管理の譲渡は管理者が
+管理しているコミュニティを開きます。
+「コミュニティメンバー」が表示されている下部にある[メン...
+管理権を譲渡したい人を探し、[管理権を渡す]をクリックしま...
+管理人交代依頼を送信する画面が表示されるので、依頼する場...
+管理権の交代依頼のメールを受けた人が、交代の承認をおこな...
同じメニューで副管理者を任命することができる~
''副管理者について''~
-メンバーをコミュニティから退会させる権限はありません。
-承認が必要なコミュニティの場合は、入会依頼を副管理者権限...
-コミニュニティを削除する権限はありません。
[[参考:http://agoria.jp/faq.html]]
***携帯からPCメールアドレスの設定 [#f4f71a9e]
携帯からPCメールアドレスを設定してもユーザが設定したメー...
設定確認をおこなわないと、管理者のメンバーリストのPCメー...
この場合は''c_pc_address_pre''とい一時保管テーブルに入っ...
mysql> select * from c_pc_address_pre;
+--------------------+-------------+--------------------...
--------------------------+---------------------+
| c_pc_addess_pre_id | c_member_id | pc_address ...
session | r_datetime |
+--------------------+-------------+--------------------...
--------------------------+---------------------+
| 2 | 4 | okada@abc-u.ac.jp |
xxxxe0043xxx6d7dxx2cec09a5exxxxx | 2008-03-01 15:11:15 |
+--------------------+-------------+--------------------...
--------------------------+---------------------+
1 row in set (0.00 sec)
また、確認時にPCアドレスを登録後PCでloginする前の状態
メールにきたURLから登録終了するとき
以下のエラーが出るようだがうまく登録できている
原因不明
このURLは既に無効になっています。
また、確認後はパスワードやメールアドレス(携帯も含む)は...
c_member_secure
**smarty [#p5a88d6f]
デザインのテンプレート挿入では使用できるがSmartyテンプレ...
しかしながら、そのままではOpenPNEでは、テンプレート挿入時...
''lib/include/Smarty/Smarty.class.php''
200行
* @var integer
*/
/* var $php_handling = SMARTY_PHP_PASSTHRU; */
var $php_handling = SMARTY_PHP_ALLOW; <==ALLO...
/**
230行
*/
var $security_settings = array(
/* 'PHP_HANDLING' ...
'PHP_HANDLING' =...
'IF_FUNCS' =...
...
...
...
...
'INCLUDE_ANY' =...
/* 'PHP_TAGS' ...
'PHP_TAGS' =...
'MODIFIER_FUNCS' =...
'ALLOW_CONSTANTS' ...
);
''$php_handling''~
smartyのこの変数がテンプレートに埋め込まれた PHP コードの...
-SMARTY_PHP_PASSTHRU - PHPコードを実行せずにそのまま出力...
-SMARTY_PHP_QUOTE - PHPコードをHTMLエンティティとして表示...
-SMARTY_PHP_REMOVE - PHPコードをテンプレートから除去しま...
-SMARTY_PHP_ALLOW - PHPコードを実行します。
''テンプレートのデリミタ''~
テンプレートタグは、デリミタによって囲まれ、デフォルトの...
{php} {/php}
&color(red){Openpneでは デリミタが({ })};
({php}) ({/php})
''例''~
({php})
echo "abc <br>";
({/php})
***SmartyのテンプレートでURLのデータ取得 [#zc334d97]
アクセスが
openpne/?m=pc&a=page_c_home&target_c_commu_id=1
のときテンプレートで
({$smarty.get.target_c_commu_id})とすると1を取得すること...
({if $smarty.get.target_c_commu_id eq '1'})
OKです<BR> <==target_c_commu_idが1の時
({elseif $smarty.get.target_c_commu_id eq '2'})
ぼちぼち <BR>
({else})
だめです <BR>
({/if})
***topページ(?m=pc&a=page_h_home)でユーザidを取得するには...
ID = ({$c_member.c_member_id})
***プロフィール情報の取得 [#b2bc6406]
c_member_profileテーブルから、c_member_id と c_profile_id...
たとえばc_profile_idが9にセットされた情報の取得
// DBのパラメータセット
$db_host = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$db_user = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$db_pass = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$db_name = $GLOBALS['_OPENPNE_DSN_LIST']['main'][...
$u = $GLOBALS['AUTH']->uid(); //ユーザID
$conn = mysql_connect($db_host, $db_user, $db_pas...
mysql_select_db($db_name);
//ユーザIDとプロフィールIDで選択
$sqlcmd ="SELECT * FROM c_member_profile where c_...
$result = mysql_query($sqlcmd);
$count = mysql_num_rows($result);
$r = mysql_fetch_array($result);
$kubun = $r["value"];
//複数ヒットするときの例
// $i = 0;
// while ($r = mysql_fetch_array($result)){
// $kubun[$i] = $r["value"];
// $i++;
// }
echo "区分 $kubun <Br>";
***携帯のSSLページJump [#g20a6e80]
アンカーを通常のようにすると自己認証の場合Softbankではエ...
このときページがphpでは認証エラーが生じるが、htmlだとOKだ...
第一のページ~
''ktaissl.html''~
<FORM ACTION="https://192.xxx.xxx.xxx/openpne_data/ktais...
<INPUT TYPE="submit" VALUE="SSLへ">
</FORM>
第2のページ~
''ktaissl2.html''~
<form action="/openpne/?m=ktai" method="post" name="f">
<input type="submit" value="SSLあり">
</form>
''【携帯版】HTML挿入(ページ上部)''~
<a href="http://192.xxx.xxx.xxx/openpne_data/ktaissl.htm...
***紹介制から、登録制に変更 [#vc189bfb]
以下のようにソース変更より管理画面からデザイン=>ナビゲ...
ほかにも修正が必要かも
「友達を誘う」以下のページで行っているのでアクセス不可に...
-webapp/modules/pc/page/h_invite.php
-webapp/modules/ktai/page/h_invite.php
以下のページがパソコンのリンク元なので以下のように変更する
-webapp/lib/util/util.php
/* array('url' => '?m=pc&a=page_h_invite', 'caption' => ...
array('url' => '#', 'caption' => '友人を誘う'),
以下のページが携帯のリンク元(コメントアウト)
-webapp_biz/modules/ktai/templates/h_home.tpl
-webapp/modules/ktai/templates/h_home.tpl
({if $smarty.const.IS_USER_INVITE && ($smarty.const.OPE...
$smarty.const.OPENPNE_REGIST_FROM_NONE)})[i:140]<!-- <a ...
a=page_h_invite})&({$tail})">友人を誘う</a> --><br>(...
以下のところに携帯で紹介制だとあるので変更
-webapp/modules/portal/templates/portal_user_top_ktai.tpl
-webapp/modules/portal/templates/preview_ktai.tpl
-webapp/modules/ktai/templates/o_login.tpl
変更前
({$SNS_NAME})は招待制のソーシャルネットワーキングサービ...
登録には({$SNS_NAME})({if $smarty.const.IS_USER_INVITE})...
変更後
({$SNS_NAME})は学内専用のソーシャルネットワーキングサー...
登録には({$SNS_NAME})({if $smarty.const.IS_USER_INVITE})...
**参考ページ [#ubbcffdd]
-http://fedorasrv.com/openpne.shtml
-[[smartyマニュアル:http://www.smarty.net/manual/ja/]]
-[[テーブル内容について:http://jisaku-sns.info/modules/pu...
-[[テーブル内容(内部)>Linux Memo/OpenPNE_Table]]
ページ名: