
Update all packages
# yum -y update
Install Webmin
請自行尋找最新版下載 (http://webmin.com/download.html)
# wget http://downloads.sourceforge.net/project/webadmin/webmin/1.520/webmin-1.520.tar.gz # tar -zxvf webmin-1.520.tar.gz # cd webmin-1.520 webmin-1.520]# ./setup.sh *********************************************************************** * Welcome to the Webmin setup script, version 1.520 * *********************************************************************** Webmin is a web-based interface that allows Unix-like operating systems and common Unix services to be easily administered. Installing Webmin in /root/webmin-1.520 ... *********************************************************************** Webmin uses separate directories for configuration files and log files. Unless you want to run multiple versions of Webmin at the same time you can just accept the defaults. Config file directory [/etc/webmin]: Log file directory [/var/webmin]: *********************************************************************** Webmin is written entirely in Perl. Please enter the full path to the Perl 5 interpreter on your system. Full path to perl (default /usr/bin/perl): Testing Perl ... Perl seems to be installed ok *********************************************************************** Operating system name: CentOS Linux Operating system version: 5.5 *********************************************************************** Webmin uses its own password protected web server to provide access to the administration programs. The setup script needs to know : - What port to run the web server on. There must not be another web server already using this port. - The login name required to access the web server. - The password required to access the web server. - If the webserver should use SSL (if your system supports it). - Whether to start webmin at boot time. Web server port (default 10000): Login name (default admin): Login password: Password again: The Perl SSLeay library is not installed. SSL not available. Start Webmin at boot time (y/n): Y *********************************************************************** Creating web server config files.. ..done Creating access control file.. ..done Inserting path to perl into scripts.. ..done Creating start and stop scripts.. ..done Copying config files.. ..done Creating uninstall script /etc/webmin/uninstall.sh .. ..done Changing ownership and permissions .. ..done Running postinstall scripts .. ..done Enabling background status collection .. ..done Attempting to start Webmin mini web server.. Starting Webmin server in /root/webmin-1.520 Pre-loaded WebminCore ..done *********************************************************************** Webmin has been installed and started successfully. Use your web browser to go to http://yourserver.com:10000/ and login with the name and password you entered previously.
Setup SSL for Webmin
進入 Webmin 的管理介面後,操作如下
[Webmin] -> [Webmin configuration] -> [SSL Encryption] set Enable SSL if available? Yes Redirect non-SSL requests to SSL mode? Yes
Install Apache
# yum -y install httpd mod_ssl GeoIP*
Install MySQL
[mysqld] datadir = /var/lib/mysql socket = /var/lib/mysql/mysql.sock user=mysql old_passwords=1 set-variable = table_cache=512 set-variable = key_buffer=256M set-variable = sort_buffer=8M set-variable = myisam_sort_buffer_size=256M set-variable = max_allowed_packet=1M set-variable = net_buffer_length=4M set-variable = max_heap_table_size=256M set-variable = join_buffer_size=8M set-variable = read_buffer_size=16M set-variable = read_rnd_buffer_size=8M set-variable = sort_buffer_size=4M set-variable = bulk_insert_buffer_size=8M set-variable = query_cache_type=1 set-variable = query_cache_size=256M big-tables skip-locking innodb_file_per_table = 1 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Install PHP
yum -y install php php-*
Install RPMForge / memcache / gcc / ntp
以下是 For 64 位元的,如果是 32 的要自己換一下檔名,然後找最新版即可!
# rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm # yum -y install libevent memcached gcc c++ ntp
# yum -y install libevent memcached gcc c++ ntp
# vi /etc/sysconfig/clock
UTC=true ARC=false ZONE=Asia/Taipei
Setup Linux Firewall (in Webmin)
Action Condition Accept If input interface is not eth0 Accept If protocol is TCP and TCP flags ACK (of ACK) are set Accept If state of connection is ESTABLISHED Accept If state of connection is RELATED Accept If protocol is UDP and destination port is 1024:65535 and source port is 53 Accept If protocol is ICMP and ICMP type is echo-reply Accept If protocol is ICMP and ICMP type is destination-unreachable Accept If protocol is ICMP and ICMP type is source-quench Accept If protocol is ICMP and ICMP type is time-exceeded Accept If protocol is ICMP and ICMP type is parameter-problem Accept If protocol is ICMP and ICMP type is echo-request Accept If protocol is TCP and destination port is 22 Accept If protocol is TCP and destination port is 80 Accept If protocol is TCP and destination port is 10000
Setup phpMyAdmin
一樣要自己查新版的檔名喔!
# wget http://superb-sea2.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.7/phpMyAdmin-3.3.7-all-languages.tar.gz
# tar -zxvf phpMyAdmin-3.3.7-all-languages.tar.gz
# mv phpMyAdmin-3.3.7-all-languages /var/www/luke54_myadmin
view source
print?
# vi /etc/httpd/conf.d/myadmin.conf
# wget http://superb-sea2.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.7/phpMyAdmin-3.3.7-all-languages.tar.gz
# tar -zxvf phpMyAdmin-3.3.7-all-languages.tar.gz
# mv phpMyAdmin-3.3.7-all-languages /var/www/luke54_myadmin
view source
print?
# vi /etc/httpd/conf.d/myadmin.conf
<Location /phpMyAdmin> Order deny,allow allow from all </Location>
Upgrade PHP to v5.2
# vi /etc/yum.repos.d/CentOS-Base.repo
[c5-testing] name=CentOS-5 Testing baseurl=http://dev.centos.org/centos/5/testing/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
設定 Apache (virtual domain)
# vi /etc/httpd/conf/httpd.conf
設定 gzip 以及 expired header
<IfModule mod_deflate.c> # compress content with type html, text, and css AddOutputFilterByType DEFLATE text/html text/plain text/css AddOutputFilter DEFLATE js css html ico <IfModule mod_headers.c> # properly handle requests coming from behind proxies Header append Vary User-Agent </IfModule> </IfModule> <IfModule mod_expires.c> ExpiresActive on ExpiresByType image/jpg "access plus 7 days" ExpiresByType image/jpeg "access plus 7 days" ExpiresByType image/gif "access plus 7 days" ExpiresByType image/png "access plus 7 days" ExpiresByType application/x-javascript "access plus 7 days" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType text/html "access plus 1 day" ExpiresByType text/css "access plus 7 days" ExpiresDefault "access 2 days" </IfModule> AllowOverride All <VirtualHost *:80> ServerAdmin root@example.com DocumentRoot /var/www/example ServerName www.example.com ErrorLog logs/www.example.com-error.log CustomLog logs/www.example.com-access.log common </VirtualHost>
設定 Samba
# vi /etc/samba/smb.conf
; 請自行查出相對應的位置加上或修改參數 [global] display charset = UTF8 dos charset = UTF8 unix charset = UTF8 guest account = apache security = share [www] comment = Web Directory path = /var/www public = yes writable = yes browseable = yes printable = no guest ok = yes write list = +staff create mode = 0777 directory mode = 0777 create mask = 0777 force create mode = 0777 security mask = 0777 force security mode = 0777 directory mask = 0777 force directory mode = 0777 directory security mask = 0777 force directory security mode = 0777 acl check permissions = False