ECS+nginx+wordpress一手搭建完畢

PS:

先來一段吐槽...好朋友校招進百度前端團隊了..我還在找工做ing..好心塞.可是蠻爲他高興的.php

是個人問題.技術面鋪的太開了,沒有深刻的一項.比較深刻的也就是web滲透,python了吧.可是滲透團隊要求好高!網易跪在了HR面..綠盟進行中(工資略低啊)html

技能點大概是(10星滿分):python(7星),linux(6星),web滲透(6星),html+js(4星),網絡安全(7星),學習能力(10星,哇咔咔),
從此就三個方向:滲透,python,linux不變了!吃夠了不專一的苦了!前端

可是事情還得作!明天更美好!


這篇文章主要爲了記錄一些配置過程當中的問題,可是我不喜歡寫半拉子東西,因此就完整記錄下吧,我會分好幾個時間段來寫的...node

#正文#

窮人終於有了一個雲主機(和別人合買的!哭)
那麼昨晚就開開心心的把環境配了配.
環境:
ubuntu 12.04python

step 1:安裝和配置必要軟件

首先你得ssh到雲主機上面
假設你的雲主機獨立IP爲x.x.x.xmysql

nginx

nginx 是另一個哥們手動編譯過來的,我這裏就不介紹怎麼編譯了..linux

安裝命令:sudo apt-get install nginxnginx

啓動:sudo nginx
可選參數-c.指定配置文件的路徑..用默認的就ok啦..web

中止:sudo nginx -s stopsql

每次改變配置文件以後要reload才能生效:sudo nginx -s reload

配置文件解析:
nginx有個默認配置文件:
默認的是:/etc/nginx/ngnix.conf/etc/nginx/site-available/default.


打開配置文件:
sudo vim /etc/nginx/ngnix.conf
sudo vim /etc/nginx/site-available/default


其中 ngnix.conf是總配置文件,裏面有http block,events block,mailblock(略過)

ngnix.conf中從頭開始講:

  1. user www-data在你安裝ngnix的時候已經創建了這個用戶,不用管他

  2. worker_processes 1; 這裏數值最大爲4,代表開幾個線程處理請求.

  3. http {}主要配置一些公用屬性:日誌存放地點,配置文件包含,服務器是否接受gzip.保持鏈接時間,接受文件類型等等..可是剛剛搭建的話就採用默認就行了,具體以下:

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay    on;
    types_hash_max_size 2048;
    proxy_ignore_client_abort on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_disable  "msie6";



    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    server {}
    }

4.和http並行的有一個events{}block,裏面一邊配置的只有一條屬性:

events {
    worker_connections  1024;
}

就是最大鏈接數

5.最後會發現有這麼幾行配置:

include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;

代表include了其餘的配置文件,若是按照路徑去查找,最終會發現只include進來一個/etc/nginx/site-available/default文件


default裏面的內容,其餘什麼都不要管,關鍵是這幾個block:
1. sever{} 這個至關於apache的虛擬目錄...你能夠配置多個server.讓他監聽不一樣的端口,或者分發不一樣的域名.
2. location{} 這個是作路徑路由的..就是匹配你request裏面的路徑的.(他是嵌套在server裏面的)


先從server{}講起.裏面的關鍵語句有:
listen port: port通常默認都是80由於是http嘛
root path:path是你的網站根目錄,至關於apachce的www-root
server_name your_domain_name:後面是你的域名,默認是localhost用來本機測試.能夠用這邊作站點分發哦..


而後是 location{}
他是server裏面的子嵌套..一個server裏面能夠有多個來匹配不一樣的路徑..

1.首先必須配的是 location /{}
這個用來匹配全部請求的,每一個請求都會進入這個location來,而後nginx來去看路徑是否有這個文件..如有的話,靜態文件直接返回,動態腳本交給下面的location處理.
格式化配置內容以下:

location / {
                try_files $uri $uri/ =404;
                autoindex on;
                index index.php index.html index.htm;
        }

index是爲了找出默認首頁..順序匹配

2.若是是php動態腳本的話..須要以下location

location ~ \.php$ {
    #            fastcgi_pass unix:/var/run/php5-fpm.sock;
                include fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

3.若是是python腳本的話,以下:

location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:50000;
        }

這裏很容易出問題的..用unix sock的話我是沒試過..

檢測nginx是否正常工做:
在瀏覽器中輸入:http://x.x.x.x/跳出welcome to use nginx便可


php相關組件

安裝過程:
sudo apt-get install php5 php5-cgi php5-fpm php5-mysql

php5-fpm的配置文件無需修改,有興趣的能夠去/etc/php5/fpm/php-fpm.conf/etc/php5/fpm/php.ini查看

檢測php5-fpm服務是否開啓:
sudo netstat -tunpl | grep 9000

開啓關閉重啓php5-fpm方法:
sudo service php5-fpm start
sudo service php5-fpm stop
sudo service php5-fpm restart


如今能夠檢測下php和nginx是否配置好了:

  1. 在你ngnix配置的root屬性指向的目錄下存放一個文件叫index.php
  2. 在你nginx配置中 index配置下將index.php放在首位
  3. 在index.php中寫入:
<?php
phpinfo();
?>

最後訪問http://x.x.x.x 如有php配置信息跳出即成功


mysql

安裝方法:
sudo apt-get install mysql-server mysql-client

安裝過程當中會讓你輸入mysql的root用戶的新密碼,按照步驟執行便可


安裝wordpress

1.從官網下載wordpress4.0
wget https://cn.wordpress.org/wordpress-4.0-zh_CN.zip

2.解壓縮:
unzip wordpress-4.0-zh_CN.zip

3.將解壓的文件放到你的web目錄下(可能須要修改配置文件將root指向wordpress文件夾)

4.修改源碼(由於wordpress使用了google字體,而google字體在線加載特別緩慢,影響速度)
找到wordpress/wp-includes/script-loader.php
打開該文件,查找fonts.google.com而後將這個連接改成fonts.useso.com便可

5.在瀏覽器中輸入http:/x.x.x.x便可進入安裝頁面,按照步驟操做便可

step 2:域名綁定

阿里雲主機是有獨立IP的,假設爲x.x.x.x
若是你有個域名,可是不是在阿里雲或者萬網作的備案,那麼就麻煩了(我就是這樣子!)
你須要按照阿里雲的轉入備案流程將你的備案轉入過來,不然你的域名指向該IP的時候阿里雲會檢測到而後不讓你訪問,以下圖:
圖片描述

因此你得先去作轉入備案...具體流程請看:http://beian.aliyun.com/not-at-aliyun.html?spm=5176.200001.5.3.qB7fXw

作完備案轉入以後按照常規的,將域名使用A解析指向你的IP地址便可

step3:wordpress主題插件更新

wordpress更新插件有兩種方式:
1. 在線更新:是要用FTP上傳的,因此你須要搭建一個FTP服務器在你的雲主機上,具體教程請查看:
http://blog.csdn.net/njchenyi/article/details/8499555
2. 離線形式,你先將插件包或者主題包下載下來,而後手動傳到指定目錄便可.
主題目錄爲:wordpress/wp-content/themes/
插件目錄爲:wordpress/wp-content/plugins/

安裝過程當中問題薈萃

  1. 測試php環境是否安裝成功的時候,返回200狀態碼,可是頁面是白板.
    解決方法:
    查看error.log(sudo vim /var/log/nginx/error.log)你會發現有個文件夾permission denied
    因此去把那個文件夾(/usr/local/nginx/fastcgi_temp)給sudo chmod 777 fastcgi_temp便可

  2. 若出現訪問頁面返回一大堆js代碼的狀況: 在nginx.conf中刪除除了以上說到的關於fastcgi和fpm的配置

相關文章
相關標籤/搜索