cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

20

Click here to load reader

Transcript of cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

Page 1: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

Bagaimana cara Install Nginx Dengan PHP5 Dan

Dukungan MySQL Pada CentOS 6.5

Page 2: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

SISTEM OPERASI 2

Nama : Erwin A. Hi. Hafel

Npm : 121055520111262

KOMPUTASi

Page 3: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

TENTANG NGINX

• Nginx adalah Software gratis, opensource, kinerja tinggi pada server HTTPDan PROXY. Nginx dikenal denganstabilitasnya, kaya akan fitur, konfigurasiyang sederhana, dan konsumsi sumberdaya yang rendah.

• http://id.wikipedia.org/wiki/Nginx

• http://nginx.org/

Page 4: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

• Tutorial ini menunjukkanbagaimana Anda dapatmenginstal Nginx pada CentOS6.5 server dengan dukunganPHP5 (melalui PHP-FPM) dandukungan MySQL.

Page 5: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

1. Catatan Awal

• Dalam tutorial ini saya menggunakan server1.example.com nama host dengan alamat IP 192.168.0.100. Pengaturan ini mungkin berbeda untuk Anda, sehingga Anda harus menggantinya jika sesuai.

Page 6: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

2. Mengaktifkan Repositori Tambahan

• php-fpm tidak tersedia pada repositori resmi CentOS, tetapi dari repositori RPM Remi yang berdiri sendiri dan juga tidak bergantung pada repositori EPEL, nah kita dapat mengaktifkan kedua repositori tsb dengan cara sebagai berikut:

• Ketikan perintah di Terminal seperti di bawah inirpm --import https://fedoraproject.org/static/0608B895.txtrpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remirpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

yum install yum-priorities

Page 7: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

ISI KAN SCRIPT SEPERTI DI BAWAH INI

[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...]

Setelah itu Edit Repistory epel dengan perintah seperti berikut;vi /etc/yum.repos.d/epel.repo

ISI KAN SCRIPT SEPERTI DI BAWAH INI

[remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority

Lakukan Hal yang sama pada repistory remi dengan perintah seperti berikut;vi /etc/yum.repos.d/remi.repo

Page 8: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

3. Installing MySQL 5• menginstal MySQL 5

#yum install mysql mysql-server

• Lalu kita membuat link startup sistem untuk MySQL (sehingga MySQL dijalankan secara otomatis setiap kali sistem boot) dan memulai server MySQL:

#chkconfig --levels 235 mysqld onservice mysqld start

• Sekarang cek jaringan yang diaktifkan. Jalankan Mysql nya

netstat -tap | grep mysql

• Jika mysql nya berjalan atau sudah aktif, harusnya terlihat seperti di bawah ini;[root@server1 ~]# netstat -tap | grep mysqltcp 0 0 *:mysql *:* LISTEN 1279/mysqld

• Setelah itu Jalankan Mysql

[root@server1 ~]# mysql_secure_installation

Setelah ini akan ada Permintaan masukan Password Baru. Jika anda tidak mau masukan Password alias root bisa Langsung Tekan ENTER

Page 9: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

INSTALL NGINX

• Install Nginx#yum install nginx

• Setelah itu Lalu kita membuat link startup sistem untuk nginx dan memulainya:#chkconfig --levels 235 nginx on

service nginx start

• Ada kemungkinan bahwa Anda mendapatkan error seperti port 80 sudah digunakan, pesan kesalahan akan menjadi seperti ini

[root@server1 ~]# service nginx start

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] still could not bind()

[FAILED]

Page 10: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

• Kesalahan ini Terjadi karena Apache sudah mengisi port 80. nah untuk menghentikan Apache cara nya sbb:#apachectl stop

#yum remove httpd

#chkconfig --level 235 httpd off

• Nah setelah Apache telah Di stop sekarang jalankan kembali Mysqlnyachkconfig --levels 235 nginx onservice nginx start

• Next Kita akan membuka Halaman Page NGINX di Browser Ketik alamat IP web server Anda atau nama host ke dalam browser (misalnya http://192.168.0.100), dan anda akan melihat halaman selamat datang nginx seperti gambar di bawah ini

Page 11: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

INSTALL PHP5

• Kita bisa membuat PHP5 di nginx melalui PHP-FPM (PHP-FPM (FastCGI ProcessManager) merupakan implementasi PHP FastCGI alternatif dengan beberapa fiturtambahan yang berguna untuk situs dari berbagai ukuran, terutama situs sibuk).Kita dapat menginstal php-fpm bersama dengan php-cli dan beberapa modul PHP5seperti php-mysql yang Anda butuhkan jika Anda ingin menggunakan MySQL dariscript PHP ketik periintah seperti dibawah ini:#yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

• APC adalah PHP opcode cacher gratis dan terbuka untuk caching danmengoptimalkan kode menengah PHP. Hal ini mirip dengan tembolok PHP opcodelainnya, seperti eAccelerator dan XCache. Hal ini sangat dianjurkan untuk memilikisalah satu dari ini untuk dipasang agar mempercepat halaman PHP Anda.APC dapat diinstal dengan cara sebagai berikut :

#yum install php-pecl-apc

Page 12: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

• Kemudian ketik perintah berikut/etc/php.ini and set cgi.fix_pathinfo=0

• Lalu Edit repistory nya :

vi /etc/php.ini

• Masukan Script Ini[...]

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's

; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok

; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting

; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting

; of zero causes PHP to behave as before. Default is 1. You should fix your scripts

; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo

cgi.fix_pathinfo=0

[...]

(Silakan baca http://wiki.nginx.org/Pitfalls untuk mengetahui mengapa Anda harus melakukan ini.)

Page 13: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

• Disarankan untuk mengunakan Zona waktu default pada nginx agar tidak terjadi masalah. Untuk Mengedit waktu default ikuti cara berikut.

Ketik perintah berikut

... in /var/log/php-fpm/www-error.log when you call a PHP script in your browser, you should set

date.timezone in /etc/php.ini:

Masukan Script Berikut ;

[...]

[Date]

; Defines the default timezone used by the date functions

;http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone="Europe/Berlin“

[...]

• Untuk mengetahui zona waktu yang benar untuk sistem anda.

root@server1 nginx]# cat /etc/sysconfig/clock

ZONE="Europe/Berlin"[root@server1 nginx]#

• Berikutnya membuat link startup sistem untuk php-fpm dan memulainya:chkconfig --levels 235 php-fpm onservice php-fpm start

• PHP-FPM adalah proses daemon (dengan /etc/init.d/php-fpm init script) yang menjalankan FastCGI server pada port 9000.

Page 14: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

Configuring nginx

• Konfigurasi nginx di /etc/nginx/nginx.conf yang kita buka sekarangvi /etc/nginx/nginx.conf

Pertama Anda dapat meningkatkan jumlah proses kerja dan mengatur keepalive_timeout ke nilai wajar:[...]

worker_processes 4;

[...]

keepalive_timeout 2;

[...]

• Virtual host didefinisikan dalam server {} kontainer di direktori /etc/nginx/conf.d. Mari kita memodifikasi vhost default (dalam /etc/nginx/conf.d/default.conf) sebagai berikut:vi /etc/nginx/conf.d/default.conf

• Setting Konfigurasi nya seperti script Berikut ini ;

Page 15: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

• [...]

server {

listen 80;

server_name _;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root /usr/share/nginx/html;

index index.php index.html index.htm;

}

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

} # redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

# proxy_pass http://127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

location ~ \.php$

Page 16: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

root /usr/share/nginx/html;

try_files $uri =404;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

# deny access to .htaccess files, if Apache's document root

# concurs with nginx's one

#

location ~ /\.ht {

deny all;

}

}

Script di atas pada Line 3 (server_name _; ) Bisa pasang Host yang kita buat.

• Sekarang simpan file dan isi ulang nginx :

• Habis itu buat file PHP dalam dokumen Root vi /usr/share/nginx/html/info.php

<?php

phpinfo();

?>

Page 17: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

• Sekarang kita Panggil file yang di browser misalnya; Http://192.168.0.100/info.php

• Seperti yang Anda lihat, PHP5 bekerja, dan itu bekerja melalui FPM / FastCGI, seperti yang ditunjukkan pada garis Server API. Jika Anda menggulir ke bawah, Anda akan melihat semua modul yang sudah diaktifkan di PHP5, termasuk modul MySQL:

Page 18: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

BUAT PHP-FPM Gunakan A Unix Socket

• Secara default PHP-FPM mendengarkan pada port 9000 pada 127.0.0.1. Hal ini juga memungkinkan untuk membuat PHP-FPM menggunakan soket Unix yang menghindari overhead TCP. Untuk melakukannya, buka /etc/php-fpm.d/www.conf ..

vi /etc/php-fpm.d/www.conf

Buat Script seperti dibawah ini[...]

;listen = 127.0.0.1:9000

listen = /tmp/php5-fpm.sock

[...]

• Kemudian kembali Reload PHP-FPM:service php-fpm reload

Page 19: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

• Selanjutnya konfigurasi nginx Anda dan semua vhosts Anda dan ubah baris fastcgi_pass 127.0.0.1:9000; untuk fastcgi_pass unix: /tmp/php5-fpm.sock;,

seperti ini:

[...]

location ~ \.php$ {

root /usr/share/nginx/html;

try_files $uri =404;

fastcgi_pass unix:/tmp/php5-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

[...]

• Tahap Akhir

Reload kembali service Nginx

service nginx reload

Page 20: cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5

SUMBER

•Page 1 http://www.howtoforge.com/how-to-install-nginx-with-php5-and-php-fpm-and-mysql-on-centos-6.5

Page 2http://www.howtoforge.com/how-to-install-nginx-with-php5-and-php-fpm-and-mysql-on-centos-6.5-p2