PHP7 sudah tersedia di Ubuntu 16.04 LTS Xenial Xerus, jadi kita tidak perlu mengandalkan software pihak ketiga untuk meng-install php7 di ubuntu. Tutorial ini akan menjelaskan bagaimana meng-install Nginx, MariaDB, dan PHP-FPM (LEMP Stack) di ubuntu 16.04 LTS Xenial Xerus
Langkah 1: Update Ubuntu 16.04 LTS
Sebelum meng-install software apapun, usahakan untuk eng-update repositori dan paket software. jalankan perintah di bawah ini di ssh terminal
sudo apt update
sudo apt upgrade
Langkah 2: Install Nginx Web Server
Nginx adalah salah satu web server dengan performa yang tinggi. dapat juga digunakan sebagai reverse proxy. Jalankan perintah di bawah ini untuk mulai menginstall Nginx
sudo apt install nginx
Setelah terinstall, konfigurasikan Nginx secara otomatis dijalankan ketika Ubuntu dijalankan.
sudo systemctl enable nginx
Kemudian start Nginx dengan perintah ini:
sudo systemctl start nginx
Untuk cek status:
systemctl status nginx
Output:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2016-06-04 08:31:23 EDT; 1 day 2h ago
Main PID: 298 (nginx)
CGroup: /system.slice/nginx.service
├─298 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─299 nginx: worker process
“enabled” artinya pada saat Ubuntu booting, secara otomatis Nginx dijalankan.
Pada browser,masukkan IP Public server Ubuntu 16.04 LTS. Anda akan melihat halaman”Welcome to Nginx” yang artinya Nginx sudah berjalan dengan benar
Kemudian, kita perlu mengatur agar www-data (Nginx User) sebagai owner dari direktori web root)
sudo chown www-data /usr/share/nginx/html -R
Langkah 3: Install MariaDB
MariaDB merupakan pengganti dari MySQL yang dikembangkan oleh anggota utama dari MySQL yang fokus pada akusisi Oracle untuk menjadikan MySQL produk non-open source. Banyak yang menggunakannya seperti Arch Linux, Fedora, Google, Wikipedia dsb, migrasi ke MariaDB.
sudo apt install mariadb-server mariadb-client
Setelah terinstall, cek status MariaDB
systemctl status mysql
Output:
● mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
Active: active (running) since Wed 2016-04-20 18:52:01 EDT; 1min 30s ago
Docs: man:systemd-sysv-generator(8)
Jika tidak berjalan (running), jalankan perintah di bawah ini:
sudo systemctl start mysql
Untuk meng-otomatiskan ketika Ubuntu 14.04 pada saat restart:
sudo systemctl enable mysql
Sekarang, jalankan perintah instalasi di bawah ini:
sudo mysql_secure_installation
Ketika ditanya password root MariaDB, tekan ENTER karena kita belum mengaturnya, kemudian masukkan password root MariaDB dan konfirmasi password yang baru.
Langkah berikutnya tekan ENTER untuk semua pertanyaan, mulai dari menghapus user anonymous, disable remote root login dan menghapus database test. Langkah ini merupakan syarat dasar dari keamanan MariaDB
Langkah 4: Install PHP7
Jalankan perintah di bawah ini untuk meng-install PHP7 dan ekstensi PHP7
sudo apt install php7.0-fpm php7.0-mbstring php7.0-xml php7.0-mysql php7.0-common php7.0-gd php7.0-json php7.0-cli php7.0-curl
Ekstensi php (modul) diperlukan untuk CMS (content management system) seperti wordpress, joomla, dsb. sebagai contoh jika tidak ada modul ekstensi php7.0-xml, maka pada halaman wordpress misalnya akan kosong dan pada log error Nginx akan ada pesan seperti ini:
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
Installing these PHP extensions ensures that your CMS runs smoothly.
Sekaran jalankan php7.0-fpm
sudo systemctl start php7.0-fpm
Check status:
systemctl status php7.0-fpm
Sample output:
● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor pre
set: enabled)
Active: active (running) since Wed 2016-04-20 19:21:05 EDT; 2s ago
Langkah 5: Create a Default Nginx Server Block File
Hapus symlink bawaan di direktori sites-enabled
sudo rm /etc/nginx/sites-enabled/default
Kemudian buat file default server block baru di direktori /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/default.conf
Paste-kan teks di bawah ini, ganti 111.222.333.444 dengan IP server atau domain server Anda
server {
server_name 111.222.333.444;
root /var/www/html; #sesuaikan dengan direktori web root
index index.php index.html;
# set expiration of assets to MAX for caching
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
log_not_found off;
}
location / {
# Check if a file or directory index file exists, else route it$
try_files $uri $uri/ /index.php;
}
location ~ \.php($|/.+) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
location /subdir_codeigniter/ {
alias /var/www/html/subdir_codeigniter/;
try_files $uri $uri/ /subdir_codeigniter/index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
}
Di sini saya akan mengupload codeigniter di sub-direktori subdir_codeigniter, dan web-root saya upload dengan CMS WordPress, tutorialnya bisa di buka di sini
Tutup file dan test konfigurasi Nginx kemudian reload
sudo nginx -t
sudo systemctl reload nginx
Langkah 6: Test PHP
untuk mengetahui versi PHP7, jalankan perintah ini:
php --version
Output:
PHP 7.0.15-7ubuntu2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Untuk pengecekanPHP-FPM, buat file test.php di direktori web-root
sudo nano /usr/share/nginx/html/test.php
Ketikkan kode di bawah ini.
<?php phpinfo(); ?>
Simpan dan tutup file dari editor, dan panggil file test.php di browser 111.222.333.444/test.php
Jika muncuk informasi mengenai proses PHP dan table PHP Info berarti PHP berjalan dengan baik di Ubuntu 16.04 LTS
Untuk kemanan hapus file test.php
sudo rm /var/www/html/test.php
Langkah 7: Download CodeIgniter
https://codeigniter.com/download
Upload ke direktori subdir_codeigniter sesuai dengan konfigurasi defaul.conf yang telah kita atur sebelumnya.
Sesuaikan file config.php pada Application/config/ dengan mengubah base_url dan hilangkan index.php pada index_page
$config['base_url'] = 'http://111.222.333.444/subdir_codeigniter/';
$config['index_page'] = ' ';
Selamat, CodeIgniter sudah bisa berjalan di server Ubuntu 16.04 dengan web server Nginx. Untuk konfigurasi database menggunakan MariaDB akan kita bahas pada tutorial berikutnya