CentOS 7 yum安裝LAMP,LNMP并搭建WordPress個人博客網站

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

[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是最強大的網站解決方案。

Linux

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

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

Apache  

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

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

MySQL

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

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

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

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安裝,所有技術水平較低。實驗過程中多次出現問題,好在都解決了。

下面是出現的一些問題。

1、yum源問題。CentOS自帶的yum里沒有Nginx,自己添加了repo文件。但是執行了一次yum clean all,yum makecache。問題便出現了,原因是有一個源指向cdrom,但是找不到,我掛載cdrom,仍然出問題。然后檢查了autofs服務,正常。后來才發現是鏡像文件壞掉了……

2、Apache和Nginx區別。開始實驗時,我在Apache和Nginx之間搖擺,也不知道這兩個的區別,于是就都試了一遍。Apache很簡單,安裝好啟動服務就可以用了。但是Nginx還需要配置,我在這里卡住好久。因為是yum安裝,所有配置文件的路徑跟網上的教程講的有所不同,又花了很長時間找配置文件。然后又花了很長時間去配置。最后由于沒有啟動php-fpm,導致出錯。結果有花了好長時間才找到這個讓人抓狂的錯誤原因。

3、MySQL的問題。一開始忘了命令。又回去看視頻學習。結果第一次添加用戶沒有添加成功。導致wordpress一直報錯。第二次,wordpress由報錯,重啟后不再報錯。原因現在仍然不知道。

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

原創文章,作者:wangshuai,如若轉載,請注明出處:http://www.www58058.com/60558

(5)
wangshuaiwangshuai
上一篇 2016-11-24
下一篇 2016-11-24

相關推薦

  • 馬哥教育網絡班22期第四周課程練習1

    1.cp -r /etc/skel/ /home/tuser1 && chmod -R 600  /home/tuser1 2.max=`cat /etc/group |awk -F":" '{print $3}'|sort -nr| head -n1`|sed -i '$a had…

    Linux干貨 2016-09-05
  • MySQL架構

    1.MySQL整體邏輯架構 我們先下圖看看MySQL整體邏輯架構(MySQL’s Logical Architecture)                       圖1  第一層,即最上一層,所包含的服務并不是MySQL所獨有的技術?!?/p>

    Linux干貨 2015-04-13
  • fstab配置文件、swap分區,文件關聯

    fstab配置文件、swap分區,文件關聯,lvm 掛載點和/etc/fstab ? 配置文件系統體系 ? 被mount、 fsck和其它程序使用 ? 系統重啟時保留文件系統體系 ? 可以在設備欄使用文件系統卷標 ? 使用mount -a 命令掛載/etc/fstab中的所有文件…

    Linux干貨 2016-09-01
  • bash shell 循環語句的使用

    條件選擇if語句       if語句是選擇執行的,條件滿足則執行,不滿足則退出,if語句也可嵌套,就是if語句里面也可以在進行if語句 單分支 if 判斷條件;then statement1 fi   雙分支 if 判斷條件;then 條件為真得分支 else 條件為假的分支 fi   …

    Linux干貨 2016-08-18
  • 0805隨堂練習

    文本處理練習: 1.找出本機ip地址  [root@localhost ~]# ifconfig |head -2 |tail -1 |tr -s ' ' ':' |cut -d: -f3  10.1.252.221 2.查看本機分區最大的利用率  [root@localhost ~]# …

    Linux干貨 2016-08-07

評論列表(1條)

  • sheng
    sheng 2016-12-04 12:38

    7有的時候直接yum -y install mysql會提示報錯Failed to start mariadb.service: Unit mariadb.service failed to load: No such file or directory.,安裝mariadb的正確方式為 yum -y install mariadb-server

欧美性久久久久