Saturday, March 8, 2014

Install LEMP (Linux, Nginx, MySQL 5.5.29, PHP 5.4.11) on CentOS


linux-nginx-php-mysql

Apa itu Nginx?

Nginx (baca: engine x) adalah server HTTP dan reverse proxy gratis berbasis open-source berkemampuan tinggi, yang dapat juga digunakan sebagai proxy IMAP/POP3. Perangkat lunak ini diciptakan oleh Igor Sysoev pada tahun 2002, dan dirilis untuk pertama kalinya secara umum pada tahun 2004. Saat ini Nginx digunakan oleh 7.65% (22.8juta) nama domain di seluruh dunia. Nginx terkenal karena performanya yang tinggi, stabil, memiliki banyak fitur, mudah dikonfigurasi, dan menggunakan sedikit sumberdaya pada server.

Step 1: Installing Remi Repository

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Step 2: Installing Nginx Repository

Buat file untuk nginx repository,
# nano /etc/yum.repos.d/nginx.repo
Lalu masukkan baris berikut:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Step 3: Installing Nginx, MySQL 5.5.29, PHP 5.4.11 & PHP-FPM

# yum --enablerepo=remi,remi-test install nginx mysql mysql-server php php-common php-fpm

Step 4: Installing PHP 5.4.11 Modules

# yum --enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo

Step 5: Stopping Apache Service

Apache dan Nginx keduanya melakukan bind ke port yang sama (80), sehingga jika ingin menggunakan Nginx maka service Apache harus dimatiikan.
# chkconfig --levels 235 httpd off
# /etc/init.d/httpd stop

Step 6: Starting Nginx MySQL and PHP-FPM

## Enable Nginx, MySQL and PHP-FPM on Boot ##
# chkconfig --add nginx
# chkconfig --add mysqld
# chkconfig --add php-fpm

## Enable Nginx, MySQL and PHP-FPM on Run Levels ##
# chkconfig --levels 235 nginx on
# chkconfig --levels 235 mysqld on
# chkconfig --levels 235 php-fpm on

## Nginx Startup Commands ##
# /etc/init.d/nginx start
# /etc/init.d/nginx status

## MySQL Startup Commands ##
# /etc/init.d/mysqld start
# /etc/init.d/mysqld status

## PHP-FPM Startup Commands ##
# /etc/init.d/php-fpm start
# /etc/init.d/php-fpm status

Step 7: Configuring Nginx and PHP-FPM

Creating Website Directory:
# mkdir -p /srv/www/aquacyber/public_html
# mkdir /srv/www/aquacyber/logs
# chown -R nginx:nginx /srv/www/aquacyber
Creating Website Logs:
# mkdir -p /var/log/nginx/aquacyber
# chown -R nginx:nginx /var/log/nginx
Configuring Virtual Host Directories:
# mkdir /etc/nginx/situs-situsku
# mkdir /etc/nginx/situs-aktifku
Tambahkan baris berikut dibagian akhir pada /etc/nginx/nginx.conf
include /etc/nginx/situs-aktifku/*;
Sebagai contoh:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/situs-aktifku/*;
}
Creating Virtual Host file:
Tambahkan baris kode dibawah ke /etc/nginx/situs-situsku/aquacyber
server {
server_name aquacyber;
access_log /srv/www/aquacyber/logs/access.log;
error_log /srv/www/aquacyber/logs/error.log;
root /srv/www/aquacyber/public_html;

location / {
index index.html index.htm index.php;
}

location ~ .php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/aquacyber/public_html$fastcgi_script_name;
}
}
Linking To Virtual Host:
Menghubungkan virtual host ke /etc/nginx/situs-aktifku
# cd /etc/nginx/situs-aktifku/
# ln -s /etc/nginx/situs-situsku/aquacyber
Restarting Nginx Service:
# /etc/init.d/nginx restart
Adding Virtual Domain to Host File
127.0.0.1 localhost.localdomain localhost aquacyber

Step 8: Testing Nginx, MySQL, PHP and PHP-FPM

Buat file phpinfo.php di dir /srv/www/aquacyber/public_html/ lalu masukkan kode dibawah, ex:/srv/www/aquacyber/public_html/phpinfo.php
<?php
     phpinfo ();
?>
Nah, sekarang coba akses page melalui browser!
Done…
Unknown Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

No comments:

Post a Comment