centos伺服器配置流程

Erasin發表於2014-04-08

centos伺服器配置流程

使用http使用者服務:

user  : ngxin 
group : nginx

普通使用者根據專案來定: (舉例使用者 jibun)

user  : jibun
group : nginx,users

安裝配置

關於源

  • centos or redhat yum 新增 163 源
  • yum 命令

PHP

安裝:

# yum install php php-fpm php-gd php-mcrypt php-pear php-mysql php-mysqlite

檢查版本:

$ php -v 

服務:

# service php-fpm start|restart|stop

開啟啟動:

chkconfig php-fpm on

配置:

檔案

/etc/php.ini       
/etc/php.d/        
/etc/php-fpm.conf
/etc/php-fpm.d/  

/etc/php.ini 配置要點

; 時間區域
date.timezone = "Asia/Shanghai"

必要的庫,有的在對應的 /etc/php.d/ 資料夾中

;extension=iconv.so
;extension=mcrypt.so    
;extension=sockets.so
;extension=soap.so

/etc/php-fpm.conf

/etc/php-fpm.d/www.conf fpm的配置檔案修改要點

listen = 127.0.0.1:9000                                                     
; listen = /var/run/php-fpm/php-fpm.sock

使用者寫入檔案的 user:group 和許可權

listen.owner = nginx
listen.group = nginx
listen.mode = 0666  
user = nginx
group = nginx

執行時限**

request_terminate_timeout = 180s

許可權:

對session.savepath 的組使用者寫許可權

# chown root:nginx -R /var/lib/php/

Mysql

安裝:

yum install mysql mysql-server

檢查:

mysql --version

開啟啟動:

chkconfig mysqld on

設定初始密碼:

# service mysqld start
# mysqladmin -u root password '123456'

重新設定密碼:

開啟安全模式:

# service mysqld stop
# mysqld_safe --skip-grant-tables&
# mysql --user=root mysql
> update user set Password=PASSWORD('new-password');
> flush privileges;
> exit;
# killall mysqld_safe&
# service mysqld start
  • 停止服務
  • root許可權開啟mysql安全模式
  • 進入mysql資料庫
  • 更新表,重新整理,退出
  • 殺死mysqld 安全程式
  • 開啟mysql服務

配置:

檔案:

/etc/my.cnf

nginx

新增內容到 /etc/yum.repos.d/CentOS-Base.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

安裝:

yum install nginx

開啟啟動:

chkconfig nginxd on

檢視:

nginx -v 

配置:

/etc/nginx/conf.d/

以 fb.geely.com 為模板

server {
    listen       80;
    server_name  fb.geely.com;
    charset utf-8;
    root        /home/nginx/fb.geely.com;
    access_log  /home/nginx/logs/fb.geely.com.log  main;
    error_log   /home/nginx/logs/fb.geely.com_error.log;

    location /{
        index  index.php index.html index.htm;
        #if (!-e $request_filename){
        #        rewrite ^/(.*)$ /index.php/$1 last;
        #}
    }

    location ~ ^.+\.php{
        fastcgi_buffer_size 128k;
        fastcgi_buffers 32 32k;
        #fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_pass  127.0.0.1:9000; 
        fastcgi_index index.php;
        fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        include       fastcgi_params;
    }

    #error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

SSL HTTPS 配置模板

server {
    listen       443 ssl;
    server_name  fb.geely.com;

    # ssl on;
    ssl_certificate     /home/nginx/fb.geely.com/ssl/fb.geely.com.crt;
    ssl_certificate_key /home/nginx/fb.geely.com/ssl/fb.geely.com.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    root        /home/nginx/fb.geely.com;

    access_log  /home/nginx/logs/fb.geely.com.log  main;
    error_log   /home/nginx/logs/fb.geely.com_error.log;

    location / {
        index index.html index.php;                                                                                                           
    }

    location ~ ^.+\.php{
        fastcgi_pass  127.0.0.1:9000;
        #fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        include       fastcgi_params;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
            root   /usr/share/nginx/html;
    }

    location ~ /\.ht {
            deny  all;
    }
}

參看 SSL CA證照

安全

自動檢測服務並重啟指令碼:

#!/bin/bash
# file path /home/jibun/shell/checkservice.sh

service_log=/home/jibun/logs/server.log

ng=`service nginx status|awk '{print $5}'`
php=`service php-fpm status|awk '{print $5}'`
mysql=`service mysqld status|awk '{print $5}'`

if [[ $ng != *"running"* ]]; then
    echo "---------------------------------" >> $service_log
    date '+%Y-%m-%d %H:%M' >> $service_log
    service nginx start >> $service_log
fi

if [[ $php != *"running"* ]]; then
    echo "---------------------------------" >> $service_log
    date '+%Y-%m-%d %H:%M' >> $service_log
    service php-fpm start >> $service_log
fi

if [[ $mysql != *"running"* ]]; then
    echo "---------------------------------" >> $service_log
    date '+%Y-%m-%d %H:%M' >> $service_log
    service mysqld start >> $service_log
fi

注意 mysql的服務預設為 mysqld ,有部分為mysql,自行斟酌

建立普通使用者

建立使用者jibun並建立密碼

useradd -G nginx -g users jibun 
passwd jibun 

伺服器路徑

建立伺服器檔案路徑。

/home/nginx         # nginx伺服器所在資料夾
/home/nginx/logs    # 存放日誌
/home/nginx/domain  # 對應的專案

執行過程

# cd home
# mkdir nginx 
# chown nginx:nginx -R nginx
# chmod g+w nginx
# cd nginx 
# mkdir logs
# su jibun
$ mkdir www.domain.com

上傳對應的 www.domain.com 資料夾即可。

使用者jibun資料夾:

/home/jibun            # home資料夾
/home/jibun/shell      # 定時執行指令碼
/home/jibun/backdir    # 備份位置
/home/jibun/gitsource  # git源庫(防篡改之用)

參看伺服器方案

  • 參看 [linux 下同步方案以及站點檔案的防篡改]
  • 參看 [mysql master slave 主從同步]
  • 參看 [負載均衡技術]
  • 參看 [壓力測試 和 網速測試]

相關文章