太感謝大師您了!
不過在未得到您的回答之前,
我也去拜google大神,一一地嘗試與過濾可能的解決方法…
(最大的原因,結果全卡在 SELinux 安全議題…最後以不關閉 SELinux 的狀態下解決了!)
目前,進行到最後…
vBulletin v3.8.4LP2 (這是我最後一版的正式授權)
確定死刑…,php5.3搞定可使用,
但是死在 MariaDB (我安裝10.1版) 版本太新不支援。
另一套:
XenForo v1.1.2(這也是我最後一版的正式授權)
這套則在相同的環境下,成功安裝!
以下是晚輩的 CentOS 6.9 安裝手記!
供大師過目過目~~~~~
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
CentOS 6.9 安裝手記
網路設定『自動』,正式Server時再設定IP。
時區:取消左下角的勾勾
CentOS 磁區:(ext4)
/boot 512MB
/ 30720MB(30GB)
/swap 12288MB(12GB)
/homt 剩下全部
Gurp寫在磁區,而非MBR。
以 Minimal 最小化安裝來完成首次安裝!
★本機先確認IP:
#ip a
找到IP後,以PuTTY/PeiTTY SSH連線下達指令。
★安裝前,首先更新套件庫!
# yum -y update
★安裝必要工具:
安裝Wake on Lan的工具
# yum -y install net-tools
安裝vim文字編輯程式
# yum -y install vim
安裝「指令setup」(Text Mode Setup Utility)
(1)安裝 setup 套件
安裝全部 setup 套件!
# yum -y install setuptool ntsysv system-config-* (安裝會有點時間,蠻多的。)
--------------------------------------------------------------------------------
【部份安裝有問題,請改用全部安裝!】備註之用!
# yum -y install setuptool
# yum -y install ntsysv
# yum -y install system-config-network-tui
# yum -y install system-config-firewall-tui
# yum -y install system-config-seturitylevel-tui (這部份試了幾次,沒反應?)
--------------------------------------------------------------------------------
(2) 安裝成功後,下指令setup,如下:
# setup
就可看到Text Mode Setup Utility的設定選單:
----------------------------------------------------------------------
Authentication configuration
Firewall configuration
Keyboard configuration
Network configuration
System services
----------------------------------------------------------------------
★安裝wget下載指令:
# yum -y install wget
★強化 bash 的 PS1 命令提示字元(指令變多彩,不錯用!)
#vim /etc/profile
選其一放在最後面:
# 強化 bash 的 PS1 命令提示字元,請選其一!(指令變多彩,不錯用!)
# 只顯示目前目錄名稱(推薦)
export PS1='\\[\\033[1;33m\\]\\u\\[\\033[1;37m\\]@\\[\\033[1;32m\\]\\h\\[\\033[1;37m\\]:\\[\\033[1;31m\\]\\W \\[\\033[1;36m\\]\\$ \\[\\033[0m\\]'
# 顯示完整路徑 :
#export PS1='\\[\\033[1;33m\\]\\u\\[\\033[1;37m\\]@\\[\\033[1;32m\\]\\h\\[\\033[1;37m\\]:\\[\\033[1;31m\\]\\w \\[\\033[1;36m\\]\\$ \\[\\033[0m\\]'
存檔退出,先登出,再登入或切換身份,才會生效!
★安裝screen指令工具:(可同時使用多個終端機!)
# yum -y install screen
設定檔在 user 家目錄
# vim ~/.screenrc (若在其他目錄可下達這個指令!)
# vim .screenrc
將以下設定檔寫入:
=======================================================================
escape ^aa
vbell off
autodetach on
startup_message off
shell -$SHELL
allpartial off
defc1 off
defencoding utf8
bind b encoding big5 utf8
bind u encoding utf8 utf8
caption always "%{=u .d} %-w%<%{=ub .B}%n %t%{=u .d}%+w "
Set hardstatus always on
hardstatus alwayslastline "%{= .K} [%l]%<%=%{= .W}@%H %=%{= .y} %Y/%m/%d%{= .m} %C:%s %A"
#hardstatus alwaysignore
#F11 往前切換視窗 (相當於C-a p)
bindkey -k F1 prev
#F12 往後切換視窗 (相當於C-a n)
bindkey -k F2 next
#Alt+` 切換至screen 0
bindkey "^[`" select 0
#Alt+1 切換至screen 1,依此類推
bindkey "^[1" select 1
bindkey "^[2" select 2
bindkey "^[3" select 3
bindkey "^[4" select 4
bindkey "^[5" select 5
bindkey "^[6" select 6
bindkey "^[7" select 7
bindkey "^[8" select 8
bindkey "^[9" select 9
bindkey "^[0" select 10
#Alt+= 切換至screen 12
bindkey "^[=" select 12
#F7 關閉screen(至背景) (相當於C-a d )
bindkey -k k7 detach
#F8 kill目前screen視窗
bindkey -k k8 kill
#F9 開一個新的screen視窗 (相當於C-a c)
bindkey -k k9 screen
#F10 將目前screen視窗「標題名稱」重新命名
bindkey -k k; title
#
bindkey "^[O5C" next
bindkey "^[O5D" prev
#
bindkey "^[[C" next
bindkey "^[[D" prev
#
bindkey "^[[1;5D" prev
bindkey "^[[1;5C" next
#
bindkey "^[[5D" prev
bindkey "^[[5C" next
#
term xterm
termcapinfo xterm "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"
#
# allow bold colors - necessary for some reason
attrcolor b ".I"
attrcolor i "+b"
#
# erase background with current bg color
defbce on
#
# remove some stupid / dangerous key bindings
#bind nd k
#bind W
#bind ^k
#bind .
#bind ^\
#bind \\
#bind ^h
#bind hs
=======================================================================
存檔退出!
★安裝Webmin工具(網頁設定Linux),以下為CentOS專用!
一、新增repo檔:
# vim /etc/yum.repos.d/webmin.repo
內容如下:
================================================================================
[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1
================================================================================
二、匯入GPG key
# wget http://www.webmin.com/jcameron-key.asc
# rpm --import jcameron-key.asc
三、安裝Webmin
【建議安裝前可以先使用yum update】
# yum -y install webmin
四、測試連線:
http://你的ip:10000
若有防火牆,需開啟Port 10000!(利用setup)
★開啟防火牆,並且開啟以下 Port
# setup
SSH 22
FTP 21
HTTP 80
HTTPS
IMAP
POP3
SMTP
額外開啟以下 Post
10000 / tcp (Webmin)
3306 / tcp (MySQL/MariaDB)
重啟防火牆
# service iptables restart
★★★【設定完畢後,請先備份整個磁區!以防萬一!】★★★
第一個備份點:CentOS6-2017083010-OK-img
★安裝Nginx網頁伺服器
一、因為 Nginx 並不是 CentOS 官方套件,所以必須先新增 Nginx 官方所提供的第三方套件庫:
# vim /etc/yum.repos.d/nginx.repo
================================================================================
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
================================================================================
存檔退出!
二、匯入憑證
# rpm --import http://nginx.org/keys/nginx_signing.key
三、更新套件庫
# yum update
四、安裝 Nginx Web Server v1.12.1-1.e16
# yum -y install nginx
五、執行 Nginx Web Server
# service nginx start
停止 Nginx
# service nginx stop
重載 Nginx
# service nginx reload
重啟 Nginx
# service nginx restart
查詢 Nginx 狀態
# service nginx status
六、設定開機預設啟動 Nginx
# chkconfig --level 235 nginx on
==========================================================
等級0表示:表示關機
等級1表示:單用戶模式
等級2表示:無網絡連接的多用戶命令行模式
等級3表示:有網絡連接的多用戶命令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多用戶模式
等級6表示:重新啟動
==========================================================
七、查看 Port 80 是否已經開啟
# netstat -ant | grep :80
八、重啟防火牆
# service iptables restart
九、重導向 /usr/share/nginx/html 到自定目錄 /home/nginx/html
● 建立 /home/nginx/html,並將權限給予nginx
--------------------------------------------------------------------------------
Linux 使用 tar, cp 複製檔案時, 保留原本檔案權限
tar -zcvfp 壓縮完成的檔名.tgz (.tar.gz) 原始檔案
cp -Rp 原始檔案 備份完成的檔名
註: 保留原始檔案權限狀態, 主要是 -p 的參數.
--------------------------------------------------------------------------------
以下操作…失敗!
================================================================================
#Screen
#F9 (新增Screen 1)
切換至Screen 1 (顯示目前目錄 # pwd)
# cd /home
# mkdir nginx
# cd nginx
切換至Screen ~ (顯示目前目錄 # pwd)
# tar -zcvp -f nginx-html.tar.gz html
# cp -Rp nginx-html.tar.gz /home/nginx/nginx-html.tar.gz
切換到Screen 1 (顯示目前目錄 # pwd)
# tar -zxvp -f nginx-html.tar.gz
# tar -zxf nginx-html.tar.gz
切換至Screen ~ (顯示目前目錄 # pwd)
# rm -rf html
建立html軟連結,指向/home/nginx/html
# ln -s /home/nginx/html html
================================================================================
以下指令,成功!
================================================================================
#Screen
#F9 (新增Screen 1)
切換至Screen 1 (固定在/home/nginx/)
# cd /home
# mkdir nginx
# cd nginx
切換至Screen ~ (固定在/usr/share/nginx/)
# tar -zcvp -f nginx-html.tar.gz html
# cp -a /usr/share/nginx/html/ /home/nginx/html/
# rm -rf html
建立html軟連結,指向/home/nginx/html
# ln -s /home/nginx/html html
ls -al 查看,出現:
html -> /home/nginx/html 即完成軟連結!
================================================================================
★修改Nginx設定檔(/etc/nginx/nginx.conf)
#vim /etc/nginx/nginx.conf
找
worker_processes 1;
改(雙核心)
worker_processes 2;
在http{}中加入
# 隱藏Nginx版本號
server_tokens off;
--------------------------------------------------------------------------------
#隱藏Nginx版本號(第二處)
# vim /etc/nginx/fastcgi_params
將裏面的(安裝php之後再改)
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
修改為:
#隱藏Nginx版本號(第二處)
fastcgi_param SERVER_SOFTWARE nginx;
--------------------------------------------------------------------------------
★修改Nginx設定檔(/etc/nginx/conf.d/default.conf)
#vim /etc/nginx/conf.d/default.conf
找
index index.html index.htm;
加一段 index.php 如:
index index.php index.html index.htm;
#在瀏覽器呈現目錄樹為 on(預設值 off)
autoindex on;
★新增第二個管理者帳號
【新增名為lilyandy的(-s)系統帳號,同時建立其(-m)家目錄。
# useradd -r -m lilyandy
# passwd lilyandy
==============================================
叮嚀:在使用者($)模式下:
$ su -
輸入root密碼,轉換root身份,再下達之後的指令!
==============================================
# visudo (或是vim /etc/sudoers也可以)
尋找這一行:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
新增一行:
帳號 ALL=(ALL) ALL
或僅限本機使用root權限:
帳號 localhost=(ALL) ALL
存檔退出即可。
測試是否正常使用sudo?
$ cat /etc/shadow
正常會得到→cat: /etc/shadow: Permission denied
$ sudo cat /etc/shadow
輸入非root密碼,若能看到就代表成功取得root權限!
-----------------------------------------------------------------
【修改之二:以下指令,非必要】
修改/etc/sudoers 文件,找到下面一行,把前面的注釋(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
存檔退出。
修改用戶,使其屬於root組(wheel),命令如下:
#usermod -g root lilyandy
【修改之三:以下指令,非必要】
修改/etc/passwd 文件,找到如下行,把用戶ID修改為0 ,如下所示:
lilyandy:500:500::/home/lilyandy:/bin/bash
修改後如下:
lilyandy:0:500:lilyandy:/home/lilyandy:/bin/bash
保存,用lilyandy帳戶登錄後,直接獲取的就是root帳號的權限。
-----------------------------------------------------------------
★安裝 vsftpd server
# yum -y install vsftpd
設定不受 chroot 控制的帳號,這裡產生空檔案即可,
因為想要讓所有登入的使用者都禁止逛大街!!
# touch /etc/vsftpd/chroot_list
編輯 "/etc/vsftpd/vsftpd.conf"
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#讓使用者可用檔案總管方式上傳檔案
connect_from_port_20=NO
pasv_enable=YES
# 使用本地時區
use_localtime=YES
# vim /etc/vsftpd/chroot_list
加入不被禁止的帳戶後存檔!
================================================================================
vsftp server 指令:
啟動 vsftpd:
# service vsftpd start
停止
# service vsftpd stop
重新啟動
# service vsftpd reload
或
# service vsftpd restart
查詢狀態
# service vsftpd status
設定開機預設啟動 vsftpd
# chkconfig --level 235 vsftpd on
================================================================================
★重要!將vsftpd繞過SELinux機制!
實體帳號的 SELinux 議題(ftp_home_dir)
與553 Could not create file議題(allow_ftpd_full_access)
# getsebool -a | grep ftp
=====================================================================
ftp_home_dir --> off <==就是這玩意兒!要設定 on 才行!
allow_ftpd_full_access --> off <==就是這玩意兒!要設定 on 才行!
=====================================================================
加個 -P 參數,代表永遠開啟或關閉!
# setsebool -P ftp_home_dir=1
或 # setsebool -P ftp_home_dir on
# setsebool -P allow_ftpd_full_access on
或 # setsebool -P allow_ftpd_full_access=1
查詢狀態是否已開啟?
# getsebool -a | grep ftp
#出現 550 create directory operation failed
# chmod o+w /home/nginx/html/
搞定!
★修改Nginx設定檔(/etc/nginx/conf.d/default.conf)
#vim /etc/nginx/conf.d/default.conf
#在瀏覽器呈現目錄樹為 on(預設值 off)
#autoindex on;
把autoindex on;註解,取消在瀏覽器呈現目錄樹!
★★★【設定完畢後,請先備份整個磁區!以防萬一!】★★★
第二個備份點:CentOS6-20170830-Web-FTP-OK-img
★安裝MariaDB(取代MySQL)免費資料庫
#加入MariaDB官方源:
#vim /etc/yum.repos.d/MariaDB.repo
--------------------------------------------------------------------------------
# MariaDB 10.1 CentOS repository list - created 2017-08-24 01:27 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
--------------------------------------------------------------------------------
#安裝MariaDB
#yum -y install MariaDB-server MariaDB-client
================================================================================
#相關指令:
# service mysql start
# service mysql status
================================================================================
# 首次使用,請執行 mysql_secure_installation 修改:
# MariaDB 跟 MySQL 一樣,預設的 root 密碼是空密碼,
# mysql_secure_installation
#相關問題:
●輸入root密碼,預設為空
●Set root Password? [Y/n]-------------------------------->Y
設定root密碼[Y/n]?Y【建議不要為了方便跟OS的root相同…】
●Remove anonymous users? [Y/n] -------------------------->Y
移除匿名使用者?[Y/n]Y
●Disallow root login remotely? [Y/n] -------------------->Y
是否禁止root遠端登入?[Y/n]【建議禁止】
●Remove test database and access to it? [Y/n] ----------->Y
刪除測試用資料?[Y/n]
●Reload privilege tables now? [Y/n] --------------------->Y
重新載入權限?[Y/n]Y
#資料庫測試
#mysql -u root -p
SQL指令
#show databases ; 【";"不可省略!~顯示目前資料庫】
================================================================================
================================================================================
#編輯MariaDB設定檔:(/etc/my.cnf)
--------------------------------------------------------------------------------
●在 /usr/share/mysql/
●裡有針對不同記憶體大小的主機提供不同的設定檔
my-innodb-heavy-4G.cnf: 記憶體4G以上,資料表只用innodb,有複雜query的資料庫主機
my-huge.cnf: 適合 1GB - 2GB 記憶體且主要是給資料庫使用的主機
my-large.cnf: 適合 512MB 記憶體且主要是給資料庫使用的主機
my-medium.cnf:只有 32MB - 64MB 記憶體的主機使用,
或者有 128MB RAM 但需要運行其他伺服器,例如網頁伺服器
my-small.cnf: 記憶體少於 64MB 時適用這個,資料庫會佔用較少資源
--------------------------------------------------------------------------------
依主機大小選擇適合的設定檔,複製到 /etc/my.cnf
# mv /etc/my.cnf /etc/my.cnf.default
# mv /usr/share/mysql/my-huge.cnf /etc/my.cnf
編輯設定檔
# vim /etc/my.cnf
# thread_concurrency改成CPU的核心數*2
================================================================================
若不確定核心數,可下達以下指令查詢:
#grep processor /proc/cpuinfo
另一個指令 lscpu, 可以輸出 CPU 資訊概覽, 在檢視上面會更加清晰:
#lscpu
CPU詳細資訊則在:/proc/cpuinfo【很長很長!】
================================================================================
# 若網頁和資料庫在同一台,可關閉外部連結的功能比較安全
#skip-networking
skip-networking
# 沒有使用 MASTER 功能時可以關閉 binary log
# 以免產生一大堆占空間的 mysql-bin.000xxx 的檔案
#log-bin=mysql-bin
# 或是設定 binary log 超過幾天的自動移除
# expire-logs-days=7
# 記錄花費時間超過5秒的指令
slow_query_log
long_query_time = 5
# 設定啟動發生錯誤的log檔要放哪邊
# 沒設定的話預設是 /var/lib/mysql/{hostame}.err
#log-error=/var/log/mariadb/error.log
================================================================================
若資料庫有用到InnoDB的話,要將以下設定【目前暫未設定!】
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M
#innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
改為
default-storage-engine = InnoDB
# 存放 innodb 資料庫檔案的資料夾
innodb_data_home_dir = /var/lib/mysql
# 存放 innodb 資料庫的檔案名稱,第一個 ibdata1 設為初始大小2000M,
# 第二個為 ibdata2,初始大小為10M,會自動擴增
innodb_data_file_path = ibdata1:2000M:ibdata2:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
# buffer_pool_size 會固定占用一塊記憶體,若是與網頁server共用的話不要設太大
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# log_file_size 設為 buffer_pool_size 的25%
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
================================================================================
以下為注意事項!
================================================================================
若啟動失敗,可至 /var/log/mariadb/error.log 查看錯誤記錄
注意若要修改 innodb_data_file_path 時
需要先備份資料庫後,刪除 /var/lib/mysql/ 下的 ibdata* 與 ib_logfile*
重啟 mariadb 會建立新的 ibdata1
然後再把備份的資料庫還原回來
若是有備份資料庫 mysql 的話
只要還原資料庫即可選原之前設定的使用者
若另一台主機的使用者無法登入的話
重新開機再試試看
================================================================================
★安裝php-5.3.3【php-5.2.17編譯安裝失敗!故放棄!】
#為了省麻煩,把 php-* 所有附屬套件,全裝了!
#反正也佔不了多少容量,約佔用77MB左右。
# yum -y install php php-*
================================================================================
●關於編譯安裝,專家給的建議:
如果要裝更新的 php,兩個方法:
1) 下最新版原始碼來編譯安裝
2) yum 新增第三方源(擴充源,非官方的)
應用軟體的話,較建議用第二種方法。因為這樣才可以用 yum 升級更新,補漏洞。
如果軟體是自行下原始碼來編譯安裝的,yum update 是不會更新的。那軟體就一直維持在當初編譯安裝時的版本。
server 需要常常 update 的一個原因在於:
舊版軟體可能被發現 bug、安全漏洞,作者群推出新版本修補漏洞。所以 官方源 或 第三方源 才會更新版本,去修補那個漏洞。
軟體沒更新,等於漏洞沒修補,那 server 的資安就堪慮了。
所以應用軟體,建議是儘量由 yum/apt 去安裝,如果官方源沒有套件,就在 yum/apt 新增第三方擴充源。
不過第三方擴充源也不是隨便亂加的,要看公信力。有名的組織,不會亂來的,從源的網址可以大致判斷一下。
驅動程式就沒辦法,核心不支援的驅動,只有編譯安裝一途。或者更新核心 kernel(一樣是編譯安裝)。
================================================================================
#修改 php-fpm 的配置。
# vim /etc/php-fpm.d/www.conf
--------------------------------------------------------------------------------
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock
;user = apache
user = nginx
;group = apache
group = nginx
; 預設帳戶、群組,為正在運作的帳戶
;listen.owner = nobody
;listen.group = nobody
; 權限(預設為 0666)
;listen.mode = 0666
; session 的路徑
php_value[session.save_path] = /var/lib/php/session
--------------------------------------------------------------------------------
存檔!
#修改 session 路徑的擁有者、群組為 nginx。
# chown root:nginx /var/lib/php/session/
#Nginx 與 PHP 連動設定
#Nginx 針對 PHP 的設定,這樣才可透過 php-fpm 讓 Nginx 與 PHP 之間交互連動。
# vim /etc/nginx/conf.d/default.conf
--------------------------------------------------------------------------------
index index.php index.html index.htm;
# 開啟 PHP-FPM (這組成功!)
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
--------------------------------------------------------------------------------
設定開機預設啟動 php-fpm
# chkconfig --level 235 php-fpm on
php若無法啟動。查看:
#cat /var/log/nginx/error.log
connect() to unix:/var/run/php-fpm.sock failed (2: No such file or directory) while connecting to upstream.
★安裝phpMyAdmin
直接ftp上傳已改好的就行了。
重開機,備份!
CentOS6-Server-20170830-OK-img
重開機,改固定ip,正式上線!
#網路設定檔位於(/etc/sysconfig/netwotk-scripts/)
若只有一張網卡,則是:ifcfg-eth0
#vim /etc/sysconfig/netwotk-scripts/網卡設定檔
以下為範例:
通常系統安裝完成預設為DHCP模式,以下為設定檔內容範例:
DEVICE="eth0"//網路卡代號
BOOTPROTO="dhcp" //若為固定IP則為BOOTPROTO="none"
HWADDR="00:0C:29:73:E4:76"
IPV6INIT="no"
NM_CONTROLLED="yes" //網管軟體相關
ONBOOT="yes"
TYPE="Ethernet"
UUID="b5f711d7-743a-44ae-baae-10dffe1f1d5e"
修改範例:
則檔案修改如下:
DEVICE="eth0"
BOOTPROTO="none"
HWADDR="00:0C:29:73:E4:76"
IPV6INIT="no"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="b5f711d7-743a-44ae-baae-10dffe1f1d5e"
IPADDR=192.168.X.XXX
NETMASK=255.255.255.0
GATEWAY=192.168.X.XXX
DNS1=168.95.1.1
DNS2=8.8.8.8
修改存檔後重新啟動網路設定
service network restart
漏掉『設定 PHP 設定檔』
# vim /etc/php.ini
結果…最後為了搞 SELinux 而沒理它…
搞定 SELinux 後,沒出錯就沒理它了…
XenForo 安裝前 Nginx 配置:
出現Nginx無法讀寫,但已設為0777了!暫時關閉SELinux來測試!
#setenforce 0
結果正常了!果然問題出自於SELinux!
再重新開啟SELinux以增強安全性!
#setenforce 1
首先查詢:
#getsebool -a | grep httpd |less
--------------------------------------------------------------------------------
httpd to read user content ----->off
httpd to enable homedirs ----->off
httpd_can_network_connect ----->off
--------------------------------------------------------------------------------
直接下達以下指令!
#setsebool -P httpd_read_user_content on
#setsebool -P httpd_enable_homedirs on
#setsebool -P httpd_can_network_connect on
還是出問題了 又出來了熟悉的403 原因是一樣的 SELiunx 擋住了 我現在明白為什么阿里不讓開SElinux了
用NGINX經常出現502 Bad gateway錯誤。一般來說是由於SELinux阻擋造成的。運行下面語句,把NGINX加入SELinux的允許名單(白名單),就會少些麻煩。
首先安裝人類能看得懂的轉化工具:
#yum install setroubleshoot
如果系統提示沒有對應的命令需要使用下面的命令安裝:
#yum install policycoreutils-python
因為 SELinux 會限制 Nginx 寫入動作,所以還要打開主目錄的存取權限。
#chcon -R -t httpd_sys_rw_content_t /usr/share/nginx/html
#chcon -R -t httpd_sys_rw_content_t /home/nginx/html
搞定!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
★修改Nginx設定檔(/etc/nginx/conf.d/default.conf)
【XenForo官方文件,但非必要!紀錄之用!沒有修改它…】
#vim /etc/nginx/conf.d/default.conf
【請修改/xf/,這是XenForo的安裝路徑!】
location /xf/ {
try_files $uri $uri/ /xf/index.php?$uri&$args;
index index.php index.html;
}
location /xf/install/data/ {
internal;
}
location /xf/install/templates/ {
internal;
}
location /xf/internal_data/ {
internal;
}
location /xf/library/ {
internal;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
mysql 沒有要對外的話,不要開啟 prot 3306
setup 裡面的簡易防火牆設定,是作用在「網卡」,比方:eth0、eth1 ...之類的。
本機傳導 lo 界面,或軟體之間 soket 通道 ,是不受限制的。
意思就是:
如果 web server(nginx),和 mysql 在同一台電腦內,防火牆並不需要開放 3306埠,一樣可以運作。他們之間的溝通,在本機內傳導,並沒有出網卡外。
開了 3306埠,主機若受到外部攻擊,資料庫有可能會被入侵。
除非是 mysql 還要讓別台電腦,透過網路去存取資料庫,才需要開放 3306埠。
****************************
關於 webmin 的安全性:
因為 webmin 太過強大,幾乎等同 ssh 用 root 登入。
建議是只允許內部區網登入


內部區網,網段,比方:
192.168.1.0/24
192.168.0.0/24
10.0.0.0/16
.....之類的
讓外面 internet 互聯網進不去,只有內部區網能進去。
這樣會比較安全,避免被人從外網嘗試破解登入。
一般上班時間,或家裡,去維護那台主機,一定是從區網登入的,不會從外網登入。

假如特殊原因,非得從外網登入去操作,比方授權給其他人用 webmin 圖形化界面 去維護那台伺服器,而那人不在區網內。
則把 root 限制只能從區網登入:

另創一個 webmin 帳號,僅給予要授權操作的模組權限。
*************************
查詢網卡界面(ip等資訊),也可以用指令:ifconfig
信息會比 ip a 還詳盡
其它部份,nginx 我沒在用,所以設定不熟,幫不上忙。

fedora wrote:
看到比較明顯需要改良...(恕刪)
原來如此。受教了!
另外,想請教大師~~~
由於CentOS6.9預設安裝PHP5.3.x
雖然想安裝5.2.17 但是卻是功力不足,無法實現。
於是考慮升級 php5.4.x,(採用remi源)
結果呢,又換來砍掉重練的困境…(還好有img備份)
無論怎麼升降級,換來的都是php不工作…
不巧的是,vBulletin目前不打算續買升級,
所以php卡在5.2,5.3勉強能動,但MySQL版本太新不支援…
而Xenforo手上最終的正式授權也只到1.1.2,之後也要花錢升級,
所以目前的狀況是可以正常使用的,但是畢竟也舊了,
因此有打算購買升級,目前最新版1.5.14,但是…問題來了…
它最低的要求是php5.4............
完蛋!卡在中間動彈不得!
降級失敗,升級也失敗…
聽說yum官方源好像停止對php版本更新,
所以連最新的CentOS也卡在php5.3…
只能靠第三方源才解決更新問題…?
目前不知問題出在哪?
google大神的資料也參差不齊,嘗試都失敗收場…
不知大師您有哪些建議呢?
另外,手上的書也舊了(RedHat Enterprise 5 Linux 實戰/厚厚一本…),
應該也派不上用場了…
雖然還有一本更舊的 FreeBSD 實戰手冊,也很厚一本,當時版本在6,
現在11了,也派不上用場了。
看來,手邊的書也需要更新才行…是否有推薦的書呢?
因為正式主機上的操作失敗,因此將目標轉於在vm上,
因此以vm為主體也建立了相同環境的centos6.9,
以模擬正式主機的操作。
目前終於發現問題所在了,
因此,php5.4已成功安裝與執行。
額外的收獲則是成功編譯安裝php5.2.17,
實現php5.4與php5.2同時並存!
但同時也出現了大大的問題,
以netstat -nap | grep php-fpm查詢時,
確實有兩個php-fpm同時在運行!
但是神奇的是,我無法成功調用php5.2…
換句話說,我將php5.4設為
fastcgi_pass 127.0.0.1:9000;
而php5.2則設為:
fastcgi_pass 127.0.0.1:9001;
主機名,由於非網外,而是區網內測試,
因此名稱分別為localhost與localhost2,
post全調用80,
其中一個曾設其他port(例如8081),防火牆也開啟該port,但卻啟動失敗!
反而兩者port均為80時,反而啟動成功,但是php5.2就是無法成功調用。
以下為設定檔:/etc/nginx/conf.d/default.conf
################################################################################
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
#在瀏覽器呈現目錄樹為 on(預設值 off)
#autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# 開啟 PHP-FPM (這組成功!)
location ~ \.php$ {
root /usr/share/nginx/html;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
server {
listen 80;
server_name localhost2;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
#在瀏覽器呈現目錄樹為 on(預設值 off)
#autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# 開啟php-5.2.17的 PHP-FPM
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
################################################################################
不知哪兒出了問題呢?



























































































