從零開始在linux下搭建wordpress博客

一,準備linux環境
本地虛擬機能夠忽略第一部分

 

微博以及微信的公共平臺如今正火的一塌糊塗。既然博客已經上線,準備把一些過程寫一下,省的之後我本身忘了。就當留個記念吧,好歹花了這麼長時間。php


全文的操做環境爲debian。其餘linux發行版區別不大。html


沒有vps的能夠在電腦上裝個linux虛擬機試試,都同樣的。mysql



登入vps


Windows下我一直用的是putty,linux下就很少講了,ssh就行。在linux的shell下輸密碼是不顯示的。


修改root密碼
  1. passwd
複製代碼

添加新用戶linux


一天到晚用root進行操做我以爲是件蠻危險的事…
  1. adduser username
複製代碼

username改爲你本身的。nginx


新用戶添加到sudo


就是給用戶添加root權限。
  1. nano /etc/sudoers
複製代碼

找到User privilege specification,在下面插入一行web

  1. username    ALL=(ALL:ALL) ALL
複製代碼

cntrl+o 寫入,cntrl+x退出,也能夠直接cntrl+x退出,會提示是否保存修改,輸入y保存,cntrl+c取消返回。若系統沒安裝sudo:sql

  1. apt-get update
  2. apt-get upgrade
  3. apt-get install sudo
複製代碼

修改SSH配置文件(謹慎操做)shell


ssh的配置文件默認應該在/etc/ssh/ssh_config,ssh默認使用的端口是22,我的認爲使用默認端口是不大安全的。因爲1024如下的端口是被linux系統佔用的,因此咱們改個1025到65536就好。打開配置文件數據庫

  1. nano /etc/ssh/sshd_config
複製代碼

找到port 22這一行,好比改成2222apache

  1. port 2222
複製代碼

禁止root帳戶遠程鏈接:

  1. PermitRootLogin no
複製代碼

僅使用 SSH Protocol 2:

  1. Protocol 2
複製代碼

添加新用戶 SSH 訪問權限:

  1. AllowUsers username #多用戶空格隔開,DenyUsers即禁止訪問用戶
複製代碼

加速SSH登入禁用UseDNS

  1. UseDNS no
複製代碼

保存退出,並重啓ssh

  1. reload ssh
複製代碼

不要退出當前鏈接,用新建用戶和端口登入,若沒法登入,請檢查ssh配置文件是否出錯。


參考文章:


二,安裝lnmp

lnmp是一系列的開源軟件所組成的服務器環境安裝包,取自linux,nginx,mysql和php四個單詞的首字母。曾經試用過軍哥的lnmp一鍵安裝包,安裝簡單,配置也簡單。不過我這種強迫症不喜歡現成的,說實話在這塊鼓搗了很久。由於我一直搞不明白nginx的配置。


安裝mysql:


  1. sudo apt-get install mysql-server
複製代碼
安裝過程當中會要求輸入root密碼,輸入便可。安裝完成後執行
  1. sudo mysql_secure_installation
複製代碼
按提示操做便可。建議禁止root遠程登入。


安裝nginx:


Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器,由一家俄羅斯公司開發。具體請百度百科。
  1. sudo apt-get install nginx
複製代碼


安裝php:
  1. sudo apt-get install php5-fpm php5-mysql
複製代碼
至此全部安裝完成


啓動nginx:
  1. sudo service nginx start
複製代碼
這一步若提示[emerg] bind() to 0.0.0.0:80 failed (98:address already in use ),通常是80端口被apache佔用所致,殺死全部apache進程:
  1. sudo killall apache2
複製代碼
關閉apache的開機啓動:
  1. sudo update-rc.d -f apache2 remove
複製代碼
在瀏覽器裏訪問你的IP(本地虛擬機中則是127.0.0.1),出現Welcome to Nginx,則說明nginx啓動成功。


nginx配置:
nginx的配置文件在/etc/nginx/nginx.conf,具體設置請參考 Nginx戰鬥準備 —— 優化指南。注意到這個其中的兩行:
  1. include /etc/nginx/conf.d/*.conf;
  2. include /etc/nginx/sites-enabled/;
複製代碼
nginx下的一個虛擬主機就至關於一個網站,每一個虛擬主機的配置文件保存在上面兩條路徑。爲了便於管理,我都是在/etc/nginx/conf.d/下新建conf配置文件。打開nginx的默認配置文件,修改使其支持php:
  1. sudo nano /etc/nginx/sites-enable/default
複製代碼
找到server模塊,按下修改:
  1. root /usr/share/nginx/www;#網站根目錄
  2. index index.php index.html index.htm;
  3. server_name your_IP_address;
複製代碼
往下找到location ~ .php$ ,去掉部分註釋
  1. location ~ .php$ {
  2.                 fastcgi_split_path_info ^(.+.php)(/.+)$;
  3.         #        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
  4.         #
  5.         #        # With php5-cgi alone:
  6.         #        fastcgi_pass 127.0.0.1:9000;
  7.         #        # With php5-fpm:
  8.                 fastcgi_pass unix:/var/run/php5-fpm.sock;
  9.                 fastcgi_index index.php;
  10.                 include fastcgi_params;
  11.         }
複製代碼
保存修改退出,並重啓nginx:
  1. sudo service nginx restart
複製代碼
新建一個phpinfo.php:
  1. sudo nano /usr/share/nginx/www/phpinfo.php
複製代碼
輸入:
  1. <;?php phpinfo(); ?>;
複製代碼
保存退出,瀏覽器訪問ipaddress/phpinfo.php,能正常顯示php5-fpm的配置信息說明lnmp環境就搭好了。


建議安裝phpmyadmin;
  1. sudo apt-get install phpmyadmin
  2. sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www 
  3. sudo service nginx reatsrt
複製代碼
安裝過程當中會提示輸入mysql密碼和設置root登陸密碼,安裝完成訪問ip-address/phpmyadmin,在本地虛擬機中的,就是 http://127.0.0.1/phpmyadmin,進行管理數據庫,


新建一個虛擬主機(添加網站):
複製/etc/nginx/sites-enable/default到/etc/nginx/conf.d/example.conf:
  1. sudo cp /etc/nginx/sites-enable/default /etc/nginx/conf.d/example.conf
複製代碼

 


三,lnmp下安裝wordpress
固然能夠用其餘blog程序,好比國產的typecho,不過wordpress更易於食用。
 
下載最新版wordpress
仍是下載中文版wordpress吧
把3.8.1改爲最新的番號,詳見https://cn.wordpress.org/releases/#latest
  1. wegt <a href="http://cn.wordpress.org/wordpress-3.8.1-zh_CN.tar.gz" target="_blank">http://cn.wordpress.org/wordpress-3.8.1-zh_CN.tar.gz</a>
複製代碼
解壓:
  1. tar -zxvf wordpress*.gz
複製代碼
把解壓出來的wordpress文件夾移到某個你想放的地方,我的隨意。


建立數據庫
裝過phpmyadmin的,此時只要進phpmyadmin頁面建立一個名爲wordpress的數據庫就好,其餘默認。不然,進mysql建立吧。進入mysql:
  1. mysql -u root -p
複製代碼
建立一個名爲wordpress的數據庫:
  1. create database wordpress;
複製代碼
之後要是想修改wordpress數據庫裏的內容:
  1. use wordpress;
複製代碼
這裏涉及到mysql命令語句,有興趣的能夠研究一下,否則裝個phpmyadmin吧。


安裝wordpress
爲了安全考慮,修改下web根目錄的權限。我習慣直接將解壓出來的wordpress目錄看成網站的跟目錄。
  1. sudo chown www-data:www-data * -R 
  2. sudo usermod -a -G www-data username
複製代碼
www-data是ngimx的默認運行用戶。
建立wordpress的nginx配置文件:
  1. sudo nano /etc/nginx/conf.d/wordpress.conf
複製代碼
把下面這段扔進去:
  1. server {
  2.         listen 80 ;#default_server;
  3.         #listen [::]:80 default_server ipv6only=on;
  4.         root 這裏寫網站根目錄;
  5.         index index.php index.html index.htm;
  6.         # Make site accessible from http://localhost/
  7.         server_name 127.0.0.10;#換成本身的域名或者IP
  8.         location / {
  9.                 #try_files $uri $uri/ =404;               
  10.         try_files $uri $uri/ /index.php?q=$uri&$args;#僞靜態
  11.         }
  12.         error_page 404 /404.html;
  13.         error_page 500 502 503 504 /50x.html;
  14.         location = /50x.html {
  15.                 root /usr/share/nginx/html;
  16.         }
  17.         location ~ \.php$ {
  18.                 fastcgi_split_path_info ^(.+\.php)(/.+)$;
  19.                 fastcgi_pass unix:/var/run/php5-fpm.sock;
  20.                 fastcgi_index index.php;
  21.                 include fastcgi_params;
  22.         }
  23. }
複製代碼
直接將/etc/nginx/sites-available/default裏的內容複製進去也能夠:
  1. sudo cp /etc/nginx/sites-available/default  /etc/nginx/conf.d/wordpress.conf
複製代碼
關於wordpress的僞靜態規則,上面一種,是wordpress官方給的,網上還能夠搜到的比較多見的:
  1. location / {
  2. if (-f $request_filename/index.html){
  3.                 rewrite (.*) $1/index.html break;
  4.         }
  5. if (-f $request_filename/index.php){
  6.                 rewrite (.*) $1/index.php;
  7.         }
  8. if (!-f $request_filename){
  9.                 rewrite (.*) /index.php;
  10.         }
  11. }
複製代碼
最好把 /etc/nginx/sites-available/default和/etc/nginx/sites-enabled/default下的配置文件刪掉,否則容易出現問題。以後重啓nginx:
  1. rm /etc/nginx/sites-available/default/* /etc/nginx/sites-enabled/defaul/*
複製代碼
  1. sudo service nginx restart
複製代碼

 

在瀏覽器輸入ip或者域名
相關文章
相關標籤/搜索