Membangun webserver menggunakan SUSE Linux Enterprise Server 12: Susah


Gara-gara ngobrol tentang cara membuat cronjob yang benar di Ubuntu, alhasil malah daftar ke Alibabacloud. Dan inilah hasilnya, punya satu lagi VPS yang harus dibayar bulan depan. Kira-kira enaknya dibuat apa nih VPS-nya? Buat sebagai webserver, VPN, atau leech torrent? Eh.

Sebelumnya mau disclaimer saja, tulisan ini bukan tentang cara membuat webserver di SLES (karena langkah-langkah detailnya sudah lupa), tapi hanya curhat saja bagaimana perjuangan memasang aplikasi untuk webserver di SLES.

Jadi begini, beberapa hari lalu teman saya menanyakan cara membuat cronjob yang benar di Ubuntu. Dari hasil percobaan, ternyata perlakuan cronjob di openSUSE (yang saya pasang di laptop) dengan di Ubuntu berbeda. Itu saya ketahui setelah saya coba perintah cronjob di VPS saya yang diinstall Ubuntu. Tapi tulisan kali ini bukan menceritakan tentang cronjob.

Setelah sukses membuat perintah otomatis dengan cronjob, teman saya menawarkan untuk mengoprek VPS di akun AWS miliknya. Tapi… setelah iseng buka situs Alibabacloud yang sedang ada promo vps, saya malah tergoda untuk daftar di layanan Alibabacloud. Ah ternyata saya memang lemah sama iming-iming promosi.

Setelah registrasi, mau diapakan ini VPS? Karena sudah pernah coba pasang Ubuntu di VPS, saatnya mencoba distro lain. Dan di Ali ternyata menyediakan salah satu distro enterprise, SUSE Linux Enterprise Server alias SLES 12. Sebagai sales pengguna distro openSUSE sejak 2016 silam, saya jadi penasaran bagaimana rasanya memakai distro induknya yang katanya biasa dipakai di sistem berskala besar itu.

VPS ini rencananya akan saya coba untuk membuat webserver (lagi :D). Kebetulan sekolah ingin coba pasang sistem informasi akademik menggunakan aplikasi Jibas. Jadi sebagai percobaan, tidak ada salahnya mencoba memasang Jibas di VPS ini. Karena itu ada beberapa aplikasi yang harus dipasang, seperti Nginx, PHP, dan MySQL. Juga beberapa aplikasi pendukungnya (lupa apa saja).

Untuk memasang Nginx, yang pertama adalah pasang dulu repositori resmi dari Nginx. Caranya dengan menambahkan laman repo di zypper. caranya seperti berikut:

> sudo zypper addrepo -G -t yum -c 'http://nginx.org/packages/sles/12' nginx
> wget http://nginx.org/keys/nginx_signing.key
> sudo rpm --import nginx_signing.key
> sudo zypper install nginx

Langkah selanjutnya aktifkan servis nginx. Saya lupa langkah yang ini :D. Yang pasti agak ribet karena berurusan dengan SUSEFirewall dkk. Sementara cara mengaktifkannya bisa dilakukan di yast. Kalau tidak salah langkahnya seperti di gambar berikut:

yast
yast
yast
yast

Jika sudah diaktifkan di yast, langkah selanjutnya adalah memasang PHP. Di sini masalahnya. Dari hasil googling, ternyata repo resmi SLES 12 default, tidak ada paket PHP. Beberapa aplikasi lain pun tidak disediakan. Mungkin ada sih, tapi di repo lain yang tidak gratis. Walah.

Untunglah, dari hasil baca-baca di forum yang ketemu dari google, ternyata SLES masih bisa menggunakan repo di luar yang resminya. Saya pakai repo punya openSUSE, supaya masih nyambung dengan zypper. Takut-takut jadi error kalau pakai repo dari luar keluarga bunglon.

Untuk menambahkan repo lain, buat berkas repo baru, misal openSUSE.repo di /etc/zypp/repos.d/openSUSE.repo. Isinya seperti ini:

[OpenSUSE-12.2-OSS]
name=OpenSUSE-12.2-OSS
enabled=1
baseurl=http://download.opensuse.org/distribution/12.2/repo/oss/
type=yast

Setelah itu, aktifkan repo tersebut.

> sudo zypper ref OpenSUSE-12.2-OSS

Kalau sukses, pasang paket PHP dan mariadb atau mysql (ini ada di repo resmi SLES) dengan zypper:

> sudo zypper in php5-fpm
> sudo zypper in mysql mysql-server
> mysql_secure_installation

Sekarang coba aktifkan servis mysql lewat systemctl:

> sudo systemctl start mysql

Untuk mengaktifkan servis PHP, salin berkas php.ini dari direktori /etc/php5/cli/ ke /etc/php5/fpm/ lalu buat juga berkas php-fpm.conf. Kalau perlu, edit kedua berkas tersebut seperlunya. Tapi saya lupa saja apa yang diedit :D.

> sudo cp /etc/php5/cli/php.ini /etc/php5/fpm/php.ini
> sudo cp /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

Setelah itu, coba jalankan servisnya lewat systemctl. Kalau jalan harusnya seperti di bawah:

> sudo systemctl enable php-fpm.service
> sudo systemctl start php-fpm
> sudo systemctl status php-fpm.service
root's password:
● php-fpm.service - LSB: php-fpm daemon
   Loaded: loaded (/etc/init.d/php-fpm; bad; vendor preset: disabled)
   Active: active (running) since Thu 2018-02-08 11:28:17 CST; 1 weeks 2 days ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 3 (limit: 512)
   CGroup: /system.slice/php-fpm.service
           ├─15186 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
           ├─15187 php-fpm: pool www
           └─15188 php-fpm: pool www

Kalau hasilnya tidak sesuai harapan, coba cek lagi konfigurasi PHP di Nginx. Konfigurasi PHP di skrip conf.d/default.conf kira-kira seperti ini:

    location ~ \.php$ {
        root           /berkas/root/web/server/;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    }

Seharusnya, kalau tidak ada halangan, berkas PHP sudah dapat dieksekusi oleh server (setelah nginx di-reload). Kalau sukses, selamat ya!

Kalau tidak, ya tidak selamat. Coba cek lagi konfigurasi nginx, php.ini, php-fom.conf, atau masalah permission. Pastikan bahwa berkas-berkas PHP yang mau dipanggil dapat dieksekusi oleh nginx. Oleh karena itu, tambahkan user dan grup nginx, dan pindahkan kepemilikan berkas maupun direktori ke user dan grup nginx.

Kesimpulannya, memasang webserver dengan Nginx, PHP, dan MySql di SLES 12 agak ribet. Terutama jika kita memang tidak punya lisensi pemakaian SLES untuk server. Akibatnya, kita tidak diberi akses untuk mengunduh maupun memasang paket-paket penting tersebut dari repo resminya.

Mau coba pasang SLES 12 juga? 😀


Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.