Apache

Apache

11 items(1/2) 2 Next » Last »|

เช็คเงื่อนไข url request ใน .htaccess

โดย Little Bear on 6 ต.ค. 61 14:12

ต้องการตรวจสอบว่า url ที่เรียกเข้ามานั้น หากอักษรตัวหน้าเท่ากับคำบางคำ ก็ให้เรียกไปที่ url บางตัว หากไม่ใช่ ก็ให้เรียกไปอีกแห่งหนึ่ง

# /garage/xxx or /saveup/xxx or /js/xxx = > /folder1/index.php
RewriteCond %{REQUEST_URI} ^/(garage|saveup|js/).* [NC]
RewriteRule ^(.*)$ /folder1/index.php? [L,QSA]

# /library/xxx = > /library/xxx
RewriteCond %{REQUEST_URI} ^/(library)/.* [NC]
RewriteRule ^(.*)$ $1 [L,QSA]

หาอ่านข้อมูลเกี่ยวกับ .htaccess ที่ Apache Module mod_rewrite

โดยเฉพาะที่นี่ มีตัวอย่างให้ดูเพียบ THE Ultimate Htaccess

Make Macbook Pro to be Web Server

โดย Little Bear on 10 ก.ค. 58 16:43

แก้ config ของ Apache

sudo nano /etc/apache2/httpd.conf
AllowOverride All

เปิดใช้งาน mod_rewrite

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Install PHP

brew update
brew install php@7.3
brew link php@7.3
brew services start php@7.3

เปิดใช้งาน php

LoadModule php7_module libexec/apache2/libphp7.so

เปลี่ยน DocumentRoot ของ web

sudo mv /Library/WebServer/Documents /Library/WebServer/Documents.old
sudo ln -s /New/Web/Folder /Library/WebServer/Documents

แก้ php config โดย cp /etc/php.ini.default /etc/php.ini

post_max_size = 16M
upload_max_filesize = 1024M

date.timezone = Asia/Bangkok

Restart Apache

sudo apachectl configtest
sudo apachectl -k restart

ที่มา macOS 10.15 Catalina Apache Setup: SSL


Install MariaDB

brew install mariadb

Start MariaDB

Service start

brew services start mariadb

Start without service

mysql.server start

Link data to new location

sudo ln -s /Users/mysql /usr/local/var/mysql
sudo chown -h user:group /usr/local/var/mysql

แก้ไข config file ~/.my.cnf

sql_mode = NO _ ENGINE _ SUBSTITUTION,STRICT _ TRANS _ TABLES

default-storage-engine = MYISAM
collation-server = utf8_unicode_ci
character-set-server = utf8

Auto Start

launchd In MacOS, create a file called /Library/LaunchDaemons/com.mariadb.server.plist with the following contents (edit to suit):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
&nbsp; &nbsp; &nbsp; &nbsp; <key>Label</key> <string>com.mariadb.server</string>
&nbsp; &nbsp; &nbsp; &nbsp; <key>KeepAlive</key><true/>
    <key>RunAtLoad</key><true/>
    <key>LaunchOnlyOnce</key><false/>
    <key>ExitTimeOut</key><integer>600</integer>
&nbsp; &nbsp; &nbsp; &nbsp; <key>WorkingDirectory</key><string>/usr/local/var</string>
&nbsp; &nbsp; &nbsp; &nbsp; <key>Program</key><string>/usr/local/bin/mysqld</string>
&nbsp; &nbsp; &nbsp; &nbsp; <key>ProgramArguments</key>
&nbsp; &nbsp; &nbsp; &nbsp; <array>
    &nbsp; &nbsp; <string>/usr/local/bin/mysqld</string>
    &nbsp; &nbsp; <string>--user=_mysql</string>
    &nbsp; &nbsp; <string>--basedir=/usr/local/opt/mariadb</string>
    &nbsp; &nbsp; <string>--plugin-dir=/usr/local/opt/mariadb/lib/plugin</string>
    &nbsp; &nbsp; <string>--datadir=/usr/local/var/mysql</string>
    &nbsp; &nbsp; <string>--log-error=/usr/local/var/mysql/Data-Server.local.err</string>
    &nbsp; &nbsp; <string>--pid-file=/usr/local/var/mysql/Data-Server.local.pid</string>
    &nbsp; &nbsp; <string>--sql-mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</string>
&nbsp; &nbsp; &nbsp; &nbsp; </array>
</dict>
</plist>

Then from a shell, run launchctl load /Library/LaunchDaemons/com.mariadb.server.plist and MariaDB will run immediately, and also upon reboot.


Fix the 2002 socket error first if you haven’t done so from the MySQL section-

sudo mkdir /var/mysql

Location -> /usr/local/Cellar/mariadb/{version}

Data location /usr/local/var/mysql/


sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Start MySQL

sudo /usr/local/mysql/support-files/mysql.server start

Stop MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

Restart MySQL

sudo /usr/local/mysql/support-files/mysql.server restart

Make Ubuntu to be a web server (LAMP)

โดย Little Bear on 21 มิ.ย. 54 12:33

ติดตั้ง Ubuntu Desktop ให้เป็น Server (LAMP)

ผ่านไป 2 ปี ก็ถึงเวลาต้องติดตั้ง Ubuntu ใหม่เสียที คราวนี้เลยถือโอกาสเปลี่ยนเป็น Ubuntu 11.04 64 bit ไปเลย ก็เลยลองมารีวิวการติดตั้ง LAMP บน Ubuntu ใหม่ว่ามีอะไรที่เปลี่ยนแปลงไปบ้าง

หมายเหตุ : การติดตั้งต่อไปนี้ใช้สิทธิ์ของ root ขอให้เข้าสู่สิทธิ์ของ root โดยการเปิด terminal แล้วพิมพ์ sudo su

Install L.A.M.P Stack (Apache, Mysql, PHP) ทีเดียวซะเลย

root@god:/# apt-get install lamp-server^

แล้วก็ลง phpMyAdmin

root@god:/# apt-get install phpmyadmin

เลือก Apache แล้ว YES สำหรับ dbconfig-common.

ติดตั้งเพิ่มเติม

php5-curl

root@god# apt-get install php5-curl

หรือชอบที่จะลงทีละตัว ก็

Install Apache

root@god:/# apt-get install apache2

Enable mod_rewrite

root@god:/# a2enmod rewrite

เปลี่ยน DocumentRoot ของ apache เป็น folder อื่น และเปิดใช้งาน clean url

root@god:/# nano /etc/apache2/sites-available/default
  • เปลี่ยนบรรทัด /var/www/ เป็น /my web folder/ จำนวน 2 ตำแหน่ง
  • แก้ค่า AllowOverride ของ /my web folder/ จาก None เป็น AllowOverride All

Install PHP

root@god:/# apt-get install php5 libapache2-mod-php5 php5-gd
root@god:/# /etc/init.d/apache2 restart

Install MySQL

root@god:/# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin
root@god:/# /etc/init.d/apache2 restart

หากมีข้อมูลเก่าของ mysql ก็สามารถ copy มาไว้ที่ /var/lib/mysql แล้ว โดยใช้คำสั่ง

root@god:/# cp /media/disk/var/lib/mysql/* /var/lib/mysql/
root@god:/# chown -hR mysql /var/lib/mysql/*
root@god:/# chgrp -hR mysql /var/lib/mysql/*

ย้ายข้อมูล mysql ไปไว้ที่อื่น

root@god:/# /etc/init.d/mysql stop
root@god:/# mkdir /home/mysql
root@god:/# chown -R mysql:mysql /home/mysql
root@god:/# cp -r /var/lib/mysql/mysql /home/mysql/
root@god:/# chown -R mysql:mysql /home/mysql/*

แล้วแก้ my.cnf

root@god:/# nano /etc/mysql/my.cnf

หาคำนี้ให้เจอ :

datadir = /var/lib/mysql

แล้วเปลี่ยนเป็นตำแหน่งใหม่ :

datadir = /home/mysql

เสร็จแล้วก็ restart mysql service

root@god:/# /etc/init.d/mysql start
Starting MySQL database server mysqld [ OK ]

แล้ว mysql จะทำการสร้างไฟล์ ibdata1, ib_logfile0, อื่น ๆ ขึ้นมาใหม่

ทุกอย่างน่าจะเรียบร้อย แต่ผมไม่สามารถ start mysql ได้ มันค้างอยู่ เลยต้องไปแก้ค่าในไฟล์ /etc/apparmor.d/usr.sbin.mysqld โดยเปลี่ยนค่า /var/lib/mysql ให้เป็น /home/mysql ด้วย

แล้วคราวนี้ก็ทำการ copy ฐานข้อมูลเก่า ๆ มาได้เลย อย่าลืมเปลี่ยน owner/group เป็น mysql ด้วยนะ

ที่มา

#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
#sudo apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

ความหมายของแต่ละ apache directives ครับ

โดย Little Bear on 26 พ.ค. 54 10:04

KeepAlive = เมื่อเสร็จ request แล้วยังไม่ต้องปิด connection ให้รอดูว่าจะมี request เข้ามาอีกรึเปล่า ถ้ามีก็ใช้ connection นี้ต่อไปเลย มีประโยชน์สำหรับเว็บที่มี request เยอะๆใน 1 หน้าเว็บ – รูปภาพ 1 รูปนับเป็น 1 request – 1 frame นับเพิ่มอีก 1 request (รูปใน frame นับเพิ่มต่างหากอีก) ดังนั้นเว็บที่มีพวกนี้เยอะๆควรเปิด keepalive ไว้ เพื่อลดจำนวน connection ที่เข้ามา

Apache Rewrite - ยากจริง ๆ

โดย Little Bear on 28 ก.ค. 53 16:54

กำลังศึกษาการเขียน Apache rewrite rule จะทำ subdomain redirect ไปสู่โปรแกรม

เช่น http://bear.softganz.com ไป http://www.softganz.com/index.php?u=bear

เขียนยากจริง ๆ พยายามทำความเข้าใจอยู่ หากพอจะเข้าใจ จะมาเขียนอธิบายรายละเอียดอีกที

แหล่งเรียนรู้

dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้

โดย Little Bear on 23 ส.ค. 52 21:04

dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้ เพราะว่าถ้าเกิดหลุดขึ้นมา จะอันตรายมาก ๆ วิธีการป้องกันก็คือ ไปกำหนดเพิ่ม ใน httpd.conf ดังต่อไปนี้ สมมติว่า /home/webmaster/public_html/webboard/file เป็นส่วนที่ใช้เก็บรูปของบอร์ดเวลา post ขึ้นไป ผมก็จะกำหนดเพิ่มดังนี้

<Directory "/home/webmaster/public_html/webboard/file">
Options Indexes MultiViews -ExecCGI
AllowOverride None
Order allow,deny
Allow from all
php_flag engine off
</Directory>

เท่านี้ก็ปลอดภัยอีกระดับนึงครับ ถ้าเกิด script เราหลุด hacker สามารถ upload file ขึ้นไปได้ แต่เค้าก็จะไม่สามารถสั่งให้ทำงานได้ครับ ..

How to install Lighttpd+PHP4+MySql5 on Ubuntu 8.10

โดย Little Bear on 30 พ.ย. 51 00:14

หลังจากที่ตัดสินใจปรับ CMS ที่เขียนอยู่ไปวิ่งบน PHP5 ก็ไม่นึกว่าจะต้องกลับมาทดสอบ CMS กับ PHP4+MySql3 อีกแล้ว แต่หลังจากที่ยังคงมีเว็บที่ดูแลอยู่อีก 3 เว็บยังคงทำงานอยู่บน PHP4 และไม่มีแนวโน้มว่าเขาจะปรับเวอร์ชั่นของ PHP ให้ (หรือเขาจะปรับให้แต่คิดเงินอีกหลายพัน) ก็เลยต้องกลับมาปรับแก้โปรแกรมใหม่ (ซึ่งจริง ๆ ก็คงไม่มากนัก แต่ต้องตรวจสอบใหม่ทั้งระบบ)

พยายามติดตั้ง Apache2+PHP4+MySql3 แต่ติดปัญหาตอนติดตั้ง PHP4

เลยติดตั้ง Lighttpd+php4+MySql5 แทน

  • ติดตั้ง Lighttpd โดย

    sudo apt-get install lighttpd lighttpd-doc

  • ติดตั้ง php4-cgi

    sudo apt-get install php4-cgi
    sudo apt-get install php4-mysql

  • เปิดใช้งาน cgi

    sudo lighty-enable-mod cgi

  • แก้ไขไฟล์ /etc/lighttpd/conf-enabled/10-cgi.conf โดยเอาเครื่องหมาย # หน้า cgi.assign ออกให้หมด

หากใน sources list ไม่มี php4-cgi ก็ให้เพิ่ม sources นี้ใน /etc/apt/sources.list ซึ่งได้มาจาก http://www.dotdeb.org/mirrors/

deb http://mirror.oeg.com.au/packages.dotdeb.org stable all
deb-src http://mirror.oeg.com.au/packages.dotdeb.org stable all

และอาจจะต้องติดตั้ง libzzip-0-12 ก่อน

ข้อมูลอ้างอิง

ปล. อาจจะมั่ว ๆ ไปนิด วันหลังจะมาเรียบเรียงใหม่อีกทีนะครับ <!-- อย่างแรกคือ ติดตั้ง apache2 ก่อน

sudo apt-get install apache2

ต่อมาติดตั้ง php4-cgi

sudo apt-get install php4-cgi

php จะถูกติดตั้งไว้ที่ ในชื่อ php-cgi -->

Content-Type

โดย Little Bear on 14 ก.ย. 51 12:19

เว็บไซท์ http://irrigation.rid.go.th/rid16/ranode มีปัญหามาหลายวันแล้ว วันนี้เลยลองหาทางแก้ไขดู

ปัญหา

Charactor Encoding ผิดพลาด

ใน HTML Code มี meta http-equiv="Content-Type" content="text/html; charset=utf-8" แต่ในเมนู View/Charactor Encoding ยังคงเป็น iso-8859-11 อยู่ ทำให้แสดงภาษาไทยผิดพลาด

ตรวจสอบใน phpinfo ปรากฎว่าใน HTTP Response Headers มีค่า Content-Type เป็น text/html; charset=iso-8859-11 ไม่ยอมเปลี่ยนเป็น utf-8 ตาม meta http-equiv="Content-Type"

วิธีแก้ไข

มีอยู่ 3 จุด (เท่าที่คิดได้) คือ

  1. เพิ่มคำสั่งในไฟล์ .htaccess
    AddDefaultCharset utf-8
  2. เพิ่มคำสั่งในไฟล์ index.php
    iniset('defaultcharset', 'utf-8');
  3. เพิ่มคำสั่งในไฟล์ index.php
    header('Content-Type: text/html;charset=UTF-8');
    

ที่ทำแล้วได้ผลคือเพิ่มคำสั่งข้างล่างนี้ในไฟล์ index.php

header('Content-Type: text/html;charset=UTF-8');

Change my life to Ubuntu

โดย Little Bear on 18 ก.พ. 51 21:54

ติดตั้ง Ubuntu Desktop ให้เป็น Server (LAMP)

Install Apache

#sudo apt-get install apache2

Enable mod_rewrite

#sudo a2enmod rewrite

เปลี่ยน DocumentRoot ของ apache เป็น folder อื่น และเปิดใช้งาน clean url

#gksudo gedit /etc/apache2/sites-available/default
  • เปลี่ยนบรรทัด /var/www/ เป็น /my web folder/ จำนวน 2 ตำแหน่ง
  • แก้ค่า AllowOverride ของ /my web folder/ จาก None เป็น AllowOverride All

Install PHP

#sudo apt-get install php5 libapache2-mod-php5 php5-gd
#sudo /etc/init.d/apache2 restart

Install MySQL

#sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin

#gksudo gedit /etc/php5/apache2/php.ini

add this line extension=mysql.so

#sudo /etc/init.d/apache2 restart

หากมีข้อมูลเก่าของ mysql ก็สามารถ copy มาไว้ที่ /var/lib/mysql แล้ว โดยใช้คำสั่ง

#sudo cp /media/disk/var/lib/mysql/* /var/lib/mysql/
#sudo chown -hR mysql /var/lib/mysql/*
#sudo chgrp -hR mysql /var/lib/mysql/*

ทางทีดีคือไปอ่านรายละเอียดจากเว็บต้นฉบับดีกว่าครับ ที่ Installing LAMP On Ubuntu For Newbies

Or from howtoforge.com

#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
#sudo apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

ติดตั้ง Tahoma font

ถึงยังไงผมก็ยังชอบฟอนท์ Tahoma ของ Windows อยู่ดี ก็เลยต้องหาวิธีติดตั้งฟอนท์ Tahoma บน Ubuntu

เจอบทความ Adding Windows fonts in Linux ทดลองดูแล้ว It's work เลยเอาลิงก์มาเก็บไว้ก่อน

วิธีที่ผมใช้ง่ายนิดเดียว คือ copy fonts Tahoma จาก Windows/Fonts มาใว้ใน folder ./fonts ของ home folder

แล้วก็ทำการติดตั้งฟอนต์ทดแทน เพื่อแก้ปัญหาสระเยื้องใน OOo

ติดตั้ง Extensions ของ Firefox ที่ใช้ประจำ คือ CollorZilla , Download Statusbar , DownThemAll , Firebug , FireGestures , NoScript , ShowIP , Xmarks

Install FileZilla

#sudo apt-get install filezilla

Install thunderbird

#sudo apt-get install thunderbird

Install Geany editor

#sudo apt-get install geany

Upgrade OOo.org 2.3.0

#sudo gedit /etc/apt/sources.list

add 2 lines

deb http://download.thaigrid.or.th/pub/ubuntu/contrib gutsy openoffice.org deb-src http://download.thaigrid.or.th/pub/ubuntu/contrib gutsy openoffice.org

#sudo apt-get update
#sudo apt-get install openoffice.org

NAS200

Mounting SMB Shares Network share permanently mount samba share

Add this line to file /etc/init.d/module-init-tools

#for Aircard 580
modprobe usbserial vendor=0x1199 product=0x0122
mknod /dev/ttyUSB5 c 188 0

# mount NAS200
modprobe smbfs
mkdir /media/nas200

Manual mount nas200 to /media/nas200 is

#sudo mount -t smbfs //192.168.1.2/ /media/nas200 -o username=myusername,password=mypassword,uid=1000,mask=000,iocharset=utf8



Make AirCard button on panel

  • Right click on panel -> Add to panel
  • Select Custom Application Launcher
  • Command : xterm -T "Connect to CDMA" -e pppd call cdma

How to set apache to use clean url ?

โดย Little Bear on 23 มี.ค. 50 06:04

1.you must enable mod_rewrite module by remove # before this line in httpd.conf

# Enable mod_rewrite

 LoadModule rewrite_module modules/mod_rewrite.so

2.set apache to allow .htaccess file by change value AllowOverride  to All

# AllowOverride controls what directives may be placed in .htaccess files.

 AllowOverride All

3.and restart Apache

11 items(1/2) 2 Next » Last »|