Author Topic: ตั้งแต่ เริ่มต้นลง Freebsd + apache + mysql + php + Zend  (Read 6986 times)

golfreeze

  • Administrator
  • Hero Member
  • *****
  • Posts: 2141
    • View Profile
    • นั่งสมาธิ สติปัฏฐานสี่ พาเที่ยววัด แนะนำวัด แจกcd ธรรมะฟรี
    • Email
1. ติดตั้ง FreeBSD
คงผ่านขั้นนี้แล้วนะครับ

2. ติดตั้ง cvsup

cd /usr/ports/net/cvsup-without-gui
make install && make clean
rehash

ทำการ synchronize ports index กับ cvsup server

/usr/local/bin/cvsup -g -L 2 -h cvsup.kr.freebsd.org /usr/share/examples/cvsup/ports-supfile
/usr/local/bin/cvsup -g -L 2 -h cvsup.au.freebsd.org /usr/share/examples/cvsup/ports-supfile

ข้างบนนี้เลือกเอานะ จะเอาประเทศไหน หรือว่าจะลอง ping ดูก็ได้นะค่า time น้อยก็เอาอันนั้นและจะได้เร็ว
ๆ จริง ๆ มีหลายประเทศกว่านี้ครับ

cd /usr/ports && make fetchindex

เป็นการเอาโปรแกรมใหม่ๆๆ เข้ามาในเครื่องนะ

3.ลง perl ก่อนเลย

cd /usr/ports/lang/perl5.8
make \
WITH_GDBM=yes \
WITHOUT_PERL_64BITINT=yes \
WITH_THREADS=yes \
ENABLE_SUIDPERL=yes \
install && make clean

4. จากนั้นต่อด้วย Mysql

cd /usr/ports/databases/mysql50-server
make \
WITH_CHARSET=tis620 \
WITH_XCHARSET=all \
WITH_COLLATION=tis620_thai_ci \
WITH_OPENSSL=yes \
BUILD_OPTIMIZED=yes \
WITH_ARCHIVE=yes \
WITH_FEDERATED=yes \
WITH_NDB=yes \

install && make clean

เพื่อให้การทำงานของ mysql server มีประสิทธิภาพมากที่สุด ก็เลือกไฟล์คอนฟิกให้เหมาะสมกับเครื่องเรา
ปกติ mysql จะใช้ไฟล์คอนฟิกชื่อ /etc/my.cnf
แต่ในขณะที่ติดตั้ง mysql เสร็จใหม่ๆจะไม่มีไฟล์นี้ให้ เราจะต้องสำเนาเอาไฟล์คอนฟิกจาก
/usr/local/share/mysql ออกมาเอง ซึ่งจะมีไฟล์ตัวอย่างอยู่ 5 ไฟล์ด้วยกัน ดังนี้

เหมาะสำหรับเครื่องที่มีหน่วยความจำ 4 GB , ใช้ innodb อย่างเดียว
/usr/local/share/mysql/my-innodb-heavy-4G.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ 1-2 GB
/usr/local/share/mysql/my-huge.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ 512 MB
/usr/local/share/mysql/my-large.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ 32-64 MB , หรือ 128 MB ถ้ามีเว็บเซิร์ฟเวอร์ด้วย
/usr/local/share/mysql/my-medium.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ น้อยกว่า 64 MB รัน mysql อย่างเดียว
/usr/local/share/mysql/my-small.cnf

ของผม 512 mb

เนื่องจากเครื่องที่ผมใช้ทำ server มีแรมอยู่ 512 MB ก็จะใช้ไฟล์ my-large.cnf

cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf

pico /etc/rc.conf หรือ vi /etc/rc.conf
เพิ่มคำว่า
mysql_enable="YES"<< เป็นการให้ mysql ทำงานทุกครั้งหลังจากเริ่มเครื่องใหม่
จากนั้นก็ save แล้วทำการ restart ครับ

shutdown -r now

เข้าใหม่แล้วพิมพ์คำสั่ง

top ดูว่า mysql ทำงานยังถ้าทำงานแล้วก็ ctrl+c

/usr/local/bin/mysqladmin -u root password 'password ที่ต้องการ'

ตัวอย่าง

/usr/local/bin/mysqladmin -u root password 123456

ทดลองเข้าไปใช้ mysql
mysql -u root -p123456
พอเข้าได้แล้วก็ลองใช้คำสั่งต่างๆดู
mysql>status;
mysql>show databases;
mysql>quit; อันนี้ออกจาก mysql

ถ้าเกิดใส่พาสแล้วเกิดลืมก็

ใช้กับเวอร์ชั่น 4 - 5 นะ

killall mysqld
/usr/local/bin/mysqld_safe --skip-grant-tables --skip-networking & mysql -u root
mysql> use mysql;
mysql >UPDATE user SET Password=PASSWORD("1234") WHERE User="root";
mysql > exit;
killall mysqld
/usr/local/etc/rc.d/mysql-server.sh start

ถ้าเวอร์ชั่น 3 ลงมาก็

killall mysqld
/usr/libexec/mysqld -Sg --user=root &
mysql

เมื่อเข้าสู่ MySQL แล้วให้ทำตามนี้
mysql> USE mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> UPDATE user
-> SET password=password("newpassword")
-> WHERE user="root";
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit;
[root@hostroot]#killall mysqld

จากนั้นให้ restart Process Mysql อีกครั้ง หรือ reboot เครื่องก็ได้ครับ


เปลี่ยนรหัสผ่าน root ครับ

mysqladmin -u root -p password 'new-password'

จัดการติดตั้ง Apache 2.2 ต่อไปเลย

cd /usr/ports/www/apache22
make \
WITH_LDAP_MODULES=yes \
WITH_MYSQL=yes \
WITH_SSL_MODULES=yes \
WITH_THREADS=yes \
install && make clean

สั่ง start apache

/usr/local/etc/rc.d/apache22.sh start

เพิ่มคำสั่ง apache22_enable="YES" เข้าไปที่ไฟล์ /etc/rc.conf

เพื่อให้ apache ทำงานทุกครั้งตอนบูตเครื่อง

ลองเรียกน่าเว็บดู

จาก ip หรือ domain ก็ได้

จะเขียนว่า Work It

แปลว่าผ่าน

ต่อไปก็ว่าด้วยการติดตั้ง PHP5
cd /usr/ports/lang/php5
make config

เลือกตามที่ใช้งานผมเลือกหมดเลยนะฮ่าๆๆ

make install clean

พอติดตั้งเสร็จก็จัดการกะไฟล์คอนฟิก (php.ini)
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
จากนั้นก็ปรับแต่งไฟล์ php.ini
pico /usr/local/etc/php.ini


หาบรรทัด

short_open_tag = on
register_globals = on
default_charset = "tis-620"
upload_tmp_dir = "/tmp/upload"
session.save_path = "/tmp/session"
session.cookie_path = "/tmp/cookie"

สร้างไดเรคทอรี่ขึ้นมาที่ /tmp 3 อันชื่อ upload, session , cookie

mkdir /tmp/upload
mkdir /tmp/session
mkdir /tmp/cookie

chmod ให้เป็น 777 ทั้ง 3 ไดเรคทอรี่

chmod 777 /tmp/upload
chmod 777 /tmp/session
chmod 777 /tmp/cookie

แก้ไขไฟล์ httpd.conf เพื่อให้รองรับ php

pico /usr/local/etc/apache22/httpd.conf

ค้นหาบรรทัด

Directoryindex index.html

เพิ่ม index.php และ index.phps เข้าไป เป็น

Directoryindex index.html index.php index.phps index.phtml index.cgi index.pl

ค้นหาบรรทัด

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

เพิ่มคำสั่งนี้ต่อท้ายลงไป

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .html

เพื่อรองรับ cgi

บรรทัด
#AddHandler cgi-script .cgi
เอาเครื่องหมาย # ข้างหน้าออกแล้วเพิ่ม .pl ต่อท้ายเข้าไป
AddHandler cgi-script .cgi .pl

เซฟไฟล์แล้ว restart apache ใหม่

/usr/local/etc/rc.d/apache22.sh restart

สร้างไฟล์ทดสอบการทำงานของ php

pico /usr/local/www/apache22/data/test.php

ใส่คำสั่งนี้ลงไป

<?php
phpinfo(); //Show all PHP Information
?>

ลง test ดูใหม่ว่ามันขึ้นหรือเปล่า

ip xxx.xxx.xx./test.php

วิธีติดตั้ง Extension ต่างๆให้กับ PHP5

cd /usr/ports/lang/php5-extensions
make config

เลือก extention ตามที่จะใช้งาน

ผมก็เลือกหมดอีกและฮ่า

make install clean

restart apache ใหม่

/usr/local/etc/rc.d/apache22.sh restart

จากนั้นเพิ่มความแรงให้ php ก็

ZendOptimizer

# cd /usr/ports/devel/ZendOptimizer
# make install && make clean
===> ZendOptimizer-3.0.0 :
Because of licensing restrictions, you must fetch the source distribution
manually from thehttp://www.zend.com/free_download/optimizerURL.
Download the source file, ZendOptimizer-3.0.0-freebsd6.0-i386.tar.gz,
and place it in /usr/ports/distfiles.
.*** Error code 1

Stop in /usr/ports/devel/ZendOptimizer.
#

เขาแนะนำว่าให้เข้าไปโหลดที่ URLhttp://www.zend.com/free_download/optimizerเองครับ
เสียเวลาสมัครสมาชิกนิดนึง
จากนั้นก็ดาวน์โหลดไฟล์ที่ชื่อ ZendOptimizer-3.0.0-freebsd6.0-i386.tar.gz แล้วให้เอาไปไว้ที่
/usr/ports/distfiles
และก็สั่งติดตั้งอีกที
# cd /usr/ports/devel/ZendOptimizer
# make install && make clean

ตอนท้ายๆจะมีแนะนำ
********************************************************************************

You have installed the ZendOptimizer package.

Edit /usr/local/etc/php.ini and add:

[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20050922/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20050922/Optimizer_TS"
zend_extension="/usr/local/lib/php/20050922/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20050922/ZendExtensionManager_TS.so"

********************************************************************************

ก็เปิดไฟล์ php.ini ขึ้นมาและก็เพิ่มคำสั่งต่อท้ายลงไปล่างสุดเลยครับ

pico /usr/local/etc/php.ini

[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20050922/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20050922/Optimizer_TS"
zend_extension="/usr/local/lib/php/20050922/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20050922/ZendExtensionManager_TS.so"



เซฟไฟล์แล้ว restart apache

/usr/local/etc/rc.d/apache22.sh restart