Linux/CentOS各種服務架構的搭建完整流程

來源:互聯網
上載者:User

標籤:linux centos php

在2012年的時候,因為要照顧新人對Linux以及相關服務的瞭解和學習,我特地把當時我們創業項目的所有服務搭建過程寫成了一篇文檔,可以讓他們學習並且有所參照。下面就以這篇文檔為底稿,進行一些修改和敏感資訊的刪除,分享給大家,希望對大家有益。
說明,以下的Rafael是我的英文名,應用是當前已經改變方向的功夫信,英文直寫拼音gongfuxin。本文除了Linux帳號、部分安全的基本配置,還有php/php-fpm/mysql/redis/nginx的安裝和配置。
轉載請註明出處。
更新記錄:
顧笑群 2012年10月26日 通過虛擬機器安裝機器,開始描述安裝步驟
顧笑群 2012年12月04日 通過虛擬機器安裝機器,並且安裝自我裝載的全套服務,完善整個安裝步驟
顧笑群 2014年8月7日 處於網路分享目的,有所刪除和修正

第一部分 乾淨伺服器的安裝
========================
1. 下載CentOS 6.3(當前最新已經是6.5了) 64bit的CD1(不是liveDVD或者liveCD),然後按照嚮導設定,下面是設定的一些注意點:
   1) 由光碟片啟動,安裝Centos 6.3
   2) 選擇預設的英語安裝
   3) 磁碟選擇整個硬碟
   4) 時間選擇上海,不要選擇UTC
   5) 設定root密碼的時候,要備份這個密碼
   6) 選擇basic server的方式安裝
   7) 自訂選擇包,在語言中選擇中文包

2. 網路和系統配置
   1) 自我裝載機,可以使用靜態IP,也可以是動態IP。公網機器一定要使用靜態IP,使用setup命令進行設定,也可以直接更改對應的設定檔:
   /etc/sysconfig/network-scripts/ifcfg-eth0,特別是要把ONBOOT的值改為yes,一般改好後最好重啟,就能使用網路了
   2) 然後執行yum update,對系統進行全面的更新,完成之後最好重新啟動一次
   3) 如果核心升級了,不要刪除所有的老核心,至少保留最近一次的老核心,以防新核心有問題
   4) 關閉SELinux,通過修改/etc/selinux/config來實現。以後可以通過防火牆來保護伺服器

3. 賬戶的設定和維護
   1) 建立系統管理使用者,如useradd rafael
   2) 對新建立的使用者進行密碼設定,如passwd rafael,一般要備份這個密碼
   4) 把rafael加入到wheel使用者組中,在/etc/group中進行配置
   5) 把wheel使用者組設定為sudo的信任使用者組,在/etc/sudoers中進行修改,注意這個檔案要先改為可寫,修改完後再該回去
   6) 禁止root使用者遠程ssh登入,到/etc/ssh/sshd_config中進行配置,設定PermitRootLogin no,然後重新啟動sshd
   7) 以後盡量通過ssh遠程登入這個機器了

第二部分 安裝nginx, mysql, php, redis等
========================
1. 設定epel更新源(官方源太老了)
   1) 主要參照http://www.if-not-true-then-false.com/2011/install-nginx-php-fpm-on-fedora-centos-red-hat-rhel/,會有一些小的變動,以下面為準。首先完成下面兩步:
      a. sudo rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm (最好到http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/看看epel的最新版本,應該不止6-8了)
      b. sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm(最好到http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/看看最新版本)?
   2) 然後找到nginx源,到http://nginx.org/en/download.html找到CentOS6一行,然後可以下載對應的rpm,也可以直接通過如下命令:sudo rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

2. 安裝需要的軟體
   1) 安裝php和nginx,如:sudo yum --enablerepo=remi install nginx php php-fpm php-common
   2) 安裝php的組件,如:sudo yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-devel
   3) php-redis請根據https://github.com/nicolasff/phpredis上的說明用Git下載並編譯和安裝(安裝gcc和Git先:sudo yum --enablerepo=remi install gcc git),然後需要手動的在/etc/php.d/中增加redis.conf以及相關內容
   4) 安裝mysql和redis,如:sudo yum --enablerepo=remi install mysql mysql-devel mysql-server redis
   5) 然後分別配置php-fpm/nginx/mysql/redis在2/3/4/5層級自動啟動,可以通過chkconfig來設定

第三部分:配置mysql, redis, nignx, php等
========================
1. 配置mysql
   1) 啟動mysql:sudo service mysqld start,會提示你第一次啟動的一些初始化注意事項
   2) 設定root的本地密碼,備份密碼;可以看情況是否設定root的遠程帳號
   3) 登入mysql,用命令列建立其他使用者和密碼,必須設定gongfuxin帳號以及密碼,備份密碼,此帳號用於網站登入
   4) 建立基於utf8的資料庫gongfuxin,然後匯入gfx_recreate_all.sql,還有城市,省份和大學的對應表,把gongfuxin資料庫的所有許可權賦予gongfuxin帳號:grant all privileges on gongfuxin.* to [email protected];
   5) 可以在遠程登入mysql進行設定,這樣更方便,但是之前要配置遠程帳號,並且要開啟防火牆的3306(tcp)連接埠,之前的帳號建立,資料庫建立都可以使用這種方式,但是安全欠妥
   6) 對於mysql的設定檔,可以在/usr/share/mysql/中找到,然後根據具體記憶體大小選擇,覆蓋到/etc/my.cnf中就可以了,然後重新啟動:sudo service mysqld restart

2. 配置redis
   1) 設定檔在/etc/redis.conf,暫時不需要配置
   2) 啟動redis:sudo service redis start

3. 配置php
   1) 編輯/etc/php.ini,修改如下(這裡的配置是針對上線伺服器的,不是針對開發環境的):
      ?implicit_flush = On
      ?expose_php = Off
      ?error_log = /var/log/php-fpm/php_error.log
   2) 修改/var/lib/php/session的許可權,使之屬於nginx使用者組,而非apache使用者組(此時root應該為使用者,不需要改變)
   3) 修改/var/log/php-fpm的許可權,使之屬於nginx使用者,而非apache使用者(此時root應該為使用者組,不需要改變)
   4) 修改/etc/php-fpm.d/www.conf,使user和group都是nginx
   5) 啟動php-fpm:sudo service php-fpm start

4. 配置nginx
   1) /etc/nginx/nginx.conf根據實際情況配置,對於自我裝載環境不需要配置,注意,一般需要修改系統進程最大線程數以及控制代碼數,用ulimit -a可以查看;進程的線程堆棧大小在程式中自動修改
   2) /etc/nginx/conf.d/default.conf,需要配置成我們的發布目錄,如果有多個發布目錄就需要多個類似的設定檔,並且配置成PHP解析,如下:
*********file start*********
    listen       8050;
    server_name  localhost;

    charset      utf-8;
    access_log   /var/log/nginx/access.log  main;
    root         /usr/share/nginx/gongfuxin;

    location / {
        index  index.php;
    }

    location ~ \.php$ {
        include                 fastcgi_params;
        fastcgi_pass            127.0.0.1:9000;
        fastcgi_index           index.php;
        fastcgi_param           SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        client_max_body_size    8m;
    }

    # deny access to .htaccess files, if Apache‘s document root
    # concurs with nginx‘s one
    location ~ /\.ht {
        deny  all;
    }
}
*********file end*********
   3) 請根據配置分別修改php-cgi的監聽連接埠(下面會說道);然後開啟80(tcp,正規伺服器,必須是80連接埠)或者8050(tcp,自我裝載,也可以使用其他未被使用的連接埠)的防火牆設定
   4) 需要建立/usr/share/nginx/gongfuxin檔案夾
   5) 啟動nginx:sudo service nginx start
?
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.