CentOS 7 yum安裝LAMP,LNMP並搭建WordPress我的博客網站

本次實驗要進行的是在CentOS7.2,內核版本3.10.0-327.el7.x86_64的環境下搭建LAMP和LNMP,並在此之上作一個WordPress博客網站。php

[root@Shining ~]# uname -a
Linux Shining.ACG 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@Shining ~]# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

首先介紹一下LAMP和LNMP

LAMP

    LMAP即Linux+Apache+Mysql/MariaDB+Perl/PHP/Python的首字母縮寫。這是一組經常使用來搭建動態網站或者服務器的開源軟件。它們自己都是各自獨立的程序,可是由於常被放在一塊兒使用,擁有了愈來愈高的兼容度,共同組成了一個強大的Web應用程序平臺。隨着開源潮流的蓬勃發展,開放源代碼的LAMP已經與J2EE和.Net商業軟件造成三足鼎立之勢,而且該軟件開發的項目在軟件方面的投資成本較低,所以受到整個IT界的關注。從網站的流量上來講,70%以上的訪問流量是LAMP來提供的,LAMP是最強大的網站解決方案。html

Linux

    Linux是一套無償使用和自由傳播的類Unix操做系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操做系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操做系統。mysql

    本次使用的CentOS爲Linux的一個發行版。linux

Apache  

    Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,能夠在大多數計算機操做系統中運行,因爲其多平臺和安全性被普遍使用,是最流行的Web服務器端軟件之一。它快速、可靠而且可經過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。nginx

    Apache的主程序名叫httpd,這也是咱們實驗的時候須要安裝的程序之一。web

MySQL

    MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 最流行的關係型數據庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。MySQL所使用的 SQL 語言是用於訪問數據庫的最經常使用標準化語言。MySQL 軟件採用了雙受權政策,它分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。因爲其社區版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。sql

    本次實驗使用的數據庫軟件爲MySQL的一個分支軟件,叫作MariaDB。數據庫

MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,採用GPL受權許可 MariaDB的目的是徹底兼容MySQL,包括API和命令行,使之能輕鬆成爲MySQL的代替品。在存儲引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。apache

php  

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸取了C語言、Java和Perl的特色,利於學習,使用普遍,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它能夠比CGI或者Perl更快速地執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。編程

LNMP

    LNMP和LAMP的區別就在於使用Nginx而不是Apache。

    Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好。

Nginx和Apache的優缺點對比

nginx 相對 apache 的優勢:

    輕量級,一樣起web 服務,比apache 佔用更少的內存及資源。

    抗併發,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高性能。

    高度模塊化的設計,編寫模塊相對簡單。

    社區活躍,各類高性能模塊出品迅速啊。

apache 相對nginx 的優勢:

    rewrite ,比nginx 的rewrite 強大。

    模塊超多,基本想到的均可以找到。

    少bug ,nginx 的bug 相對較多。

    超穩定。

WordPress

    WordPress是一種使用PHP語言開發的博客平臺,用戶能夠在支持PHP和MySQL數據庫的服務器上架設屬於本身的網站。也能夠把 WordPress看成一個內容管理系統(CMS)來使用。WordPress是一款我的博客系統,並逐步演化成一款內容管理系統軟件,它是使用PHP語言和MySQL數據庫開發的。用戶能夠在支持 PHP 和 MySQL數據庫的服務器上使用本身的博客。WordPress有許多第三方開發的免費模板,安裝方式簡單易用。不過要作一個本身的模板,則須要你有必定的專業知識。好比你至少要懂的標準通用標記語言下的一個應用HTML代碼、CSS、PHP等相關知識。WordPress官方支持中文版,同時有愛好者開發的第三方中文語言包,如wopus中文語言包。WordPress擁有成千上萬個各式插件和不可勝數的主題模板樣式。 

下面正式進入實驗階段

Linux,即CentOS的安裝在這裏再也不贅述。

Apache安裝

    Apache的軟件包名字爲httpd,使用yum安裝httpd:

[root@Shining ~]# yum install httpd

    httpd安裝好以後須要將其啓動,啓動以前,咱們來看一下網絡狀況:

[root@Shining ~]# ss -tl
State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
LISTEN     0      5      192.168.122.1:domain                   *:*                    
LISTEN     0      128        *:ssh                      *:*                    
LISTEN     0      128    127.0.0.1:ipp                      *:*                    
LISTEN     0      100    127.0.0.1:smtp                     *:*                    
LISTEN     0      32        :::ftp                     :::*                    
LISTEN     0      128       :::ssh                     :::*                    
LISTEN     0      128      ::1:ipp                     :::*                    
LISTEN     0      100      ::1:smtp                    :::* 
[root@Shining ~]# ss -tnl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      5      192.168.122.1:53                       *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      128    127.0.0.1:631                      *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      32          :::21                      :::*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      128        ::1:631                     :::*                  
LISTEN     0      100        ::1:25                      :::*

    能夠看到http服務的80端口是沒有處於監聽狀態的。

    接下來,咱們啓動httpd服務:

[root@Shining ~]# systemctl start httpd

此時,在瀏覽器中輸入localhost會出現Apache的歡迎頁面(此處使用CentOS 6.8演示,Cent OS 7效果相同):

捕獲.PNG

MySQL

    CentOS 7默認安裝了MariaDB,若是機子上沒有安裝數據庫軟件的話,可使用下面的方式安裝:

[root@Shining ~]# yum install mysql

安裝完以後開啓MySQL服務:

[root@Shining ~]# systemctl start mariadb
[root@Shining ~]# ss -tl
State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
LISTEN     0      50         *:mysql                    *:*                    
LISTEN     0      5      192.168.122.1:domain                   *:*                    
LISTEN     0      128        *:ssh                      *:*                    
LISTEN     0      128    127.0.0.1:ipp                      *:*                    
LISTEN     0      100    127.0.0.1:smtp                     *:*                    
LISTEN     0      128       :::http                    :::*                    
LISTEN     0      32        :::ftp                     :::*                    
LISTEN     0      128       :::ssh                     :::*                    
LISTEN     0      128      ::1:ipp                     :::*                    
LISTEN     0      100      ::1:smtp                    :::*                    
[root@Shining ~]# ss -tnl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      50           *:3306                     *:*                  
LISTEN     0      5      192.168.122.1:53                       *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      128    127.0.0.1:631                      *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128         :::80                      :::*                  
LISTEN     0      32          :::21                      :::*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      128        ::1:631                     :::*                  
LISTEN     0      100        ::1:25                      :::*

能夠看到,MySQL服務已經開啓,監聽3306端口。

進入MariaDB

[root@Shining ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.44-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

顯示數據庫

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_name            |
| mysql              |
| performance_schema |
| test               |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)

MariaDB [(none)]>

建立數據庫:

MariaDB [(none)]> create database db_name;

切換數據庫:

MariaDB [(none)]> use db_name
Database changed
MariaDB [db_name]>

建立用戶:格式爲create user '用戶名'@'容許用戶使用哪一個主機登錄' identified by '密碼'

    %意思是不限制登錄主機。

MariaDB [db_name]> create user 'username'@'%' identified by '123456';

爲用戶賦予權限:

MariaDB [db_name]> grant all privileges to 'username'@'%';

顯示用戶權限:

MariaDB [(none)]> show grants for 'username'@'%';
+---------------------------------------------------------------------------------------------------------+
| Grants for username@%                                                                                   |
+---------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'username'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT ALL PRIVILEGES ON `db_name`.`db_name` TO 'username'@'%'                                           |
+---------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

退出數據庫:

MariaDB [db_name]> exit
Bye

數據庫的準備工做完成。

接下來進行php的安裝:

[root@Shining ~]# yum install php php-mysql

安裝完成以後來到httpd服務的主目錄

[root@Shining ~]# cd /var/www/html/

編輯文件phpinfo.php

[root@localhost html]# vim phpinfo.php

內容爲:

<?php
echo phpinfo();

保存並退出。而後,打開瀏覽器,輸入主機ip/phpinfo.php就能夠看到PHP的信息:

捕獲2.PNG

接下來,下載WordPress:

網址爲https://cn.wordpress.org/wordpress-4.5.3-zh_CN.tar.gz

[root@localhost html]# wget https://cn.wordpress.org/wordpress-4.5.3-zh_CN.tar.gz

解壓,

[root@localhost html]# tar xvf wordpress-4.5.3-zh_CN.tar.gz

獲得wordpress文件夾,將文件夾裏的內容複製到/var/www/html下,其中有一個wp-config-sample.php,該文件爲wordpress的配置文件。複製爲wp-config.php便可生效。

編輯wp-config.php :

// ** MySQL 設置 - 具體信息來自您正在使用的主機 ** //
/** WordPress數據庫的名稱 */
define('DB_NAME', 'database_name_here');

/** MySQL數據庫用戶名 */
define('DB_USER', 'username_here');

/** MySQL數據庫密碼 */
define('DB_PASSWORD', 'password_here');

/** MySQL主機 */
define('DB_HOST', 'localhost');

/** 建立數據表時默認的文字編碼 */
define('DB_CHARSET', 'utf8');

/** 數據庫整理類型。如不肯定請勿更改 */
define('DB_COLLATE', '');

將文件裏的database_name_here,username_here,password_here,localhost,分別改爲數據庫名稱,數據庫用戶名,數據庫密碼,數據庫主機。保存退出便會生效。

接下來,在瀏覽器中輸入wordpress主機地址,便可訪問wordpress:

捕獲3.PNG

這是提示用戶輸入數據庫信息的頁面,若是用戶沒有配置過wp-config.php文件,便會出現此頁面。

捕獲4.PNG

在這裏輸入數據庫信息,提交;

blob.png

歡迎頁面,輸入標題,用戶名,密碼等信息。點擊安裝WordPress。

blob.png
blob.png

接下來進行Nginx的安裝與配置。

首先,php須要安裝一個php-fpm軟件:

[root@localhost wordpress]# yum install php-fpm

啓動php-fpm:

[root@localhost wordpress]# service php-fpm start

安裝Nginx:

[root@localhost yum.repos.d]# yum install nginx

配置Nginx配置文件/etc/nginx/nginx.conf

[root@Shining /var/www/html]# vim /etc/nginx/nginx.conf

添加或修改如下內容:

server {
        listen       80; 
        server_name  172.16.253.159;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / { 
            root   /var/www/html;
            index  index.html index.htm index.php;
        }   
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /var/www/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
     }

重啓Nginx,重啓php-fpm

[root@localhost yum.repos.d]# service nginx restart
Stopping nginx:                                            [FAILED]
Starting nginx:                                            [  OK  ]
[root@localhost yum.repos.d]# service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]

注意,在啓動Nginx以前要關閉httpd服務,由於二者都使用80端口,會形成衝突。

訪問網站:

blob.png

注意,若是未啓動php-fpm服務,則會出現如下錯誤:

blob.png

總結:

本次實驗採用yum安裝,全部技術水平較低。實驗過程當中屢次出現問題,好在都解決了。

下面是出現的一些問題。

一、yum源問題。CentOS自帶的yum裏沒有Nginx,本身添加了repo文件。可是執行了一次yum clean all,yum makecache。問題便出現了,緣由是有一個源指向cdrom,可是找不到,我掛載cdrom,仍然出問題。而後檢查了autofs服務,正常。後來才發現是鏡像文件壞掉了……

二、Apache和Nginx區別。開始實驗時,我在Apache和Nginx之間搖擺,也不知道這兩個的區別,因而就都試了一遍。Apache很簡單,安裝好啓動服務就能夠用了。可是Nginx還須要配置,我在這裏卡住很久。由於是yum安裝,全部配置文件的路徑跟網上的教程講的有所不一樣,又花了很長時間找配置文件。而後又花了很長時間去配置。最後因爲沒有啓動php-fpm,致使出錯。結果有花了好長時間才找到這個讓人抓狂的錯誤緣由。

三、MySQL的問題。一開始忘了命令。又回去看視頻學習。結果第一次添加用戶沒有添加成功。致使wordpress一直報錯。第二次,wordpress由報錯,重啓後再也不報錯。緣由如今仍然不知道。

四、編寫博客時電腦出了問題,重啓以後丟了一半的內容(哭瞎了)。之後必定邊寫邊保存!

原創文章,做者:wangshuai,如若轉載,請註明出處:http://www.178linux.com/60558

相關文章
相關標籤/搜索