Apa itu PHP ?
Hypertext Preprocessor atau PHP adalah bahasa pemrograman yang mirip dengan Javascript dan Python. Perbedaannya, PHP adalah bahasa pemrogaman yang biasanya digunakan untuk komunikasi dari sisi server (Backend), sedangkan Javascript bisa digunakan untuk frontend dan backend.
Apa itu MySQL ?
MySQL adalah salah satu jenis DBMS yang menggunakan bahasa SQL untuk mengelola sistem basis data secara terstruktur.
Apa itu phpMyAdmin ?
phpMyAdmin secara singkat adalah sistem untuk mengelola database melalui tampilan website.
Instalasi Versi PHP
Setelah PHP, MySQL, & phpMyAdmin dijelaskan maka selanjutnya adalah melakukan tahap instalasi secara berututan hingga dapat diakses.
PHP 7.4
Tambahkan repositori epel-release dan remi-repo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | [root@iaasweb ~]# yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [root@iaasweb ~]# yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm [root@iaasweb ~]# yum -y install yum-utils [root@iaasweb ~]# yum-config-manager --enable remi-php74 [root@iaasweb ~]# yum -y update && yum -y install php php-cli [root@iaasweb ~]# yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json [root@iaasweb ~]# php -v PHP 7.4.33 (cli) (built: Oct 31 2022 10:36:05) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies [root@iaasweb ~]# php -m [PHP Modules] bcmath bz2 calendar Core ctype curl date dom exif fileinfo filter ftp gd gettext hash iconv json libxml mbstring mcrypt mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix readline Reflection session shmop SimpleXML sockets sodium SPL sqlite3 standard sysvmsg sysvsem sysvshm tokenizer xml xmlreader xmlwriter xsl zip zlib [Zend Modules] |
PHP 7.3
Ketika ingin melakukan downgrade PHP harap pastikan untuk disable dan enable repo terbaru
1 2 3 4 5 6 | [root@iaasweb ~]# yum-config-manager --disable remi-php74 [root@iaasweb ~]# yum-config-manager --enable remi-php73 [root@iaasweb ~]# yum repolist [root@iaasweb ~]# yum remove -y php-cli mod_php php-common && yum autoremove [root@iaasweb ~]# yum -y update && yum -y install php php-cli [root@iaasweb ~]# yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json |
PHP 7.2
Ketika ingin melakukan downgrade PHP harap pastikan untuk disable dan enable repo terbaru
1 2 3 4 5 6 | [root@iaasweb ~]# yum-config-manager --disable remi-php73 [root@iaasweb ~]# yum-config-manager --enable remi-php72 [root@iaasweb ~]# yum repolist [root@iaasweb ~]# yum remove -y php-cli mod_php php-common && yum autoremove [root@iaasweb ~]# yum -y update && yum -y install php php-cli [root@iaasweb ~]# yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json |
PHP 7.1
Ketika ingin melakukan downgrade PHP harap pastikan untuk disable dan enable repo terbaru
1 2 3 4 5 6 | [root@iaasweb ~]# yum-config-manager --disable remi-php72 [root@iaasweb ~]# yum-config-manager --enable remi-php71 [root@iaasweb ~]# yum repolist [root@iaasweb ~]# yum remove -y php-cli mod_php php-common && yum -y autoremove [root@iaasweb ~]# yum -y update && yum -y install php php-cli [root@iaasweb ~]# yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json |
Pengujian PHP melalui web
Sebelum melakukan pengujian silahkan buat file untuk menampilkan php version dan sesuaikan direktori website berada, setelah itu silahkan akses menggunakan browser http://namadomain.com/index.php
1 2 | [root@iaasweb ~]# touch /var/www/iaasweb.iaas.web.id/html/index.php [root@iaasweb ~]# echo "<?php phpinfo(); ?>" >> /var/www/iaasweb.iaas.web.id/html/index.php |
Instalasi MySQL
Download MySQL melalui repositori resminya, kemudian verifikasi paketnya menggunakan MD5 untuk memastikan bahwa isi file tersebut aman dan tidak rusak
1 2 3 4 5 6 7 | [root@iaasweb ~]# curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm [root@iaasweb ~]# md5sum mysql80-community-release-el7-5.noarch.rpm e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm [root@iaasweb ~]# rpm -ivh mysql80-community-release-el7-5.noarch.rpm [root@iaasweb ~]# yum -y install mysql-server [root@iaasweb ~]# mysql --version mysql Ver 8.0.31 for Linux on x86_64 (MySQL Community Server - GPL) |
Konfigurasi MySQL
Berikutnya adalah melakukan auto start atau persistent mode agar saat restart server maka MySQL daemon langsung aktif, mengamankan MySQL dan membuat password baru, namun sebenarnya terdapat temporary password (tidak direkomendasikan digunakan)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@iaasweb ~]# systemctl enable mysqld && systemctl start mysqld [root@iaasweb ~]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2022-11-17 03:43:13 EST; 19s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 9612 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 9689 (mysqld) Status: "Server is operational" CGroup: /system.slice/mysqld.service └─9689 /usr/sbin/mysqld Nov 17 03:42:36 iaasweb.iaas.web.id systemd[1]: Starting MySQL Server... Nov 17 03:43:13 iaasweb.iaas.web.id systemd[1]: Started MySQL Server. [root@iaasweb ~]# grep 'password' /var/log/mysqld.log 2022-11-17T08:42:55.435888Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: x&2ll4*;srGl |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | root@iaasweb ~]# mysql_secure_installation Securing the MySQL server deployment. Enter password for user root: New password: Re-enter new password: The 'validate_password' component is installed on the server. The subsequent steps will run with the existing configuration of the component. Using existing password for root. Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y Success. All done! |
Instalasi phpMyAdmin
Sebelum melakukan instalasi harap pastikan sudah melakukan instalasi web server, php, mysql, dan juga repository epel-release
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@iaasweb ~]# yum -y --enablerepo=remi install phpmyadmin [root@iaasweb ~]# nano /etc/httpd/conf.d/phpMyAdmin.conf # phpMyAdmin - Web based MySQL browser written in php # # Allows only localhost by default # # But allowing phpMyAdmin to anyone other than localhost should be considered # dangerous unless properly secured by SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 Require local Require ip 10.177.10.0/27 </Directory> <Directory /usr/share/phpMyAdmin/setup/> Require local </Directory> |
Pada konfigurasi phpMyAdmin ada beberapa hal yang perlu diperhatikan diantaranya adalah:
1 2 3 4 5 6 7 | Require ip your_workstation_IP_address . . . Allow from your_workstation_IP_address . . . Require ip your_workstation_IP_address . . . Allow from your_workstation_IP_address |
Pada baris-baris diatas perlu disesuaikan dengan IP yang digunakan saat ini, setelah disesuikan restart webserver dan akses melalui browser http://namadomain.com/phpmyadmin dan masukkan username root dan password yang sudah dibuat sebelumnya