Cara install LAMP ( Apache, MariaDB, PHP, PHPMyAdmin ) di Arch Linux

   Memasang Arch Linux di HDD sudah cukup menang kan. Nah sekarang kita coba untuk install LAMP ( Isinya : Apache, MariaDB/Mysql, PHP, dan PHPMyAdmin ) di Arch Linux yang gak kalah menantang. Sebelum install, pastikan mental kamu sudah siap. Pada tutor ini, saya akan mencoba memasang php versi terbaru yaitu php 7. Oke langsung aja ke tutorialnya.

Sebelumnya pastikan arch kamu sudah di update sudo pacman -Syu

Pasang Apache

Jika sudah update, kita bisa pasang apachenya.
sudo pacman -S apache
sudo systemctl enable httpd
sudo systemctl start httppd
sudo systemctl status httpd

Jika status nya seperti gambar diatas, berarti udah jalan servernya. Bisa dibuka localhost di browser.
Kita butuh PHP. Virtual webserver tanpa php rasanya hampa sekali.
sudo pacman -S php php-apache
Sekarang kita install MySQL MariaDB
sudo pacman -S mysql
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo systemctl enable mysqld
sudo systemctl start mysqld
sudo systemctl status mysqld

Jika statusnya seperti gambar diatas, berarti udah bisa. Kita bisa lanjut ke langkah selanjutnya.

Secure MySQL Database

Sekarang kita harus setting password buat mysql kita. Username yang digunakan adalah Root dan kita juga harus hapus anonymous user.
sudo mysql_secure_installation
Jika ditanya password, tekan enter saja. Nanti set password baru. Lalu, kita harus tes dulu nih udah bisa atau belum mysql nya.
mysql -u root -p
kita bisa pakai command show database; jika muncul database berarti udah bisa. kita bisa quit; untuk keluar.

Setting Apache

Pertama, kita harus modifikasi file konfigurasi apachenya.
sudo nano /etc/httpd/conf/httpd.conf
tambahkan text ini di bagian paling bawah
IncludeOptional conf/sites-enabled/*.conf
IncludeOptional conf/mods-enabled/*.conf
Sekarang kita buat directory baru yaitu sites-enabled dan mods-enabled.
sudo mkdir /etc/httpd/conf/sites-available
sudo mkdir /etc/httpd/conf/sites-enabled
sudo mkdir /etc/httpd/conf/mods-enabled
Sekarang, kita buat a2ensite dan a2dissite.
sudo nano a2ensite
Dan tambahkan text ini
#!/bin/bash
if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled  ; then
echo "-------------------------------"
else
mkdir /etc/httpd/conf/sites-available
mkdir /etc/httpd/conf/sites-enabled
fi
avail=/etc/httpd/conf/sites-available/$1.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-available/`
if [ "$#" != "1" ]; then
echo "Use script: n2ensite virtual_site"
echo -e "\nAvailable virtual hosts:\n$site"
exit 0
else
if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site"
exit 0
fi
fi
dan simpan. Sekarang buat file a2dissite.
sudo nano a2dissite
dan tambahkan text ini
#!/bin/bash
avail=/etc/httpd/conf/sites-enabled/$1.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-enabled`
if [ "$#" != "1" ]; then
echo "Use script: n2dissite virtual_site"
echo -e "\nAvailable virtual hosts: \n$site"
exit 0
else
if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nsudo systemctl restart httpd"
exit 0
fi
fi
Kita buatkan izin agar filenya bisa di eksekusi.
sudo chmod +x a2ensite a2dissite
sudo cp a2ensite a2dissite /usr/local/bin/
Buat virtual host nya di apache.
sudo nano /etc/httpd/conf/sites-available/localhost.conf
tambahkan text ini
<VirtualHost *:80>
DocumentRoot "/srv/http"
ServerName localhost
ServerAdmin [email protected]
ErrorLog "/var/log/httpd/localhost-error_log"
TransferLog "/var/log/httpd/localhost-access_log"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
Setelah selesai, kita aktifkan dan restart httpd.
sudo a2ensite localhost
sudo systemctl restart httpd

Pasang SSL

Ini opsional sih, kita bisa masang ssl di arch linux atau tidak juga tak apa. Tapi, pada tutorial ini saya akan memasang sslnya.
Singkatnya, SSL ini adalah module dari httpd. Jadi, kita hanya perlu mengaktifkannya aja.
sudo nano /etc/httpd/conf/mods-enabled/ssl.conf
Masukkan text ini
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/run/httpd/ssl_scache(512000)"
SSLSessionCacheTimeout  300
Nah, sekarang bikin virtual host ke localhost tapi pakai SSL
sudo nano /etc/httpd/conf/sites-available/localhost-ssl.conf
Masukkan text
<VirtualHost *:443>
DocumentRoot "/srv/http"
ServerName localhost
ServerAdmin [email protected]
ErrorLog "/var/log/httpd/localhost-ssl-error_log"
TransferLog "/var/log/httpd/localhost-ssl-access_log"
SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/localhost.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/localhost.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/srv/http/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
Kita udah setting localhost ke SSL. Sekarang kita harus bikin sertifikat SSL nya.
sudo pacman -S openssl
lalu buat file bash yang bakalan bikin file sertifikatnya
sudo nano apache_gen_ssl
masukkan text ini
#!/bin/bash
mkdir /etc/httpd/conf/ssl
cd /etc/httpd/conf/ssl
echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx  SSL certificate!"
read cert
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt
echo -e " The certificate "$cert" has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/conf/ssl
exit 0
installasi sertifikat ssl

sudo chmod +x apache_gen_ssl
sudo cp /apache_gen_ssl  /usr/local/bin/
sudo ./apache_gen_ssl
Ikuti saja perintahnya. Jika ingin di skip tinggal tekan enter saja.
Langkah terakhir dari masang SSL adalah mengaktifkan SSL nya :D
sudo a2ensite localhost-ssl
sudo systemctl restart httpd

Install PHP

Bawaan php di http config module mpm event nya kan aktif, kita harus nonaktifkan module mpm event tersebut dengan cara menambahkan comment.
sudo nano /etc/httpd/conf/httpd.conf
cari mpm event dan tambahkan tanda # didepannya.
#LoadModule mpm_event_module modules/mod_mpm_event.so
lalu buat file php module yang baru di mods-enabled
sudo nano /etc/httpd/conf/mods-enabled/php.conf
dan isikan text berikut :
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php7_module modules/libphp7.so
AddHandler php7-script php
Include conf/extra/php7_module.conf
nah buat mastiin php nya udah di install atau belum. Kamu bisa buat file berekstensi php di localhost (lokasi : /srv/httpd). Misalnya saya buat file dengan nama a.php dan saya isikan text php info.
<?php
phpinfo();
?>
Restart httpd nya
sudo systemctl restart httpd
Jika php sudah terpasang, nanti akan muncul kira-kira seperti ini ketika a.php dipanggil di localhost (localhost/a.php).

Install PHPMyAdmin

phpmyadmin sudah tersedia di packages arch linux, jadi kita hanya harus menjalankan perintah pacman.
sudo pacman -S phpmyadmin php-mcrypt
setelah di install kita harus mengaktifkan beberapa ekstensi di php.ini jadi kita harus edit lagi php.ini nya.
sudo nano /etc/php/php.ini
hilangkan comments pada line ini ( hapus comments tinggal hapus tanda ; di line nya )
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so
extension=iconv.so
extension=imap.so
extension=zip.so
extension=bz2.so
*Jika ada beberapa ekstensi diatas yang tidak ditemukan, tinggal skip aja. Sekarang kita harus aktifkan phpmyadmin agar bisa dibuka di localhost.
sudo nano /etc/httpd/conf/sites-enabled/localhost-ssl.conf
tambahkan text ini dipaling bawah
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.html index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
Setelah itu kamu restart lagi httpd nya. Dan phpmyadmin bisa dibuka di localhost.
Jika pas login ada peringan blowfish_secret kamu bisa edit config.inc.php di phpmyadmin. Tambahkan 39 angka&huruf bebas. Contohnya :
sudo nano /etc/webapps/phpmyadmin/config.inc.php
Selesai deh.

Gimana? Masih menantang kan? kwkwkw
Arch Linux didesain buat mandiri kayaknya. apa-apa sendiri. Kan di distro lain sudah automatis.

Sekian tutorial dari saya, semoga bermanfaat!

0 Comments

Silahkan bebas berkomentar disini. Jangan nyepam link aktif, dan harap gunakan kata yang sopan.
EmoticonEmoticon