一,準備linux環境
本地虛擬機能夠忽略第一部分
微博以及微信的公共平臺如今正火的一塌糊塗。既然博客已經上線,準備把一些過程寫一下,省的之後我本身忘了。就當留個記念吧,好歹花了這麼長時間。php
全文的操做環境爲debian。其餘linux發行版區別不大。html
沒有vps的能夠在電腦上裝個linux虛擬機試試,都同樣的。mysql
登入vps
Windows下我一直用的是putty,linux下就很少講了,ssh就行。在linux的shell下輸密碼是不顯示的。
修改root密碼
添加新用戶linux
一天到晚用root進行操做我以爲是件蠻危險的事…
username改爲你本身的。nginx
新用戶添加到sudo
就是給用戶添加root權限。
找到User privilege specification,在下面插入一行web
- username ALL=(ALL:ALL) ALL
複製代碼
cntrl+o 寫入,cntrl+x退出,也能夠直接cntrl+x退出,會提示是否保存修改,輸入y保存,cntrl+c取消返回。若系統沒安裝sudo:sql
- apt-get update
- apt-get upgrade
- apt-get install sudo
複製代碼
修改SSH配置文件(謹慎操做)shell
ssh的配置文件默認應該在/etc/ssh/ssh_config,ssh默認使用的端口是22,我的認爲使用默認端口是不大安全的。因爲1024如下的端口是被linux系統佔用的,因此咱們改個1025到65536就好。打開配置文件數據庫
- nano /etc/ssh/sshd_config
複製代碼
找到port 22這一行,好比改成2222apache
禁止root帳戶遠程鏈接:
僅使用 SSH Protocol 2:
添加新用戶 SSH 訪問權限:
- AllowUsers username #多用戶空格隔開,DenyUsers即禁止訪問用戶
複製代碼
加速SSH登入禁用UseDNS
保存退出,並重啓ssh
不要退出當前鏈接,用新建用戶和端口登入,若沒法登入,請檢查ssh配置文件是否出錯。
參考文章:
二,安裝lnmp
lnmp是一系列的開源軟件所組成的服務器環境安裝包,取自linux,nginx,mysql和php四個單詞的首字母。曾經試用過軍哥的lnmp一鍵安裝包,安裝簡單,配置也簡單。不過我這種強迫症不喜歡現成的,說實話在這塊鼓搗了很久。由於我一直搞不明白nginx的配置。
安裝mysql:
- sudo apt-get install mysql-server
複製代碼
安裝過程當中會要求輸入root密碼,輸入便可。安裝完成後執行
- sudo mysql_secure_installation
複製代碼
按提示操做便可。建議禁止root遠程登入。
安裝nginx:
Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器,由一家俄羅斯公司開發。具體請百度百科。
- sudo apt-get install nginx
複製代碼
安裝php:
- sudo apt-get install php5-fpm php5-mysql
複製代碼
至此全部安裝完成
啓動nginx:
這一步若提示[emerg] bind() to 0.0.0.0:80 failed (98:address already in use ),通常是80端口被apache佔用所致,殺死全部apache進程:
關閉apache的開機啓動:
- sudo update-rc.d -f apache2 remove
複製代碼
在瀏覽器裏訪問你的IP(本地虛擬機中則是127.0.0.1),出現Welcome to Nginx,則說明nginx啓動成功。
nginx配置:
- include /etc/nginx/conf.d/*.conf;
- include /etc/nginx/sites-enabled/;
複製代碼
nginx下的一個虛擬主機就至關於一個網站,每一個虛擬主機的配置文件保存在上面兩條路徑。爲了便於管理,我都是在/etc/nginx/conf.d/下新建conf配置文件。打開nginx的默認配置文件,修改使其支持php:
- sudo nano /etc/nginx/sites-enable/default
複製代碼
找到server模塊,按下修改:
- root /usr/share/nginx/www;#網站根目錄
- index index.php index.html index.htm;
- server_name your_IP_address;
複製代碼
往下找到location ~ .php$ ,去掉部分註釋
- location ~ .php$ {
- fastcgi_split_path_info ^(.+.php)(/.+)$;
- # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
- #
- # # With php5-cgi alone:
- # fastcgi_pass 127.0.0.1:9000;
- # # With php5-fpm:
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi_params;
- }
複製代碼
保存修改退出,並重啓nginx:
- sudo service nginx restart
複製代碼
新建一個phpinfo.php:
- sudo nano /usr/share/nginx/www/phpinfo.php
複製代碼
輸入:
保存退出,瀏覽器訪問ipaddress/phpinfo.php,能正常顯示php5-fpm的配置信息說明lnmp環境就搭好了。
建議安裝phpmyadmin;
- sudo apt-get install phpmyadmin
- sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www
- 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:
- sudo cp /etc/nginx/sites-enable/default /etc/nginx/conf.d/example.conf
複製代碼
三,lnmp下安裝wordpress
固然能夠用其餘blog程序,好比國產的typecho,不過wordpress更易於食用。
下載最新版wordpress
仍是下載中文版wordpress吧
- 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>
複製代碼
解壓:
把解壓出來的wordpress文件夾移到某個你想放的地方,我的隨意。
建立數據庫
裝過phpmyadmin的,此時只要進phpmyadmin頁面建立一個名爲wordpress的數據庫就好,其餘默認。不然,進mysql建立吧。進入mysql:
建立一個名爲wordpress的數據庫:
- create database wordpress;
複製代碼
之後要是想修改wordpress數據庫裏的內容:
這裏涉及到mysql命令語句,有興趣的能夠研究一下,否則裝個phpmyadmin吧。
安裝wordpress
爲了安全考慮,修改下web根目錄的權限。我習慣直接將解壓出來的wordpress目錄看成網站的跟目錄。
- sudo chown www-data:www-data * -R
- sudo usermod -a -G www-data username
複製代碼
www-data是ngimx的默認運行用戶。
建立wordpress的nginx配置文件:
- sudo nano /etc/nginx/conf.d/wordpress.conf
複製代碼
把下面這段扔進去:
- server {
- listen 80 ;#default_server;
- #listen [::]:80 default_server ipv6only=on;
- root 這裏寫網站根目錄;
- index index.php index.html index.htm;
- # Make site accessible from http://localhost/
- server_name 127.0.0.10;#換成本身的域名或者IP
- location / {
- #try_files $uri $uri/ =404;
- try_files $uri $uri/ /index.php?q=$uri&$args;#僞靜態
- }
- error_page 404 /404.html;
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root /usr/share/nginx/html;
- }
- location ~ \.php$ {
- fastcgi_split_path_info ^(.+\.php)(/.+)$;
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi_params;
- }
- }
複製代碼
直接將/etc/nginx/sites-available/default裏的內容複製進去也能夠:
- sudo cp /etc/nginx/sites-available/default /etc/nginx/conf.d/wordpress.conf
複製代碼
關於wordpress的僞靜態規則,上面一種,是wordpress官方給的,網上還能夠搜到的比較多見的:
- location / {
- if (-f $request_filename/index.html){
- rewrite (.*) $1/index.html break;
- }
- if (-f $request_filename/index.php){
- rewrite (.*) $1/index.php;
- }
- if (!-f $request_filename){
- rewrite (.*) /index.php;
- }
- }
複製代碼
最好把 /etc/nginx/sites-available/default和/etc/nginx/sites-enabled/default下的配置文件刪掉,否則容易出現問題。以後重啓nginx:
- rm /etc/nginx/sites-available/default/* /etc/nginx/sites-enabled/defaul/*
複製代碼
- sudo service nginx restart
複製代碼
在瀏覽器輸入ip或者域名