差異處
這裏顯示兩個版本的差異處。
兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
tech:centosinstall [2019/04/14 21:27] – [設定 iptables] jonathan_tsai | tech:centosinstall [2019/10/30 08:14] (目前版本) – [安裝 phpMyAdmin] jonathan_tsai | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== CentOS+基本服務安裝程序 ====== | ||
+ | ===== 安裝 CentOS 作業系統 ===== | ||
+ | * 適用 5.x / 6.x / 7.x x86_64 版本 | ||
+ | |||
+ | <note warning> | ||
+ | 啟用 SELinux : **警告** 並非預設值, | ||
+ | </ | ||
+ | |||
+ | ==== 確認 CentOS 安裝完成 ==== | ||
+ | - 建立備援 root 帳號(Exp. misadm) | ||
+ | - 建立登入帳號 (Exp. jonathan) | ||
+ | - 網路可否正常運作 (ssh 到外部主機, | ||
+ | |||
+ | ==== 更新 CentOS 版本作業 ==== | ||
+ | - 使用 root 身分登入主機 | ||
+ | - 安裝 yum 更新套件 | ||
+ | - 使用 yum 更新到最新版本 | ||
+ | - 重新啟動電腦讓新版的 kernel 生效 | ||
+ | <code sh> | ||
+ | su - root | ||
+ | yum update; sync; sync; sync; reboot | ||
+ | </ | ||
+ | |||
+ | ==== 安裝 EPEL 程序 ==== | ||
+ | **CentOS7** | ||
+ | * 64 bits 環境 : <code sh>rpm -Uvh http:// | ||
+ | |||
+ | **CentOS6** | ||
+ | * 64 bits 環境 : <code sh>rpm -Uvh http:// | ||
+ | * 32 bits 環境 : <code sh>rpm -Uvh http:// | ||
+ | |||
+ | **CentOS5** | ||
+ | * 64 bits 環境 : <code sh>rpm -Uvh http:// | ||
+ | * 32 bits 環境 : <code sh>rpm -Uvh http:// | ||
+ | |||
+ | ==== 安裝其餘系統管理套件 ==== | ||
+ | <code sh>yum install -y iptraf sysstat net-snmp mrtg</ | ||
+ | |||
+ | ===== 設定 snmp agent ===== | ||
+ | <code sh> | ||
+ | cd /etc/snmp | ||
+ | vi snmpd.conf | ||
+ | </ | ||
+ | com2sec notConfigUser | ||
+ | |||
+ | group | ||
+ | group | ||
+ | |||
+ | view systemview | ||
+ | view systemview | ||
+ | view systemview | ||
+ | view systemview | ||
+ | |||
+ | access | ||
+ | |||
+ | syslocation Taipei | ||
+ | syscontact Root < | ||
+ | </ | ||
+ | |||
+ | * 啟動 snmpd 並設定開機可自動啟動< | ||
+ | service snmpd start | ||
+ | chkconfig snmpd on | ||
+ | chkconfig --list | grep snmpd | ||
+ | </ | ||
+ | < | ||
+ | [root@ed2 snmp]# chkconfig --list | grep snmpd | ||
+ | snmpd | ||
+ | </ | ||
+ | |||
+ | ===== 安裝與設定 ntpd ===== | ||
+ | <code sh>yum -y install ntp</ | ||
+ | * 如果要自己編輯 ntp server< | ||
+ | cd /etc | ||
+ | vi ntp.conf | ||
+ | </ | ||
+ | |||
+ | : | ||
+ | : | ||
+ | # --- OUR TIMESERVERS ----- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | : | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | * 第一次網路校時 <code sh> | ||
+ | [root@tryboxap1 etc]# ntpdate -u tick.stdtime.gov.tw | ||
+ | 23 Mar 17:22:58 ntpdate[3552]: | ||
+ | [root@tryboxap1 etc]# date | ||
+ | Thu Mar 23 17:23:33 CST 2006 | ||
+ | </ | ||
+ | |||
+ | * 啟動 ntpd <code sh> | ||
+ | service ntpd start | ||
+ | chkconfig ntpd on | ||
+ | chkconfig --list | grep ntpd | ||
+ | ntpq -p | ||
+ | </ | ||
+ | [root@tryboxap1 etc]# chkconfig --list | grep ntpd | ||
+ | ntpd 0:off | ||
+ | [root@tryboxap1 etc]# ntpq -p | ||
+ | | ||
+ | ============================================================================== | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== 安裝與設定 apache ===== | ||
+ | <code sh>yum -y install httpd mod_ssl</ | ||
+ | |||
+ | * 依據實際狀況設定 httpd.conf 參數檔< | ||
+ | cd / | ||
+ | vi httpd.conf | ||
+ | </ | ||
+ | : | ||
+ | KeepAlive Off | ||
+ | : | ||
+ | ServerAdmin [email protected] | ||
+ | : | ||
+ | ServerName tryboxap.ichiayi.com: | ||
+ | : | ||
+ | DocumentRoot "/ | ||
+ | : | ||
+ | Alias /icons/ "/ | ||
+ | |||
+ | < | ||
+ | # Options Indexes MultiViews | ||
+ | AllowOverride None | ||
+ | Order allow,deny | ||
+ | Allow from all | ||
+ | </ | ||
+ | : | ||
+ | # End of proxy directives. | ||
+ | |||
+ | < | ||
+ | DeflateCompressionLevel 9 | ||
+ | AddOutputFilterByType DEFLATE text/html text/plain text/xml application/ | ||
+ | AddOutputFilter DEFLATE js css | ||
+ | </ | ||
+ | |||
+ | ### Section 3: Virtual Hosts | ||
+ | : | ||
+ | </ | ||
+ | * 啟動 httpd< | ||
+ | |||
+ | * 設定每次開機自動啟動 httpd< | ||
+ | chkconfig httpd on | ||
+ | chkconfig --list | grep httpd | ||
+ | </ | ||
+ | |||
+ | ===== 安裝與設定 MySQL ===== | ||
+ | <code sh>yum -y install mysql-server mysql-devel</ | ||
+ | |||
+ | * 第一次啟動 MySQL 並設定自動啟動< | ||
+ | service mysqld start | ||
+ | chkconfig mysqld on | ||
+ | chkconfig --list | grep mysqld | ||
+ | </ | ||
+ | * 設定與確認 MySQL 內的 root 密碼< | ||
+ | / | ||
+ | mysql -u root -p | ||
+ | </ | ||
+ | |||
+ | * 如果要建立一個資料庫 testdb 與帳號 testuser 可以在本機連上管理這個資料庫的權限可以參考以下與法< | ||
+ | CREATE DATABASE testdb; | ||
+ | CREATE USER ' | ||
+ | GRANT ALL ON testdb.* TO ' | ||
+ | FLUSH PRIVILEGES; | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | * 如果要關閉 MySQL 對連線來源的 IP 反查, 可在 /etc/my.cnf 內 [mysqld] 增加 skip-name-resolve< | ||
+ | [mysqld] | ||
+ | : | ||
+ | # Skip reverse DNS lookup of clients | ||
+ | skip-name-resolve | ||
+ | : | ||
+ | </ | ||
+ | * 然後重新啟動 mysqld 即可 | ||
+ | * 參考資料 : http:// | ||
+ | </ | ||
+ | |||
+ | ===== 安裝與設定 PostgreSQL ===== | ||
+ | <code sh>yum install postgresql-server postgresql-devel</ | ||
+ | |||
+ | * 第一次建立 PostgreSQL 資料目錄< | ||
+ | * 檢查 PostgreSQL 參數檔是否已產生< | ||
+ | cd / | ||
+ | ls -lt | ||
+ | </ | ||
+ | * 看結果內容< | ||
+ | [root@tryboxap07 data]# ls -lt | ||
+ | total 116 | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | -rw------- | ||
+ | -rw------- | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | -rw------- | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | -rw------- | ||
+ | </ | ||
+ | * 設定 PostgreSQL 參數檔 postgresql.conf 內容 <code sh>vi postgresql.conf</ | ||
+ | : | ||
+ | listen_addresses = ' | ||
+ | port = 5432 | ||
+ | max_connections = 750 | ||
+ | : | ||
+ | shared_buffers = 24MB | ||
+ | : | ||
+ | stats_start_collector = on | ||
+ | stats_command_string = on | ||
+ | stats_block_level = on | ||
+ | stats_row_level = on | ||
+ | : | ||
+ | autovacuum = on | ||
+ | : | ||
+ | </ | ||
+ | * 依據實際需要來修改 postgresql 登入權限檔 pg_hba.conf <code sh>vi pg_hba.conf</ | ||
+ | # IPv4 local connections: | ||
+ | local all | ||
+ | host all | ||
+ | </ | ||
+ | * 啟動 PostgreSQL <code sh> | ||
+ | * **如果無法成功啟動, | ||
+ | kernel.shmmax = 536870912 | ||
+ | kernel.shmmni = 4096 | ||
+ | kernel.shmall = 2097152 | ||
+ | # semaphores: semmsl, semmns, semopm, semmni | ||
+ | kernel.sem = 250 32000 100 128 | ||
+ | fs.file-max = 65536 | ||
+ | net.ipv4.ip_local_port_range = 1024 65000 | ||
+ | net.core.rmem_default=262144 | ||
+ | net.core.rmem_max=262144 | ||
+ | net.core.wmem_default=262144 | ||
+ | net.core.wmem_max=262144 | ||
+ | </ | ||
+ | * <code sh>/ | ||
+ | * 設定每次開機自動啟動 postgresql <code sh> | ||
+ | su - root | ||
+ | chkconfig postgresql on | ||
+ | chkconfig --list | grep postgresql | ||
+ | </ | ||
+ | [root@trybox-03 data]# | ||
+ | postgresql | ||
+ | [root@trybox-03 data]# | ||
+ | </ | ||
+ | |||
+ | ===== 安裝 php ===== | ||
+ | * 安裝 php 與 php-mysql / php-pgsql 模組 <code sh>yum install -y php php-mbstring php-mysql php-pgsql</ | ||
+ | * 原則上 php 已經隨 apache 安裝上去, | ||
+ | cd / | ||
+ | vi php.php | ||
+ | </ | ||
+ | <?php | ||
+ | phpinfo(); | ||
+ | ?> | ||
+ | </ | ||
+ | service httpd restart | ||
+ | </ | ||
+ | * 然後輸入網址, | ||
+ | |||
+ | ===== 安裝 perl Module ===== | ||
+ | * 透過 EPEL 安裝 | ||
+ | <code sh> | ||
+ | yum install -y perl-Text-Iconv perl-Mail-Sendmail perl-DBI perl-DBD-Pg perl-DBD-mysql perl-Digest-Perl-MD5 | ||
+ | </ | ||
+ | |||
+ | ===== 安裝 phpMyAdmin ===== | ||
+ | * 至 https:// | ||
+ | cd / | ||
+ | wget https:// | ||
+ | tar -zxvf phpMyAdmin-*.tar.gz | ||
+ | rm -rf phpMyAdmin-*.tar.gz | ||
+ | mv phpMyAdmin-*-all-languages phpMyAdmin | ||
+ | </ | ||
+ | * 設定 config.inc.php 參數檔< | ||
+ | cd / | ||
+ | mkdir tmp | ||
+ | chown apache: | ||
+ | cp config.sample.inc.php config.inc.php | ||
+ | vi config.inc.php</ | ||
+ | : | ||
+ | $cfg[' | ||
+ | : | ||
+ | /* Authentication type */ | ||
+ | $cfg[' | ||
+ | /* Server parameters */ | ||
+ | : | ||
+ | : | ||
+ | </ | ||
+ | * 這樣設定之後,連上 phpMyAdmin 網頁就會談出輸入帳號密碼的視窗,輸入 root 與建立 MySQL 或 MariaDB 的密碼就可以登入 | ||
+ | * 參考網址 - http:// | ||
+ | |||
+ | ===== 安裝 phpPgAdmin ===== | ||
+ | * 至 www.sf.net 找 phpPgAdmin | ||
+ | * 網址 : http:// | ||
+ | cd / | ||
+ | wget http:// | ||
+ | tar -zxvf phpPgAdmin-3.5.6.tar.gz | ||
+ | rm -rf phpPgAdmin-3.5.6.tar.gz | ||
+ | </ | ||
+ | * 設定參數檔 conf/ | ||
+ | cd phpPgAdmin/ | ||
+ | cp config.inc.php-dist config.inc.php | ||
+ | vi config.inc.php</ | ||
+ | : | ||
+ | // Hostname or IP address for server. | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | : | ||
+ | </ | ||
+ | * 驗證 phpPgAdmin 安裝是否正確 | ||
+ | * 網址 : http:// | ||
+ | * 可以使用之前建立的帳號密碼登入 | ||
+ | * 建立 Reports 資料庫< | ||
+ | su - postgres | ||
+ | export LANG=C | ||
+ | cd / | ||
+ | psql template1 < reports-pgsql.sql</ | ||
+ | -bash-3.00$ psql template1 < reports-pgsql.sql | ||
+ | CREATE DATABASE | ||
+ | You are now connected to database " | ||
+ | NOTICE: | ||
+ | NOTICE: | ||
+ | CREATE TABLE | ||
+ | GRANT | ||
+ | GRANT | ||
+ | -bash-3.00$ | ||
+ | </ | ||
+ | |||
+ | ===== 安裝 SubVersion(svn) ===== | ||
+ | ==== 安裝 SubVersion rpm ==== | ||
+ | <note warning> | ||
+ | 壓力測試發現在同時 svnadmin export 與 svn update 時會出現 db 異常問題, | ||
+ | \\ | ||
+ | < | ||
+ | |||
+ | cd / | ||
+ | svnadmin recover trybox | ||
+ | chown -R apache: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <code sh>yum install -y subversion mod_dav_svn</ | ||
+ | |||
+ | ==== 編輯設定檔 subversion.conf ==== | ||
+ | <code sh> | ||
+ | cd / | ||
+ | vi subversion.conf | ||
+ | </ | ||
+ | # Needed to do Subversion Apache server. | ||
+ | LoadModule dav_svn_module | ||
+ | |||
+ | # Only needed if you decide to do " | ||
+ | #LoadModule authz_svn_module | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | < | ||
+ | DAV svn | ||
+ | | ||
+ | |||
+ | # Order deny,allow | ||
+ | # Deny from all | ||
+ | # Allow from 127.0.0.1 | ||
+ | # Allow from ::1 | ||
+ | # Allow from .ichiayi.com | ||
+ | |||
+ | | ||
+ | # Satisfy Any | ||
+ | |||
+ | # Limit write permission to list of valid users. | ||
+ | # < | ||
+ | # Require SSL connection for password protection. | ||
+ | SSLRequireSSL | ||
+ | |||
+ | AuthType Basic | ||
+ | AuthName " | ||
+ | AuthUserFile / | ||
+ | Require valid-user | ||
+ | # </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | * 如果 svn 要改用 http:// 沒有加密傳送方式, | ||
+ | * 如果不需要設定特定使用者權限,就在 AuthzSVNAccessFile 前加上 # 拿掉指定權限功能, | ||
+ | * 如果拿掉 Satisfy Any 前 #, 以下的限制 SSLRequireSSL / Deny from / Allow from 都會失效 | ||
+ | </ | ||
+ | ==== 依實際需要建立 svn 目錄與專案 ==== | ||
+ | <code sh> | ||
+ | mkdir / | ||
+ | cd / | ||
+ | svnadmin create trybox | ||
+ | chown -R apache: | ||
+ | </ | ||
+ | |||
+ | ==== 設定存取 subversion 用戶帳號密碼 ==== | ||
+ | <code sh> | ||
+ | htpasswd -c / | ||
+ | htpasswd / | ||
+ | </ | ||
+ | [root@tryboxap1 svn]# htpasswd -c / | ||
+ | New password: | ||
+ | Re-type new password: | ||
+ | Adding password for user jonathan | ||
+ | |||
+ | [root@tryboxap1 svn]# htpasswd / | ||
+ | New password: | ||
+ | Re-type new password: | ||
+ | Adding password for user trybox | ||
+ | </ | ||
+ | |||
+ | ==== 設定每個使用者在每個 repos 內的權限 ==== | ||
+ | <code sh>vi / | ||
+ | [trybox:/] | ||
+ | jonathan = rw | ||
+ | trybox = r | ||
+ | </ | ||
+ | |||
+ | ==== 重起 apache 讓 subversion 生效 ==== | ||
+ | <code sh> | ||
+ | |||
+ | ===== 安裝 cronolog 讓 log 檔可自動依日期分檔 ===== | ||
+ | <code sh>yum install -y cronolog</ | ||
+ | |||
+ | * 透過下載原始碼安裝< | ||
+ | wget http:// | ||
+ | tar -zxvf cronolog-1.6.2.tar.gz | ||
+ | cd cronolog-1.6.2 | ||
+ | ./configure | ||
+ | make | ||
+ | make install | ||
+ | cd .. | ||
+ | rm -rf cronolog-1.6.2* | ||
+ | </ | ||
+ | |||
+ | ===== 安裝 RRDTool ===== | ||
+ | < | ||
+ | * RRD Tools 官方網站 : http:// | ||
+ | * RRD Tools 官方下載網站 : http:// | ||
+ | </ | ||
+ | |||
+ | <code sh> | ||
+ | yum install rrdtool | ||
+ | </ | ||
+ | |||
+ | ===== 設定 iptables ===== | ||
+ | * 依實際需要設定, | ||
+ | <code sh> | ||
+ | vi / | ||
+ | </ | ||
+ | *filter | ||
+ | :INPUT ACCEPT [0:0] | ||
+ | :FORWARD ACCEPT [0:0] | ||
+ | :OUTPUT ACCEPT [0:0] | ||
+ | : | ||
+ | -A INPUT -j RH-Firewall-1-INPUT | ||
+ | -A FORWARD -j RH-Firewall-1-INPUT | ||
+ | -A RH-Firewall-1-INPUT -i lo -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -p 50 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -p 51 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -m state --state ESTABLISHED, | ||
+ | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT | ||
+ | -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited | ||
+ | COMMIT | ||
+ | </ | ||
+ | service iptables restart | ||
+ | </ | ||
+ | |||
+ | ===== 設定 yum-cron 自動升級 ===== | ||
+ | * 適用 : CentOS7 | ||
+ | * 參考 : | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * ++看設定語法|< | ||
+ | yum install yum-cron -y | ||
+ | systemctl start yum-cron | ||
+ | systemctl enable yum-cron | ||
+ | 預設會更新所有安裝套件, | ||
+ | vi / | ||
+ | </ | ||
+ | : | ||
+ | apply_updates = yes | ||
+ | : | ||
+ | </ | ||
+ | systemctl restart yum-cron | ||
+ | </ | ||
+ | ++ | ||
+ | |||
+ | |||
+ | {{tag> |