Install Nginx, Mariadb (Replace mysql), dan php5 pada OpenSuse

Pada postingan kali ini saya akan menjelaskan cara menginstall semua file/tools yang sudah disebutkan di atas pada Linux OpenSuse. Kenapa OpenSuse, simpel aja jawabannya karena saya lagi bosen sama Ubuntu. 😀
Oke sekarang kita langsung aja untuk melakukan penginstalan tools untuk web server di atas. Berikut ini adalah langkah-langkahnya:
  1. Yang pertama dilakukan adalah penginstalan nginx, mariadb, php5.
    $ su
    # zypper install nginx mariadb php5 php5-json php5-mcrypt php5-mysqli php5-fpm
  2. Setelah semuanya terinstall, sekarang saatnya pertama yang harus dilakukan adalah melakukan konfigurasi pada php5-fpm. Untuk apa php5-fpm ini? Php5-fpm ini digunakan agar si nginx bisa menjalankan/membaca file yang berekstensi php.
    Berikut ini adalah konfigurasinya (contoh disini saya menggunakan socket untuk php5-fpm):
    # cp /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf
    # vim /etc/php5/fpm/php-fpm.conf

    Lalu rubah menjadi seperti ini (lihat bagian yang di highlight):

    [global]
    ; Pid file
    ; Note: the default prefix is /usr/var
    ; Default Value: none
    pid = /var/run/php-fpm.pid
    ; Error log file
    ; If it's set to "syslog", log is sent to syslogd instead of being written
    ; in a local file.
    ; Note: the default prefix is /usr/var
    ; Default Value: log/php-fpm.log
    error_log = /var/log/php-fpm.log
    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default user's group
    ; will be used.
    user = nobody
    group = nobody

    ; The address on which to accept FastCGI requests.
    ; Valid syntaxes are:
    ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
    ; a specific port;
    ; 'port' - to listen on a TCP socket to all addresses on a
    ; specific port;
    ; '/path/to/unix/socket' - to listen on a unix socket.
    ; Note: This value is mandatory.
    ;listen = 127.0.0.1:9000
    listen = /var/run/php5-fpm.sock

    ; Set listen(2) backlog.
    ; Default Value: 128 (-1 on FreeBSD and OpenBSD)
    ;listen.backlog = 128

    ; Set permissions for unix socket, if one is used. In Linux, read/write
    ; permissions must be set in order to allow connections from a web server. Many
    ; BSD-derived systems allow connections regardless of permissions.
    ; Default Values: user and group are set as the running user
    ; mode is set to 0666
    listen.owner = nobody
    listen.group = nobody
    listen.mode = 0666
  3. Setelah merubah php-fpm, sekarang saatnya merubah konfigurasi dari engine x (nginx):
    # cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
    # vim /etc/nginx/nginx.conf
    user  nginx;
    worker_processes 1;

    error_log /var/log/nginx/error.log;
    #error_log /var/log/nginx/error.log notice;
    #error_log /var/log/nginx/error.log info;

    pid /var/run/nginx.pid;


    events {
    worker_connections 1024;
    use epoll;
    }


    http {
    include 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 0;
    keepalive_timeout 65;

    #gzip on;

    include conf.d/*.conf;

    server {
    listen 80;
    server_name localhost;
    access_log /var/log/nginx/localhost.access.log;

    ## Default location
    location / {
    autoindex on;
    root /home/aim/workspaces;
    index index.html index.htm index.php;

    }

    location /images {
    root /usr/share;
    autoindex on;
    }

    location ~ \.php {
    fastcgi_index index.php;

    set $script $uri;
    set $path_info "";
    if ($uri ~ "^(.+\.php)(/.*)") {
    set $script $1;
    set $path_info $2;
    }
    fastcgi_pass unix:/var/run/php5-fpm.sock;

    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /home/aim/workspaces$script;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_param SCRIPT_NAME $script;
    }
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    # listen 8000;
    # listen somename:8080;
    # server_name somename alias another.alias;

    # location / {
    # root /srv/www/htdocs/;
    # index index.html index.htm;
    # }
    #}


    # HTTPS server
    #
    #server {
    # listen 443;
    # server_name localhost;

    # ssl on;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;

    # ssl_session_timeout 5m;

    # ssl_protocols SSLv2 SSLv3 TLSv1;
    # ssl_ciphers HIGH:!aNULL:!MD5;
    # ssl_prefer_server_ciphers on;

    # location / {
    # root /srv/www/htdocs/;
    # index index.html index.htm;
    # }
    #}

    include vhosts.d/*.conf;
    }

    Dari settingan di atas dan pada baris 45 dan 67 itu adalah letak dari file-file projeknya. Secara default, letak projeknya adalah di /srv/www/htdocs/. Jadi anda bisa merubahnya atau tidak juga tidak apa-apa. Contoh punya saya kan /home/aim/workspaces. Jadi saya menyimpan semua file projeknya di direktory home. Agar lebih aman saja, apabila tiba-tiba sistem Linux rusak, maka semua file yang ada di direktory home saya akan aman, karena direktory home saya terpisah partisinya dengan partisi sistem, jadi tolong disesuaikan dengan direktory punya anda.

  4. Setelah merubah konfigurasi dari nginx, maka selanjutnya yang harus dirubah adalah memberikan password untuk login ke mariadb. Karena secara default saat kita menginstall mariadb ini, maka password untuk masuk ke sistem admin/rootnya tidak ada. Agar lebih aman, maka sebaiknya berikan password saya. Sesuai cara dari link ini https://mariadb.com/kb/en/installing-mariadb-with-the-rpm-tool/
    # systemctl start mysql.service
    # /usr/bin/mysqladmin -u root password 'isi passwordmu disini'

    Nanti akan muncul beberapa pertanyaan, tinggal di enter, enter saja..

  5. Lalu selanjutnya adalah mengaktifkan php-nya. Karena pada sebelumnya sudah dibahas bahwa untuk menjalankan php ini kita mneggunakan php-fpm, maka agar phpnya aktif saat menjalankan php-fpm, maka kita harus mengcopykan file php.ini ke direktory php-fpm
    # cp /etc/php5/cli/php.ini /etc/php5/fpm/

    Lalu baca juga tutorial ini untuk mengaktifkan mode debug pada phpnya http://imron02.blogspot.com/2013/08/mengaktifkan-debug-php5.html

  6. Selanjutnya adalah mengaktifkan semua servis-servis dari tools web server yang terlah dirubah konfigurasinya tadi.
    # systemctl start php-fpm.service
    # systemctl start nginx.service

    Dan apabila anda ingin setelah OpenSusenya restart dan tidak ingin mengaktifkan servis-servis dari web server ini secara manual, maka anda bisa mengaktifkan autoload servis. Tapi ingat dengan mengaktifkan autoload ini akan membebani OpenSuse saat startup/booting untuk masuk ke desktop, karena OpenSuse akan meload dulu servis-servis yang diload otomatis. Tapi itu tergantung anda. Kalau saya, yang tidak diset otomatis servisnya adalah servis dari mariadb.

    # systemctl enable php-fpm.service
    # systemctl enable nginx.service
    # systemctl enable mysql.service //untuk mengaktifkan secara otomatis mariadb

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s