instalasi laravel dan requsitenya

instalasi

    PHP >= 5.5.9 , saya sarankan untuk memiliki php 7 di banding memenuhi requirement
    bisa juga memakai xampp atau sejenis
    composer
    apache tidak terlalu di perlukan karena mirip dengan ionic sehingga bisa memakai command

    php artisan serve

untuk mac , linux , maupun windows akan sangat memerlukan terminal / command prompt untuk create project
sehingga pemahaman tentang global path akan sangat di perlukan

ketika masuk melalui terminal pastikan versi php anda sesuai dengan minimum atau lebih besar dengan cara

php -v

php version check

kemudian instalasi composer, untuk composer ini di perlukan layaknya maven atau ant di pemrograman java , composer bertugas untuk memenuhi segala dependency yang di perlukan oleh laravel dan yang sedikit mengejutkan adalah laravel memerlukan dependency dari symphony cara instalasi composer adalah ( dapat di lihat di https://getcomposer.org/doc/00-intro.md ) sebagai berikut

    https://getcomposer.org/download/

php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”

php -r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”

php composer-setup.php

mv composer.phar /usr/local/bin/composer

php -r “unlink(‘composer-setup.php’);”

    instalasi laravel
    composer global require “laravel/installer”
    pada command prompt / terminal lakukan

    laravel new blog

sebagai tambahan untuk path di mac adalah sebagai berikut
which php -> /usr/bin/php
nano ~/.bash_profile -> tambahkan export PATH=/Applications/XAMPP/bin/:$PATH
save
source ~/.bash_profile

dan silahkan ketik php -v untuk dapat menggunakan php dari xampp di terminal / commandpromt

membuat environment development testing dan production

pada yii di index file kita akan merubah / menambah

[code]
//choose environment development
$appEnv = filter_input(INPUT_ENV, ‘APPLICATION_ENV’, FILTER_SANITIZE_ENCODED);
$serverName = filter_input(INPUT_SERVER, "SERVER_NAME", FILTER_SANITIZE_SPECIAL_CHARS);
if (!isset($appEnv)) {
if (true === stripos($serverName, ‘localhost’)) {
$appEnv = "development";
} else
if (true === stripos($serverName, ‘www.meltonice.com’)) {
$appEnv = "testing";
} else
if (true === stripos($serverName, ‘www.kresna.host’)) {
$appEnv = "production";
} else {
$appEnv = "development";
}
}
if ($appEnv == "production") {
$config = dirname(__FILE__) . ‘/protected/config/production.php’;
}
if ($appEnv == "development") {
// remove the following lines when in production mode
defined(‘YII_DEBUG’) or define(‘YII_DEBUG’, true);
$config = dirname(__FILE__) . ‘/protected/config/main.php’;
}
if ($appEnv == "testing") {
$config = dirname(__FILE__) . ‘/protected/config/testing.php’;
}

[/code]

sehingga kita dapat membuat file config masing2 dan tanpa repot untuk merubah setting dan konfigurasi untuk database, logging dan lain sebagainya ūüėÄ

redirect dengan count down

sebelum saya tertidur karena mengantuk dan kondisi kurang fit saya akan membagikan info tentang bagaimana redirect menggunakan ajax beserta count down js ūüėÄ

pertama install ecountdown action

lalu set flash yang akan di tampilkan beserta countdownnya dan ajax request

[code]
<?php if (Yii::app()->user->hasFlash(‘order’)) { ?>

<div class="flash-success">
<?php echo Yii::app()->user->getFlash(‘order’); ?>
</div>
<?php
$this->widget(‘ext.ecountdownaction.ECountdownAction’, array(
‘seconds’ => 10, //8 seconds
‘action’ => ‘¬†¬† $.ajax(
{
type: "POST",
url: location.pathname+"/index.php?r=site/redirect",
success: function (results)
{
obj = JSON.parse(results);

window.location.href=obj.redirect;
}
});’, //action code…
)
);
}
//
//$this->redirect(array(‘user/registration’), array(‘model’ => new LoginForm));
?>

[/code]

 

lalu pada controller

[code]
public function actionRedirect() {
echo json_encode(array(‘redirect’ => $this->createUrl(‘/user/registration’)));
}

[/code]

 

cukup sederhana tapi membuat pusing LOL

php extension untuk mac osx maverick

http://stackoverflow.com/questions/6588174/enabling-postgresql-support-in-php-on-mac-os-x

The PHP version that comes bundled with OS X doesn’t include PostgreSQL. You’ll have to compile the extension yourself. Here are some instructions:

  1. Find your version of PHP: php -v.
  2. Download the version of PHP that matches yours: curl -O http://us.php.net/distributions/php-5.3.3.tar.gz. (This example downloads PHP 5.3.3 but this must match your version)
  3. Extract the archive you downloaded: tar -xzvf php-5.3.3.tar.gz
  4. Change to the PostgreSQL’s extension directory: cd php-5.3.3/ext/pgsql/
  5. Type phpize.
  6. Type ./configure.
  7. Type make.
  8. Type sudo make install.
  9. Add the extension to you php.ini file by adding extension=pgsql.so. (You may already have done this)
  10. Restart Apache.

Update for OS X Mountain Lion Apple has removed autoconf from the newer versions of XCode so the procedure above will fail at #5. To solve that problem:

  1. Type /usr/bin/ruby -e "$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)". *->kecuali yang ini tidak bisa di pakai
  2. Type sudo chown -R $USER /usr/local/Cellar.*->ini juga gak perlu
  3. Type brew update.
  4. Type brew install autoconf.

That should install autoconf and allow you to install the module using the instructions above.

*tutorial di atas juga dapat di gunakan untuk curl ataupun extension yang lain untuk php extension ketia bermasalah

 

**note untuk install mcrypt harus install terlebih dahulu libmcrypt yang bisa di download di sini

  1. cd libmcrypt-2.5.8
  2. ./configure
    make
    sudo make install

kalau sudah baru lanjutkan di php/ext/mcrypt

phpize ./configure dan seterusnya

 

 

logging pada yii web apps

sering kali kita perlu untuk melakukan logging pada saat development, testing maupun production berikut adalah cara untuk setting loggin

[code]

‘log’ => array(
‘class’ => ‘CLogRouter’,
‘routes’ => array(

//disini di gunakan untuk file log
array(
‘class’ => ‘CFileLogRoute’,
‘levels’ => ‘info,trace’,
‘categories’ => ‘system.*’,
),

//di sini di gunakan untuk profiling database
array(‘class’ => ‘CProfileLogRoute’,
‘report’ => ‘summary’,),

//disini di gunakan untuk web log route yang akan di munculkan di halaman paling bawah website
array(
‘class’ => ‘CWebLogRoute’,
),

// ini adalah fitur yang paling penting ketika production yang akan mengirimkan log berupa info, trace, error dan warning terkecuali yang masuk class system.base.cmodule dan , system.db, systemcmodule , system.web.filters
array(
‘class’ => ‘CEmailLogRoute’,
‘levels’ => ‘info,trace,error, warning’,
’emails’ => ‘freddokresna@gmail.com’,
‘except’ => ‘system.base.CModule.* ,system.db.*, system.CModule.*,system.web.filters.CFilterChain’,
),
),
),

[/code]

untuk profiling database bisa di lihat di profiling database

membuat profiling untuk YII

pada index.php

[code]

Yii::beginProfile(‘blockID’);
Yii::createWebApplication($config)->run();

Yii::endProfile(‘blockID’);

[/code]

 

pada config di database kita set

[code]
‘db’ => array(
‘connectionString’ => ‘mysql:host=127.0.0.1:3306;dbname=mydb’,
’emulatePrepare’ => true,
‘username’ => ‘freddokresna’,
‘password’ => ‘freddokresna’,
‘charset’ => ‘utf8’,
‘enableProfiling’ => true,
),

[/code]

sehingga kita akan bisa melihat hasil profilling time dari query2 yang kita lakukan

membuat multiple application environment

pada web apps kita sering mempunyai beberapa settingan berbeda untuk koneksi database dan fitur config lainnya

mulai dari stage development, testing hingga production

berikut adalah cara untuk setting multiple app environment pada YII framework

sebagai contoh berikut adalah setting yang saya pakai di index.php

[code]

//choose environment development
$appEnv = filter_input(INPUT_ENV, ‘APPLICATION_ENV’, FILTER_SANITIZE_ENCODED);
$serverName = filter_input(INPUT_SERVER, "SERVER_NAME", FILTER_SANITIZE_SPECIAL_CHARS);
if (!isset($appEnv)) {
if (FALSE === stripos($serverName, ‘localhost’)) {
$appEnv = "development";
} else
if (FALSE === stripos($serverName, ‘www.meltonice.com’)) {
$appEnv = "testing";
} else
if (FALSE === stripos($serverName, ‘www.usa4u.com’)) {
$appEnv = "production";
} else {
$appEnv = "development";
}
}
if ($appEnv == "production") {
$config = dirname(__FILE__) . ‘/protected/config/production.php’;
}
if ($appEnv == "development") {
$config = dirname(__FILE__) . ‘/protected/config/main.php’;
}
if ($appEnv == "testing") {
$config = dirname(__FILE__) . ‘/protected/config/testing.php’;
}

[/code]

jasper server error php sample

sangat excited ketika mencoba menginstall jasper server karena ada fitur baru pada jasper server 5.5 dengan integrasi pada php

karena saya menggunakan php 5.5 dan sample menggunakan php 5.3 muncul banyak error

*yang paling penting baca dulu readme nya karena harus install pear dan netdime

berikut error yang di temukan adalah adanya karakter ‘&’

pada
function ws_runReport($uri, $report_params, $output_params, &$attachments )

*yang saya juga baru tau kalau ada variable seperti itu di php :))

gammu instalasi fedora 18 dari source

download source dari sini

install requirement dari gammu

yum groupinstall ‘Development Tools’

yum install gcc gcc-c++ make qt-devel zlib-devel openssl-devel

yum install cmake -y

yum install libusb-1_0-devel libdbi-devel bluez-devel postgresql-devel  mysql-devel python-devel libcurl-devel cmake pkgconfig unixODBC-devel glib2-devel libgudev-1_0-devel

 

cd folder gammu yang di extract

./configure

make install

dan terakhir make test dan pastikan tidak ada error

jika ada error maka langkahnya adalah

  1. mkdir build
  2. cmake .. ( pada saat ini silahkan lihat apakah ada lib yang belum terinstall maupun function yang disable )
  3. make
  4. make install
  5. make test

dan pastikan saat test tidak ada error

ketik gammu

jika error libso7

ln -s /usr/local/lib/libGammu.so /usr/lib/libGammu.so.7

ln -s /usr/local/lib/libgsmsd.so /usr/lib/libgsmsd.so.7

dari folder docs/config

cp gammurc smsdrc /etc

gammu-config –> config sesuai phone yang akan di detect ( bisa dengan cara gammu-config lalu copy /root/.gammurc ke /etc/gammurc )

gammu –identify –> akan muncul koneksi ke hp dan silahkan di otorisasi

dibawah adalah contoh identify yang benar ketika di identify dengan soner k770i

Device               : 00:23:F1:FD:45:2E
Manufacturer         : Ericsson
Model                : K770i (AAD-3022082-BV)
Firmware             : R8BC004 071211 1434 1202-3599_CHINA_VI
IMEI                 : 353627031610481
Product code         : AAD-3022082-BV
SIM IMSI             : 510112314950209

buat folder log yang nanti di pakai

mkdir /var/log/gammulog dan mkdir /var/log/smsdlog + touch /var/log/gammulog

kemudian pada bagian

nano /etc/smsdrc

[smsd]
# SMSD service to use, one of FILES, MYSQL, PGSQL, DBI
service = MYSQL
# PIN for SIM card
#PIN = 1234

pagar pin 1234

service = sql
driver = native_mysql

pada bagian mysql

# Database backends congfiguration
user = root
password =

copy file

cp contrib/init/gammu-smsd.rh /etc/init.d/GammuSmsd

nano /etc/init.d/GammuSmsd ( remark user dan group ) rubah configfile =”etc/smsdrc”

pada bagian [gammu]

¬†#user=”gammu”
#group=”gammu”
bin=”/usr/local/gammu/bin/gammu-smsd”
configfile=”/etc/gammu-smsdrc”
pidfile=”/var/run/gammu.pid”

kemudian chkconfig –add GammuSmsd

launch dengan

gammu-smsd –config /etc/smsdrc

jika error libso

# ln -s /usr/local/lib/libGammu.so /usr/lib/libGammu.so.7

# ln -s /usr/local/lib/libgsmsd.so /usr/lib/libgsmsd.so.7

cara kirim email dengan php pada sll atau tls

[php]

$host = "ssl://mail.bernofarm.co.id";
$port = "465";
$username = "freddo@bernofarm.co.id";
$password = "freddo";

$headers = array(‘From’ => $from,
‘To’ => $to,
‘Subject’ => $subject);
$smtp = Mail::factory(‘smtp’, array(‘host’ => $host,
‘port’ => $port,
‘auth’ => true,
‘username’ => $username,
‘password’ => $password));
//    echo "to = " . $to;
//    echo "<br>subject = " . $subject;
echo "<br> Headers =" . $headers;
var_dump($headers);
$mail = $smtp->send($to, $headers, $body);
$mails = $smtp->send($from, $headers, $body);
//    $mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail) && PEAR::isError($mails)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>" . $reportSentToMail);
}

[/php]

membuat applikasi chat dengan YII

download https://bitbucket.org/christiansalazarh/yiichat

ekstract di protected/extensions/

pada main.php setting

[php]

‘imports’=>array( ‘application.extensions.yiichat.*’, ),

[/php]

pada site controller

[php]

class SiteController extends Controller {

public function actions() {

return array(
‘captcha’=>array(
‘class’=>’CCaptchaAction’, ‘backColor’=>0xFFFFFF, ),
‘page’=>array( ‘class’=>’CViewAction’, ),</pre>
‘yiichat’=>array(‘class’=>’YiiChatAction’), //
}
[/php]

pasang widget pada index.php

[php]
<h1>Yii Chat Demo</h1>
<div id=’chat’></div>
<?php $this->widget(‘YiiChatWidget’,
array( ‘chat_id’=>’123’, // a chat identificator ‘identity’=>1,
// the user, Yii::app()->user->id ? ‘selector’=>’#chat’,
// were it will be inserted ‘minPostLen’=>2,
// min and ‘maxPostLen’=>10, <
// max string size for post ‘model’=>new MyYiiChatHandler(),
// the class handler. **** FOR DEMO, READ MORE LATER IN THIS DOC ****
‘data’=>’any data’, // data passed to the handler
// success and error handlers, both optionals.
‘onSuccess’=>new CJavaScriptExpression
( "function(code, text, post_id){ }"),
‘onError’=>new CJavaScriptExpression
( "function(errorcode, info){ }"), )); ?>

[/php]

voila, demo chatting sudah bisa di akses ūüôā

membuat forum dengan YII

download http://www.yiiframework.com/extension/yii-forum/files/yii-forum-0.3.zip

untuk instalasi YII

extrak di folder apps/protected/modules

berikan configurasi ini di main.php

dan jangan lupa untuk membuat koneksi ke database dan mengimport sql di folder modules/forum/data

'modules'=>array(
    'forum'=>array(
        'class'=>'application.modules.yii-forum.YiiForumModule',
    ),
),

pada user identity tambahkan

 $this->setState('isAdmin', ($this->name == 'admin'));

setelah itu silahkan akses http://localhost/apps/index.php?r=forum

mengirim email dengan format html melalui email

¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† “Content-type: text/html; charset=iso-8859-1rn”;

di atas adalah configurasi untuk header agar email kita dalam bentuk html dapat di baca secara maksimal

$headers¬†.=¬†“Content-type:¬†text/htmlrn”;

sedangkan baris di atas adalah cara mengirimkan menjadi attachment berbentuk html

$headers¬†.=¬†“Content-type:¬†textrn”;

pada baris di atas juga mengirimkan attachment tetapi tanpa format html

php date time setting ( timezone )

date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.

jika muncul error d atas maka

silahkan edit php.ini di /etc/php.ini

dan rubah

date.timezone = “Asia/Jakarta”

untuk list timezone silahkan lihat di sini

save dan restart httpd

pada fedora 18 lakukan restart httpd

systemctl restart httpd

instalasi yii

download yii dan dokumentasinya

http://www.yiiframework.com/download/

extract yii pada web root folder

pada fedora adalah /var/www

pada windows dengan xampp adalah htdocs

khusus pada fedora silahkan

chmod 777 -R /var/www/*

agar tidak mengganggu pada saat development, 775 juga boleh ūüôā

kemudian untuk instalasi yii

  1. cd /var/www/html

  2. /yii/framework/yiic webapp testdrive

  3. yes

maka semua file akan di generate oleh YII

silahkan akses ke loclalhost/yii

di folder /var/www/html akan muncul folder baru yaitu testdrive

karena fedora 18 sel linuxnya sangat ketat

grep httpd /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

untuk memberikan hak akses pada httpd servernya

kemudian masih akan muncul error timezone pada instalasi awal yang php.ini nya masih belum di setting timezone

date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.

 

silahkan edit php.ini di /etc/php.ini

dan rubah

date.timezone = “Asia/Jakarta”

save dan restart httpd

systemctl restart httpd

 

dan voilaaa halaman awal yii bisa di akses

instalasi php dan httpd server fedora 18

buka terminal

login sebagai super user

yum install httpd

yum install  php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php php-common

systemctl start httpd.service # untuk start service

systemctl enable httpd.service #untuk enable boot start

buka browser dan ketik url localhost maka akan muncul halaman page Fedora Test Page

belajar php dasar 1

Untuk belajar PHP dasar berikut adalah tools yang dapat di gunakan

Editor windows

  1. notepad
  2. notepad ++
  3. dreamweaver
  4. netbeans
  5. eclipse
  6. komodo edit
  7. editplus
  8. phped

editor linux

  1. gedit
  2. nano / vi / text editor by terminal lainnya
  3. eclipse
  4. netbeans

Untuk Pemula saya sarankan menggunakan notepad atau notepad ++ dengan highlightnya

web server dan database KIT

  1. xampp
  2. wampp
  3. appserver
  4. instalasi manual apache, php , mysql

Untuk pemula  saya sarankan untuk menginstal xampp  untuk xampp linux

kenapa menggunakan xampp kit tersebut?

  1. karena programmer tidak perlu mempelajari terlalu rumit serba serbi tentang industri web dan cara pemrograman php khususnya
  2. kemudahan dan struktur yang lebih mudah di mengerti karena terdapat pada sebuah folder khusus
  3. kestabilan di utamakan ūüėÄ
  4. silahkan pilih versi yang manapun anda suka pada saat blog ini di tulis xampp sudah mencapai versi 1.8.1

Untuk instalasi masing2 silahkan lihat pada website official xampp

Web Hosting

Kami sebagai Developer website menyediakan jasa penyewaan web hosting IIX ( indonesia ) maupun USA  ( amerika )

Dengan Harga

Rp. 100.000,-/100Mb ( USA )

Rp. 150.000,- / 100Mb ( indonesia )

menggunakan Cpanel dan Softaculous

Karena kami adalah starter dalam penyediaan ini maka pembelian penyewaan hanya di layani via telp 08175065539 maupun email freddokresna@meltonice.com