Custom Build Web server Apache,php,mysql Pichet Pitakkeeree
รายละเอียด Compile apache, php, libraly module, mysql จาก source code การปรับแต่ง การทำ virtualhost ปัญหาของการใช้งาน Web Host Manager หรือ Control Panel
ทำไมถึงต้อง Compile เอง ต้องการ Update เร็วๆ, RPM Package ออกช้า,ปัญหาเรื่อง Security ที่รอไม่ได้ เลือกติดตั้งเฉพาะ Module ที่ต้องการใช้เท่านั้น ปัญหาเรื่อง Dependency Package สามารถลงได้ใน Linux หรือ unix ได้ทั้งหมด ประสิทธิภาพสูงกว่า, ทำงานได้เร็วกว่า
ข้อเสีย การ Install, update, uninstall ทำได้ยากกว่า RPM อาจประสบปัญหากับมือใหม่
Package ที่ใช้ Apache version 1.3 หรือ 2 จาก www.apache.org ล่าสุด Php www.php.net (mirror th.php.net) version 4 หรือ 5 ตัวอย่างใช้ 5 ล่าสุด MySQL version 4.1 www.mysql.com ล่าสุด Zlib http://www.zlib.net/ GD http://www.boutell.com/gd/
Package ที่ใช้ Libjpeg ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz Libpng http://www.libpng.org/pub/png/libpng.html
คำแนะนำ ควร Download จากแหล่งที่เชื่อ ถือได้ ควรเลือก Download ตรงจากเว็บไซต์ที่เกี่ยวข้อง www.apache.org www.php.net www.mysql.com
ติดตั้ง mysql server จาก source ทำการแตกไฟล์ไปไว้ที่ /usr/local/src #groupaqdd mysql #useradd –g mysql mysql #cd /usr/local/src #tar zxvf /root/package/mysql-4.1.11.tar.gz #cd /usr/local/src/mysql-4.11.11 #./configure –prefix=/usr/local/mysql –with-charset=tis620
ติดตั้ง mysql server จาก source #make #make install #cp support-file/my-medium.cnf /etc/my.cnf #cd /usr/local/mysql #bin/mysql_install_db –user=mysql #chown –R root . #chown –R mysql var #chgrp –R mysql . #bin/mysql_safe –user=mysql –bind-address=127.0.0.1 &
ทดสอบ MySQL Server #ps aux #netstat –lnt | grep 3306 #cp /usr/local/mysql/libexec/mysqld /etc/init.d/mysqld #echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf #ldconfig #whereis mysql => /usr/local/mysql
ติดตั้ง Apache จาก source #cd /usr/local/src/httpd-2.0.54 config ติดตั้ง apache ที่ /usr/local/httpd และให้สามารถใช้ Dynamic Share Object ได้ #./configure –prefix=/usr/local/httpd –enable-module=so #make #make install แก้ไข /usr/local/httpd/conf/httpd.conf ให้สามารถใช้ php ได้ AddType application/x-httpd-php .php .phtml
ติดตั้ง Zlib #cd /usr/local #wget -c http://www.zlib.net/zlib-1.2.3.tar.gz #tar -zxf zlib-1.2.3.tar.gz #cd zlib-1.2.3 #./configure #make #make install
ติดตั้ง libjpeg #wget -c ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz #tar zxf jpegsrc.v6b.tar.gz #cd jpeg-6b #./configure #make #make test #make install #make install-lib #make install-headers
ติดตั้ง Libpng #wget -c http://cogent.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.bz2 #tar jxf libpng-1.2.8.tar.bz2 #cd libpng-1.2.8 #cp scripts/makefile.linux Makefile #make #make install
ติดตั้ง gd #wget –c http://www.boutell.com/gd/http/gd-2.0.33.tar.gz #tar zxvf gd-2.0.33.tar.gz #cd gd-2.0.33 #./configure –prefix=/usr/local/lib #make #make install
ติดตั้ง php ล่าสุด จาก source ทำการแตกไฟล์ ไปไว้ที่ /usr/local/src #cd /usr/local/src #tar jxvf /root/package/php-4.4.0.tar.bz2 #cd /usr/local/src/php-4.4.0 config php #./configure –with-apxs2=/usr/local/httpd/bin/apxs \ #--with-mysql \ #--enable-ftp \ #--enable-calendar \ #--enable-bcmath \
ติดตั้ง php ล่าสุด จาก source #--with-gd \ #--with-gd-dir=/usr/local/lib \ #--with-jpeg-dir=/usr/local/lib \ #--with-png-dir=/usr/local/lib \ #--enable-track-vars \ #--with-gettext \ #--with-pear \ #--enable-sockets \ #--with-imapd \ #--with-openssl \ #--enable-versioning \ #--with-zlib
ติดตั้ง php ล่าสุด จาก source #make #make install #copy php.ini.dist /usr/local/lib/php.ini การแก้ไข register globals=on ใน php.ini (กรณีจำเป็นต้องเปิด มีผลด้าน security)
ทดสอบ Start apache #/usr/local/httpd/bin/apactl start ทดสอบด้วย phpinfo code phpinfo.php <? Phpinfo(); ?>
VirtualHost NameVirtualHost 202.202.202.202 ServerAlias demo.com www.demo.com DocumentRoot /home/demo/public_html ServerName demo.com ServerSignature off <= ปกติไม่ได้ใช้แก้ที่ httpd.conf เลย ErrorLog logs/demo.com_error.log CustomLog logs/demo.com_common.log common </VirtualHost>
Commercial Control Panel Cpanel www.cpanel.net (Linux) Plesk www.swsoft.com (Linux/Windows) Ensim www.ensim.com (Linux/Windows) Directadmin www.directadmin.com (Linux) MX-Controller www.mx-controller.com (Windows ของคนไทย)
Opensource Control Panel Webmin www.webmin.com Vhcs www.vhcs.net ISPconfig www.ispconfig.org Syscp www.syscp.de Zpanel www.zpanel.com
อ้างอิง www.apache.org www.php.net www.mysql.com http://genco.gen.tc/postfix_virtual.php