วันอังคารที่ 28 เมษายน พ.ศ. 2558

จัดการ Hosting ด้วย VestaCP

VestaCP คือ?

หลายเว็บไซต์ได้อธิบายเกี่ยวกับ VestaCP
http://www.thaiwebnews.com/vestacp/
http://www.hostpacific.com/introducing-vesta-cp/

ซึ่งพูดง่ายๆเลยว่า มันคือตัวจัดการ Hosting ที่แจกไว้ใช้กันฟรีๆ


การติดตั้ง
http://www.vestacp.com/#install

ตั้งค่าเพิ่มเติม
เปลี่ยนรหัสผ่าน #v-change-user-password username new-password
เปลี่ยน root mysql #nano /usr/local/vesta/conf/mysql.conf
แก้ไฟล์ HTML หน้าแรกเวลาเพิ่มโดเมน #nano /usr/local/vesta/data/templates/web/skel/public_html/index.html
apache เปิด mods-enabled
#cd /etc/apache2
#cp mods-available/mime_magic.load mods-enabled/mime_magic.load
#cp mods-available/mime_magic.conf mods-enabled/mime_magic.conf
#cp mods-available/cgi.load mods-enabled/cgi.load
#cp mods-available/include.load mods-enabled/include.load
#cp mods-available/headers.load mods-enabled/headers.load

ตั้งค่า timezone ให้ตรงใน php.ini
#nano /etc/php5/apache2/php.ini
แก้ไขเป็น date.timezone = Asia/Bangkok

อ่านรายละเอียดเพิ่มเติม http://www.vestacp.com/docs/

วันอังคารที่ 17 มีนาคม พ.ศ. 2558

วิธีการเขียน php ให้เพิ่ม user ใน ubuntu

ไฟล์ php
<?php
$user = $_GET['user'];
echo exec('sudo useradd -m -b /home -s /bin/bash $user');
?>

แก้ไขไฟล์  /etc/sudoers
#nano /etc/sudoers
โดยเพิ่ม
www-data ALL=(root) NOPASSWD: /usr/sbin/useradd

ทดสอบสอบรันไฟล์ php

วันอังคารที่ 3 มีนาคม พ.ศ. 2558

เขียน scrip python เพื่อสำรองฐานข้อมูล mysqldump

# nano autobk.py

#! Python Auto Backup database
import subprocess

cmd = 'mysqldump -uroot -pPassword  --all-database --lock-all-table | bzip2 -c > /backup/db-backup_$(date +%Y%m%d_%H%M%S).sql.bz2'
pid = subprocess.call(cmd, shell=True)

exit()

หากเป็นเซอร์เวอร์อื่น

#! Python Auto Backup database
import subprocess

cmd = 'mysqldump -p3306 -h 127.0.0.1 -uroot -pPassword  --all-database --lock-all-table | bzip2 -c > /backup/db-backup_$(date +%Y%m%d_%H%M%S).sql.bz2'
pid = subprocess.call(cmd, shell=True)

exit()

อ้างอิง http://apro45.blogspot.com/2014/05/crontab-mysqldump.html

FTP ด้วย bash shell script

สร้าง bash shell script ให้ดึงไฟล์ .sql.bz2 ใน /home/backup_db ไปไว้ที่ FTP โฟลเดอร์ file_db
  - [host] = hostname หรือ ip server
  - [user] = ftp username
  - [pass] = ftp password

ตัวอย่างไฟล์

#!/bin/sh

cd /home/backup_db

ftp -n [host] << EOF
prompt
user [user] [pass]
cd file_db
binary
mput *.sql.bz2
bye
EOF

exit 0


แก้ปัญหา mysqldump กับ crontab

วิธีการแก้ปัญหา เมื่อสั่ง Crontab สำรองข้อมูล MySQL แล้วไม่ทำงานให้ หรือทำงานแปปเดียว

- ต้องใส่ตัวเรียกเต็มๆของโปรแกรม เช่น /usr/local/bin/mysqldump , /usr/bin/bzip2

ตัวอย่างไฟล์สำรองข้อมูล MySQL

#!/bin/sh

today=$(date '+%d')

/usr/local/bin/mysqldump -uUSER -pPASS --all-database --lock-all-table| /usr/bin/bzip2 -c > /home/backup_db/db-date"$today".sql.bz2

วันจันทร์ที่ 23 กุมภาพันธ์ พ.ศ. 2558

การประยุกต์ใช้ Webmin Samba Ftp Apache และให้ User Authen กับ Radius (Ubuntu14.04)

1. ติดตั้ง webmin  ตามลิงก์ http://sulkiflee-n.blogspot.com/2013/02/webmin-ubuntu.html
#apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
#wget http://prdownloads.sourceforge.net/sourceforge/webadmin/webmin_1.690_all.deb
#dpkg --install webmin_1.690_all.deb

2. ติดตั้ง Apache
#apt-get install apache2
#cd /etc/apache2/mods-enabled/
#ln -s ../mods-available/userdir.load
#ln -s ../mods-available/userdir.conf

3. ติดตั้ง Ftp
#apt-get install vsftpd
แก้ไฟล์ /etc/vsftpd.conf
#nano /etc/vsftpd.conf
local_umask = 002
anonymous_enable=YES
local_enable=YES
write_enable=YES
allow_writeable_chroot=YES
user_sub_token=$USER
local_root=/home/$USER
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#touch /etc/vsftpd.chroot_list

4. ติดตั้ง Samba
#apt-get install samba samba-common python-glade2 system-config-samba
แก้ไฟล์ /etc/samba/smb.conf
#nano /etc/samba/smb.conf
unix password sync = yes

[aritc]
comment = File Server Share
path = /var/www/html/aritc
browsable = yes
guest ok = yes
read only = no
create mask = 0755

[homes]
comment = User Directories
browseable = no
valid users = %S
writable = yes
create mask = 0755
directory mask = 0755

5. ติดตั้ง pam radius module  ตามลิงก์ http://opensource.cc.psu.ac.th/ติดตั้ง_pam_radius_module_บน_ubuntu
#apt-get install libpam-radius-auth

6. เพิ่ม User ใช้งาน
#sudo useradd -m -b /home -s /bin/bash user1.a
#ln -s /home/user1.a/public_html/ /var/www/html/user1.a

7. การใช้งาน
   - อัพโหลดไฟล์โดยใช้ samba แบบ public รูปแบบ \\ip server
   - อัพโหลดไฟล์ส่วนตัวโดยใช้ Ftp (YRU Authen) รูปแบบ ftp://ip server
     หากต้องการแชร์ ไฟล์ให้คนอื่นเห็น ให้สร้างโฟลเดอร์ public_html แล้วอัพไฟล์ใส่ในนั้น

8. การเรียกดูแบบ URL ผ่าน Browser
   - http://ip server

วันจันทร์ที่ 5 มกราคม พ.ศ. 2558

ตั้งค่าให้ Connect MySQL จากที่อื่นได้ (Ubuntu)

แก้ไขไฟล์  /etc/mysql/my.cnf
nano /etc/mysql/my.cnf

port = 3306  (ตั้งค่า port)
#bind-address = 127.0.0.1  (ใส่ # ข้างหน้า Access ได้จากทุกเครื่อง แต่ไม่ค่อยปลอดภัย)

เสร็จแล้วบันทึก แล้ว restart mysql
/etc/init.d/mysql restart

ขั้นต่อไปต้อง Grant Access ให้ User เพื่อให้ใช้ DB ได้
mysql -u root -p

mysql> GRANT ALL ON ชื่อฐาน.* TO ผู้ใช้@'%' IDENTIFIED BY 'รหัสผ่าน';
mysql> quit

ทดสอบเชื่อมต่อได้เลย