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 31 32 33 34 35 36 37 38 |
pgpool http://pgpool.net/mediawiki/index.php/Yum_Repository yum install <a class="external free" href="http://www.pgpool.net/yum/rpms/3.4/redhat/rhel-6-x86_64/pgpool-II-release-3.4-1.noarch.rpm" rel="nofollow">http://www.pgpool.net/yum/rpms/3.4/redhat/rhel-6-x86_64/pgpool-II-release-3.4-1.noarch.rpm</a> yum install pgpool-II-pg93 アカウント設定して、 vi /etc/pgpool-II/pgpool.conf デフォルトで、 vi /etc/pgpool-II/pgpool.conf 起動せず service pgpool start pgpool サービスを開始中: [失敗] なんだろう。 再起動したらいけた # service postgresql restart postgresql サービスを停止中: [ OK ] postgresql サービスを開始中: [ OK ] # service pgpool start pgpool サービスを開始中: [ OK ] benchmark localhostで、100selectで4秒?遅すぎ? $ php pgsql.php 2015-12-09 05:55:21 2015-12-09 05:55:25 他のサーバからだと1秒 [ec2-user@ip-172-31-29-250 bench]$ php pgsql.php 2015-12-10 23:08:27 2015-12-10 23:08:28 |
月別アーカイブ:2015年12月
CURLOPT_RESOLVE
動的ドメイン解決したかったが、5.6でも7.0betaでも使えない。
PHP Notice: Use of undefined constant CURLOPT_RESOLVE – assumed ‘CURLOPT_RESOLVE’ in /home/nilesflow/php/dynamic-host-curl/request.php on line 9
Notice: Use of undefined constant CURLOPT_RESOLVE – assumed ‘CURLOPT_RESOLVE’ in /home/nilesflow/php/dynamic-host-curl/request.php on line 9
PHP Warning: curl_setopt() expects parameter 2 to be long, string given in /home/nilesflow/php/dynamic-host-curl/request.php on line 9
Warning: curl_setopt() expects parameter 2 to be long, string given in /home/nilesflow/php/dynamic-host-curl/request.php on line 9
追加されてない?と思ったが、
http://stackoverflow.com/questions/24351152/how-to-manually-resolve-hosts-in-https-connections-in-php
https://bugs.php.net/bug.php?id=63488&edit=3
ChangeLogはある。
http://www.php.net/ChangeLog-5.php#5.5.0
ソースを見ると、libcurlのバージョンに
#if LIBCURL_VERSION_NUM >= 0x071503 /* Available since 7.21.3 */
REGISTER_CURL_CONSTANT(CURLAUTH_ONLY);
REGISTER_CURL_CONSTANT(CURLOPT_RESOLVE);
#endif
yuminstallだと、7.19までしか入らない
libcurl-7.19.7-46.el6-x86_64
libcurlを更新
wget http://www.execve.net/curl/curl-7.46.0.tar.bz2
tar xf curl-7.46.0.tar.bz2
cd curl-7.46.0
./configure –enable-libcurl-option
make
make install
phpをリビルド
cd /usr/local/src/php-5.6.12
./configure 前と同じオプション
make
make install
wget pure-ftpd-1.0.32
※1.0.42は、configure で、autoconfでエラー
※yum install (1.0.30)でも動作
cd pure-ftpd-1.0.32
./configure –with-pam –with-pgsql=/var/lib/pgsql
make
make install
cp xxx /etc/init.d/pure-ftpd-src
cp xxx /etc/pure-ftpd/pure-ftpd-src.conf
PGSQLConfigFile /etc/pure-ftpd/pureftpd-pgsql.conf
PAMAuthentication no
UnixAuthentication no
CreateHomeDir yes
/etc/pure-ftpd/pureftpd-pgsql.conf
諸々
SELECT “Password” FROM users WHERE “User”=’\L’
ダブルクォーテーションが必要
yum -y install tcp_wrappers-devel.x86_64
yum install libcap-devel
wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz
tar xvzf vsftpd-3.0.3.tar.gz
cd vsftpd-3.0.3
vi vsf_findlibs.sh
vi builddefs.h
make
make install
vi /etc/init.d/vsftpd-3.0.3
postreqsql のインストール
yum install postgresql-server
# pam_pgsql をbuildするため
yum install postgresql-client
yum install postgresql-contrib
yum install postgresql-devel
pam_pgsqlのインストール
cd /usr/local/src/
wget https://github.com/pam-pgsql/pam-pgsql/archive/release-0.7.3.2.zip
unzip release-0.7.3.2.zip
cd pam-pgsql-release-0.7.3.2/
./autogen.sh
./configure –libdir=/lib64
#pamのlibが入っている
make
make install
# /usr/local/lib/security/pam_pgsql.so
vsftpd on postgresql
# su – postgres
-bash-4.1$ createuser vsftpd
新しいロールをスーパーユーザとしますか? (y/n)y
パスワード:
-bash-4.1$ psql -U postgres
ユーザ postgres のパスワード:
postgres=# alter user vsftpd with password ‘vsftpd’;
ALTER ROLE
-bash-4.1$ createdb vsftpd -U vsftpd
パスワード:
-bash-4.1$ psql -U vsftpd
ユーザ vsftpd のパスワード:
vsftpd=# CREATE TABLE “accounts”(
vsftpd(# “i_id” SERIAL,
vsftpd(# “s_username” VARCHAR(30) NOT NULL,
vsftpd(# “s_password” VARCHAR(50),
vsftpd(# “b_expired” BOOLEAN DEFAULT false,
vsftpd(# CONSTRAINT “accounts_s_username_key” UNIQUE(“s_username”)
vsftpd(# );
NOTICE: CREATE TABLEはシリアル列”accounts.i_id”用に暗黙的なシーケンス”accounts_i_id_seq”を作成します。
NOTICE: CREATE TABLE / UNIQUEはテーブル”accounts”に暗黙的なインデックス”accounts_s_username_key”を作成します
CREATE TABLE
vsftpd=# insert into accounts(s_username, s_password) values(‘xxxx’,md5(‘yyyyy’));
vsftpd設定
vi /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd
anonymous_enable=NO
virtual_use_local_privs=YES
guest_enable=YES
local_root=/home/nilesflow/vsftpd_root/$USER
hide_ids=YES
guest_username=nilesflow
user_sub_token=$USER
chroot_local_user=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES
vsftpd pam設定
vi /etc/pam.d/vsftpd
auth required pam_pgsql.so config_file=/etc/pam_pgsql_vsftpd.conf
account required pam_pgsql.so config_file=/etc/pam_pgsql_vsftpd.conf
vsftpd pam postgresql 設定
vi /etc/pam_pgsql_vsftpd.conf
debug
pw_type = md5
connect = hostaddr=127.0.0.1 port=5432 dbname=xxxxx user=xxxxx password=xxxxx connect_timeout=15
auth_query = select s_password from accounts where s_username = %u
acct_query = select b_expired as acc_expired, 0 as acc_new_pwreq, (s_password ISNULL OR s_password = ”) as user_password from accounts where s_username = %u
ディレクトリ作成
mkdir /home/nilesflow/vsftpd_root/nilesflow
local_rootでディレクトリ自動作成できないのが。。。
ディレクトリ作成できないのは、直接 secutil.c をいじればできるが(以下適当)
retval = str_mkdir(p_ext_dir_str, 0775);
chmod(str_getbuf(p_ext_dir_str), 0775);
retval = chown(str_getbuf(p_ext_dir_str), 0, 0);