Tampilkan postingan dengan label apache. Tampilkan semua postingan
Tampilkan postingan dengan label apache. Tampilkan semua postingan

2009-05-11

php konek MS SQL Server? kenapa tidak?

setelah sekian lama menggunakan php dan belun pernah konek ke mssql dari linux box, hari ini akhirnya mencoba dan berhasil.

kalo apache+phpnya ada di windows, proses gampang banget. tinggal hapus ";" di php5.ini tepat pas di php_mssql.dll, restart apache, selesei.

kalo dari linux box agak ribet, musti install php-pear, freetds dsb. berikut urut2annya:
1. Download FreeTDS dari http://www.freetds.org/
2. extract dan install
# tar zxvf freetds-stable.tgz
# cd freetds-0.82/ <-- versi gw, trgantung dari donlodan # ./configure --prefix=/usr/local/freetds # make # $ make install
3. Install php-pear, php-sybase, php5-dev
seperti biasa, ada cara mudah dan cara susah, cara mudahnya seperti ini :
apt-get install php5-sybase php-pear php5-dev
cara susahnya :P, seperti ini :
masuk ke direktori installer php, ketik :
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mssql=/usr/local/freetds/

di pcku ada masalah pada waktu konfigurasi, dia mengeluarkan error :
configure: error: Directory /usr/local/freetds/bin is not a FreeTDS
apabila ada error seperti ini, yg harus dilakukan adalah copy 2 file (tds.h & libtds.a) dari hasil extract-an freetds-stable.tgz (di pc gw di direktori : /home/detanto/Desktop/freetds-0.82) :
cp /home/detanto/Desktop/freetds-0.82/include/tds.h /usr/local/freetds/include
cp /home/detanto/Desktop/freetds-0.82/src/tds/.libs/libtds.a /usr/local/freetds/lib
setelah proses copy selesai, configure lagi dan lanjutkan ke make & make install
#make
# make install
4. edit file freedts.conf yang ada di /usr/local/freetds/etc
vi /usr/local/freetds
trus beri konfigurasi sql server yang akan kita hubungi
[SQLsystem]
host =10.1.2.7
port = 1433
tds version = 7.0
5. testing dari php, buat file test.php, trus masukkan kode ini :
putenv('TDSVER=80');
putenv('FREETDSCONF=/usr/local/freetds/etc/freetds.conf');
$db_conn = mssql_connect("SQLsystem","detanto","112233")
or die( "ERROR: DB Connection failed" );

$sqldb=mssql_select_db("ITEMMASTER",$db_conn);
$sql="SELECT top 10 PRODUCT_NAME,ITEM_IMAGE1 FROM TB_ITEM_MASTER WHERE ITEM_IMAGE1 IS NOT NULL";
$tbl_item=mssql_query($sql);
while($row=mssql_fetch_array($tbl_item))
{
echo $row['PRODUCT_NAME']."\n";
mssql_close($db_conn)
6. Restart apache dan buka file test.php

Kalo kode ini berhasil, brarti dah sukses dah :D

2009-03-27

subversion server di debian, tortoiseSVN sbg client di windows

lagi nyari solusi untuk kolaborasi source code dengan rekan satu team. dari saran ifnu, aku coba pake subversion (http://subversion.tigris.org), untuk instalasi windows tinggal donlod versi windowsnya dan install bla2 selese.

ubuntu, debian:
apt-get install subversion
Dulu aku kira ini cuman bs dipake di bahasa pemrograman tertentu, trnyata bisa untuk semuanya (jadi malu :P) .. Jadi critanya di kantor gw, krn developernya kluar masuk jd susah mantau versi terbaru dari aplikasi.

berikut diterjemahin dari svn-book, hasil browsing2 di internet dan share pengalaman.

Apakah subversion itu?
subversion : sistem tersentralisasi untuk share informasi.
intinya adalah repositori yang merupakan pusat dari data. repositori ini sebetulnya mirip dengan file-server, bedanya ia mengingat setiap perubahan yang terjadi di file dan folder tersebut.

di bukunya dijelasin kasus yg sering banget terjadi di kantorku baik sekarang maupun dulu, yaitu mengerjakan satu project yang sama beramai-ramai dengan source code terpusat di server, rese bgt kalo kita ngerjain ABCDE tiba user numpukin dengan EFGH, hangus lah kerjaan kita .. hiks2. misalnya :


ada 2 user, harry dan sally. mereka bertugas untuk mengerjakan project yang sama sehingga mereka mengakses ke repository yang sama. harry & sally mengedit project A, harry merubah menjadi A' dan sally menjadi A'', asumsi harry melakukan proses penyimpanan terlebih dahulu, sehingga project A sekarang menjadi project A'. baru setelah itu sally melakukan penyimpanan. nah pada proses ini ada kemungkinan sally menumpuk atau menimpa pekerjaan harry dengan pekerjaannya.

kalo yang diatas menggunakan metode file sharing, subversion menggunakan metode solusi copy-modify-merge.

detail kasus persis seperti yang dicontohkan diatas, cuman sekarang menggunakan subversion. harry merubah project menjadi A' dan sally merubah menjadi A'', sementara sally sudah menyimpan ke server (commit) terlebih dahulu. ketika harry melakukan penyimpanan ke repository, harry akan mendapat mesej error bahwa modul dia tidak update (karena versioning terakhir adalah sally).


harry harus melakukan checkout file2 ke repository, setelah proses checkout selesai, baru harry bisa melakukan perubahan dan commit ke repository. lha tapi gimana kalo harry dan sally melakukan edit di file yang sama? wew tetep bisa. subversion mengistilahkan ini dengan conflict. confilct dapat diresolve dengan membandingkan file yang di repository dan file yang ada di komputer harry. bisa dicek satu2 perbedaannya baru kemudian di-merge.

hal ini sangat memudahkan, karena kalo dulu pasti ada proses teriak2an dulu kalo lagi arisan koding di kantor hehhehehehehe

Langkah2 settingnya:
1. buat direktori subversion, misal ada di /var/svn/baru/usermng
mkdir -p /var/svn/baru/usermng
2. buat subversionnya :
sudo svnadmin create /var/svn/baru/usermng
3. import data yang akan dipantau
sudo svn import /opt/coding/usermanaj file://var/svn/baru/usermng -m "Aplikasi Subversion"
4. Setting apache
a. Cara Mudah :
apt-get install apache2 libapache2-svn
b.Cara Susah :
menyusul
5. Edit Konfigurasi apache svn yang ada di /etc/apache2/mods-available/dav_svn.conf (<-- lokasi ini kalo instalasi apache liwat apt-get)
DAV svn <-- untuk enabling repository #SVNParentPath /var/svn/baru/usermng <-- Path Repository untuk handling multiple svn SVNPath /var/svn/aplikasi/baru/usermng <-- Path Repository AuthType Basic  AuthName "Aplikasi Subversion" <-- Keterangan AuthUserFile /var/svn/passwd <-- Password file Require valid-user 
6. Ubah kepemilikan folder aplikasi jadi milik si apache
chown -R www-data: /var/svn/aplikasi
7. Buat password file :
httpasswd -c /var/svn/passwd detanto

Untuk clientnya, misalnya di windows; musti install tortoiseSVN yang bisa diunduh di http://tortoisesvn.tigris.org/, letak versi terbaru pada saat blog ini ditulis ada disini, filenya mayan besar; sekitar 19MB.

setelah diinstall, setiap kita klik kanan akan muncul 2 shortcut baru, SVN Checkout dan TortoiseSVN beserta link2nya.

Contoh Penerapan :
1. dari contoh diatas, kita sudah membuat satu repository untuk source code user manajemen (usermng). Misal kita buat satu folder baru "User", kita klik kanan trus pilih SVN Checkout (kalo gambarnya kurang jelas, tinggal diklik aja)


2. Akan muncul dialog box seperti dibawah ini :
masukkan url repository-nya; misalnya http://10.1.2.7/svn/usermng, setelah klik ok, akan muncul permintaan untuk memasukkan user dan password, masukkan user yang telah dicreate seperti contoh diatas :

apabila otorisasi berhasil, tortoiseSVN ini akan langsung memeriksa ke repository server semua filenya. apabila di folder kita blum ada maka akan diupdate ke folder tersebut :

setelah proses selesei, bila dilihat di windows explorer tampilannya akan seperti ini

tortoiseSVN akan menambahkan tanda di icon folder atau file, tanda cawang hijau brarti source yang disini source yg tidak mengalami konflik, atau subversion statusnya normal.

Pertanyaannya : ada ga subversion buwat database? gw blun tau, bahkan blun googling jugak heheheheheehe, paling gampang si semua aktivitas database didokumentasiin ke script trus folder script itu di register ke subversion, selesei :D

2008-05-23

install apache2, php dan keterkaitan dengan mysql

ada 2 cara untuk install apache, php, dan mysql di ubuntu. satu cara mudah, dua cara susah (gak susah juga sih, tapi minimal lebih susah :) )

cara mudah :

- install LAMP -> Linux, Apache, Mysql, PHP
ada yang bilang caranya tinggal "System" -> "Administration" -> "Synaptic package manager", trus pilih LAMP server, selesei

- pake apt-get install apache2 php5 libapache2-mod-php5

- apt-get install mysql-server mysql-client php5-mysql

cara susah :

download apache versi terbaru, php versi terbaru, mysql versi terbaru dulu

Apache
URL : http://httpd.apache.org/download.cgi

MySQL
URL : http://dev.mysql.com/downloads/

PHP
URL : http://www.php.net/downloads.php

Setelah selesei donlod, kita kerjain satu-satu

1. apache
detanto@detantonux:~/Documents/downloads$ tar xvzf httpd-2.2.8.tar.gz
detanto@detantonux:~/Documents/downloads$ cd httpd-2.2.8
detanto@detantonux:~/Documents/downloads$#./configure --prefix=/usr/local/apache2 --enable-mods-shared=most

perintah diatas memberitahu Apache untuk menginstall apache2 di direktori /usr/local/apache2 dan mengenablekan modul2 yang ada. Setelah selesei, ketik :

detanto@detantonux:~/Documents/downloads$ make
detanto@detantonux:~/Documents/downloads$ make install

2. MySQL

extract file donlodan trus liat di situ ada file judulnya : INSTALL-SOURCE trus cari bagian "MySQL Installation Using a Source Distribution", ini step2 perintah yang ada disitu

shell> groupadd mysql --> Tambahkan user group mysql untuk menjalankan daemonshell> useradd -g mysql mysql --> Tambahkan user group mysql untuk menjalankan daemon
shell> gunzip <> cd mysql-VERSION --> extract mysql
shell> ./configure --prefix=/usr/local/mysql --> configure untuk di-install ke /usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf --> copy konfigurasi my.cnf
shell> cd /usr/local/mysql
shell> chown -R mysql . --> Ubah kepemilikan direktori agar user mysql dapat membaca
shell> chgrp -R mysql . --> Ubah kepemilikan direktori agar user mysql dapat membaca
shell> bin/mysql_install_db --user=mysql --> Persiapkan core tabel-tabel untuk sistem mysql
shell> chown -R root .
shell> chown -R mysql var
shell> bin/mysqld_safe --user=mysql & start --> service mysql

Note :

>> Backup Database <<

mysqldump -u usernya -p namadatabase > /direktori/namabackup

>>. LUPA PASSWORD root <<

kalau kita lupa password root di mysql caranya kita bunuh dulu servicenya, trus ketik

./mysqld_safe --skip-grant-tables &

Setelah itu login ke mysql

./mysql --user=root mysql

kemudian ketik :

update user set Password=PASSWORD('qqwwee') WHERE User='root';

.done :D

3.PHP

ketik

detanto@detantonux:~/Documents/downloads$ tar xvzf php-5.2.5.tar.gz
detanto@detantonux:~/Documents/downloads$ cd
php-5.2.5
detanto@detantonux:~/Documents/downloads$ ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql

perintah diatas memberitahu PHP untuk menginstall di /usr/local/php, lokasi apache ada di /usr/local/apache2 dan mysql di /usr/local/mysql, setelah itu seperti biasa ketik :


detanto@detantonux:~/Documents/downloads$ make

kebetulan di notbukku lagsung error karena ada libxml2-config, dapat diseleseikan dengan apt-get install libxml2-dev, lanjut dengan make lagi.. trus make install.
Setelah selesei semua, kita edit httpd.conf dan php.ini-nya

detanto@detantonux:~/Documents/downloads$ sudo vi /usr/local/apache2/conf/httpd.conf

Dibagian , tambahin

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Dibagian LoadModule, kalo belum ada, tambahin

LoadModule php5_module modules/libphp5.so

Di bagian Directory Index tambahin, spy

DirectoryIndex index.html index.php

Setelah semua setting selesai, kita pasang apache, mysql sebagai service di server kita.

  1. apache

  2. mysql
    shell > cp share/mysql/mysql.server /etc/init.d/mysql
    shell >chmod +x /etc/init.d/mysql
Catatan :
  • Pada instalasi dengan apt-get, file konfigurasi apache ada di /etc/apache2/ dan semua konfigurasi ada di apache2.conf. Sementara kalo instalasi manual, konfigurasi ada di /usr/local/apache2/conf/httpd.conf
  • Ada beberapa command baru untuk apache dengan apt-get;
    a2dismod : untuk enable module
    a2dissite : untuk enable site
    a2enmod : untuk enable module
    a2ensite : untuk enable site
  • MySQL instalasi dengan apt-get file konfigurasi di /etc/mysql/my.cnf, yang manual di /etc/my.cnf. my.cnf harus dicomment bind-address=127.0.0.1-nya supaya bs diakses dari luar