CentOS8

Linux Server simple login system with mysql

Install Linux CentOS8 on VMware + apache + phpMyAdmin


Linux Server simple login system with mysql

Operating System Subject

VMware Ubuntu Server - phpmyadmin - mysql

LEARNING SITE : w3schools


change to root

su

update

yum update -y

install apache package

dnf install httpd

open up port 80

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Check server

systemctl start httpd
systemctl status httpd

Check hostname

hostname -I

Installing MySQL

dnf install mysql-server
systemctl start mysqld.service
systemctl status mysqld

set ใช้งาน mysql เมื่อรัน server

systemctl enable mysqld

install security mysql

mysql_secure_installation

test sql

mysqladmin -u root -p version
mysql -u root -p

install php

dnf -y install php php-common php-process php-xmlrpc php-xml php-soap php-snmp php-recode php-bcmath php-cli php-dba php-dbg php-mbstring php-odbc php-pecl-apcu-devel php-pecl-zip php-pgsql php-pecl-apcu php-pear php-pdo php-opcache php-devel php-embedded php-enchant php-gd php-fpm php-gmp php-intl php-ldap php-json php-mysqlnd php-pdo php-gd php-mbstring zip unzip tar wget

install phpmyadmin

phpmyadmin
cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-all-languages.zip

unzip

unzip phpMyAdmin-4.9.4-all-languages.zip

rename

mv phpMyAdmin-4.9.4-all-languages phpmyadmin

change ownership

chown -R apache:apache /var/www/html/phpmyadmin

rename config file

cd phpmyadmin
mv config.sample.inc.php config.inc.php
nano config.inc.php

php root password

$cfg['blowfish_secret']='thisispassword';

import the tables for phpMyAdmin

mysql < sql/create_tables.sql

Configure Apache for phpMyAdmin

nano /etc/httpd/conf.d/phpmyadmin.conf
หลังจากสร้างไฟล์แล้วให้นำไฟล์โค้ดด้านล่างไปใส่ใน conf ไฟล์
Alias /phpmyadmin /var/www/html/phpmyadmin

<Directory /var/www/html/phpmyadmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
      Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /var/www/html/phpmyadmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted
     </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>

</Directory>

restart httod

systemctl restart httpd
user mysql
  mysql or mysql –u root –p
          ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'thispass';

( หากต้องการเปลี่ยนตำแหน่งโฟลเดอร์ phpmyadmin)

nano /etc/httpd/conf.d/phpmyadmin.conf

แล้วก็หาบรรทัด
Alias /phpmyadmin /var/www/html/phpmyadmin

เปลี่ยนใหม่เป็น
/securelocation คือ ตำแหน่งที่ต้องการเปลี่ยน

Alias /newlocation /var/www/html/phpmyadmin
หลังจากนนั้นทำการ
systemctl restart httpd

FIX phpmyadmin USER can’t login ( แก้ ไม่สามารถเข้า phpmyadmin ได้)

mysql
mysql -p -u root
2 Create USER And assign password
CREATE USER 'youruser'@'%' IDENTIFIED BY 'thispass';
3 Add root to youruser
GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION;

Fix ERROR 1819 (HY000) (แก้ Error policy password เราจะเปลี่ยนให้มัน low)

enable the validate_password plugin

SELECT plugin_name, plugin_status FROM information_schema.plugins WHERE plugin_name LIKE 'validate%';
install plugin validate_password SONAME 'validate_password.so';

check plugin is activated?

SELECT plugin_name, plugin_status FROM information_schema.plugins WHERE plugin_name LIKE 'validate%';

set a lower password validation policy

SET GLOBAL validate_password_policy=LOW;
SET GLOBAL validate_password.policy=LOW;

confirm the password validation policy level.

SHOW VARIABLES LIKE 'validate_password%';

Create User

create user ‘myuser’@’%’ IDENTIFIED BY ‘root1234’;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
SHOW GRANTS FOR myuser;
FLUSH PRIVILEGES;

revert to the ‘MEDIUM’ password policy (ในกรณีอยากกลับคืนค่าของ policy กลับปเป็น MEDIUM หรือ Strong)

SET GLOBAL validate_password_policy=MEDIUM;

Basic Login

ทำการสร้าง database

use mysql

mysql -p -u root

CREATE your Database

CREATE database mydatabase;

USE your DATABASE

USE mydatabase;

CREATE TABLE

CREATE TABLE `member` (
  `UserID` int(3) unsigned zerofill NOT NULL auto_increment,
  `Username` varchar(100) NOT NULL,
  `Password` varchar(100) NOT NULL,
  `Name` varchar(100) NOT NULL,
  `Status` enum('ADMIN','USER') NOT NULL default 'USER',
  PRIMARY KEY  (`UserID`),
  UNIQUE KEY `Username` (`Username`)
) ENGINE=MyISAM  AUTO_INCREMENT=3;

INSERT USER AND ADMIN DATA

INSERT INTO `member` VALUES (004, 'root', 'root', 'Mr Root Ubuntu', 'ADMIN');
INSERT INTO `member` VALUES (005, 'codetopanda', 'ctp123', 'MR Codetopand Portdee', 'USER');

Exit mysql

exit

Preparing site change directory to /var/www/html

เปลี่ยนโฟล์เดอร์ไปที่ path /var/www/html
cd /var/www/html

check git เพื่อความชัวร์ทำการเช็คว่า linux ท่านใช้ gitได้ไหม

git (if git not install ) then
apt install git

Clone git in /var/www/html | Move all file to /var/www/html | remove php-mysql-login-system Folder |

git clone https://github.com/lacakp/php-mysql-login-system.git; 
              mv -f ./php-mysql-login-system/* ./ ; 
              rm -f -r php-mysql-login-system;
              

Clone

Check file (ทำการเช็คไฟล์ในโฟลเดอร์ )

ls -al

ls-al

nano to config database ( เข้าไปแก้ไข เปลี่ยน ip-user-password-database)

ใน tutorial นี้ได้ตั้งไว้คือ (localhost:3306, myuser, root1234, mydatabase) MySQL default port is 3306

nano connectdb.php

ใน centos อาจจะใช้ localhost

login-page

วิธี save

1. CTRL + x
2. y
3. Enter

เข้าไปใน 192.168.xx.xxx/login.php

login-page


preview

Apache2

Apache2

Apache2

Apache2