CentOS7上基於LAMP搭建typecho博客

LAMP環境的搭建

LAMP = Linux + Apache + MySQL + PHP

這裏Linux選擇的是CentOS7 64位,使用KVM虛擬機安裝的CentOS7進行演示, 安裝過程使用yum, yum源是安裝好CentOS7之後自帶的,也可以選擇epel源,163源等,在安裝MySQL時需要先安裝MySQL源(後面會說到),過程中需要聯網安裝並且需要root權限。準備好這些,主要的就是後三者的安裝和使用了。[root@centos7 ~]# systemctl enable httpd

安裝Apache的httpd服務

  • 安裝httpd
[root@centos7 ~]# yum install httpd
  • 啓動httpd服務
[roo@centos7 ~]# systemctl start httpd
  • 查看httpd服務狀態
[root@centos7 ~]# systemctl status httpd

看到 Active: active (running) 說明httpd服務已經起來了

  • 讓httpd服務開機啓動
[root@centos7 ~]# systemctl enable httpd
這樣當服務器主機重啓之後httpd服務會自動開啓

這裏稍作解釋,可以看到上面三個命令都是systemctl命令,systemctl命令是系統服務管理器指令,從centos7開始使用,它實際上將 servicechkconfig 這兩個命令組合到一起。所以本文特別強調是基於centos7,但是對centos6系統上的操作也具有一定的參考價值,因爲只要對命令稍作修改就可以了,思路是一樣的。

好了,httpd服務開啓意味着我們應該可以通過訪問主機IP或者解析到該IP的域名來訪問Apache提供的測試頁面了,但是彆着急,還有一座大山等着我們,那就是防火牆。

  • 查看防火牆狀態,在CentOS7上,防火牆的服務叫firewalld.service,在使用時可以不加“.service”, httpd也是同樣的道理。
[root@centos7 ~]# systemctl status firewalld.service

同樣看到Active: active (running) 說明防火牆是開啓的,而Active: inactive (dead) 則表明防火牆處於關閉狀態,一般情況下,建議防火牆是開着的,因爲對於服務器來說,防火牆對防止外來攻擊起到了不可忽視的作用,但是這裏防火牆會阻擋http訪問,下面提供解決方案。

  • 一、給防火牆增加規則來放行http以及https(爲以後做準備)
[root@centos7 ~]# firewall-cmd --permanent --add-service=http
[root@centos7 ~]# firewall-cmd --permanent --add-service=https

添加成功後會看到success的提示。注意,一定要加–permanent選項,這樣這條規則會在防火牆重啓之後依然生效。

  • 二、那就是簡單粗暴的關閉防火牆服務(*不建議)
[root@centos7 ~]# systemctl stop firewalld.service

解決了防火牆的問題就可以試着訪問一下了。如果不出意外的話應該看到這個界面:

apache_test

默認的網站根目錄爲/var/www/html/ ,也可以編寫一個簡單的index.html放在該目錄下,並試着訪問ip。

[root@centos7 ~]# cd /var/www/html/
[root@centos7 html]# ls
[root@centos7 html]# vim index.html
<h1>httpd test!!!</h1>
[root@centos7 html]# systemctl restart httpd

訪問IP:

index_html

到此爲止,Apache算是搞定了。

安裝和配置MySQL

這裏選擇安裝MySQL5.7,也可以到官網下載最新或者選擇合適的版本。

  • 下載MySQL源rpm安裝包
[root@centos7 ~]# cd
[root@centos7 ~]# mkdir mysql
[root@centos7 ~]# cd mysql/
[root@centos7 mysql]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
  • 安裝MySQL源
[root@centos7 mysql]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm

或者執行

[root@centos7 mysql]# yum localinstall mysql57-community-release-el7-8.noarch.rpm
  • 檢查MySQL源是否安裝成功
[root@centos7 mysql]# yum repolist enabled |grep mysql

如下圖所示表明安裝成功

apache_repo

  • 安裝mysql-community-server
[root@centos7 ~]# yum install mysql-community-server
  • 啓動mysqld服務
[root@centos7 ~]# systemctl start mysqld

第一次啓動時間可能比較長,一定要耐心等待。

  • 檢查mysqld服務是否啓動
[root@centos7 ~]# systemctl status mysqld

相信你已經會判斷服務是否啓動了。

  • mysqld開機啓動
[root@centos7 ~]# systemctl enable mysqld
  • 修改root本地登錄密碼

mysql安裝完成之後,在/var/log/mysqld.log文件中給root生成了一個默認密碼。

通過下面的方式找到root默認密碼,然後登錄mysql進行修改:

[root@centos7 ~]# grep 'temporary password' /var/log/mysqld.log

mysql_root_tempPasswd

[root@centos7 ~]# mysql -uroot -p
mysql> ALTER USER root@localhost IDENTIFIED BY 'Test123.';
或者
mysql> set password for 'root'@'localhost'=password('Test123.'); 

注意:mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤。

既然要搭建博客,那博客的一些數據就要存在數據庫中,在typecho搭建時需要指定數據庫和數據庫用戶,所以接下來:

  • 爲typecho創建一個數據庫,這裏數據庫名爲typecho。
mysql> create database typecho;
  • 創建一個普通用戶並 賦予其typecho數據庫的所有表的權限:
mysql> grant all privileges on typecho.* to typcho@localhost identified by 'Test123/';
mysql> flush privileges;
  • 檢查是否創建成功
mysql> exit
Bye
[root@centos7 ~]# mysql -utypecho -p
mysql> show databases;
mysql> exit

看到typecho數據庫那麼數據庫安裝和配置部分就已經完成了。

PHP的安裝

  • 安裝PHP, CentOS7上默認是php5.4版本
[root@centos7 ~]# yum install php
  • 安裝php的mysql驅動
[root@centos7 ~]# yum install php-mysql
  • 同時,我們還可以安裝php的其他一些常用插件,可以用yum search命令列出所有
[root@centos7 ~]# yum search php-

在這裏挑選部分安裝

[root@centos7 ~]# yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel
  • 測試PHP是否安裝成功
[root@centos7 ~]# cd /var/www/html/
[root@centos7 html]# vim info.php
<?php
phpinfo();
?>
[root@centos7 html]# systemctl restart httpd

瀏覽器訪問http://192.168.122.10/info.php

phpinfo

如圖則表示PHP安裝成功。

至此,整個LAMP框架已經搭建好了,最後一步就是typecho的安裝了

typecho的安裝

  • typecho官網下載複製下載鏈接,使用wget下載到服務器。
[root@centos7 ~]# mkdir typecho
[root@centos7 ~]# cd typecho/
[root@centos7 typecho]# wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
[root@centos7 typecho]# ls
1.1-17.10.30-release.tar.gz
  • 解壓
[root@centos7 typecho]# tar -xzvf 1.1-17.10.30-release.tar.gz
[root@centos7 typecho]# ls
1.1-17.10.30-release.tar.gz  build
  • 完之後有一個build目錄,將該目錄下所有文件拷貝到網站根目錄/var/www/html/,之前先刪除或網站根目錄下的兩個測試文件
[root@centos7 ~]# cd /var/www/html/
[root@centos7 html]# ls
index.html  info.php   
[root@centos7 html]# mv index.html index.html.bak
[root@centos7 html]# mv info.php info.php.bak
[root@centos7 html]# cd
[root@centos7 ~]# cd typecho/
[root@centos7 typecho]# cp -R build/* /var/www/html/

然後就可以訪問網站IP了

typecho

接下來就是可視化的安裝了,下面是截圖:

typecho1

typecho2

typecho3

點擊確認,開始安裝,這裏可能需要手動創建config.inc.php,把提供的複製粘貼就好

typecho_config

[root@centos7 ~]# cd /var/www/html/
[root@centos7 html]# ls
admin           index.php     install      LICENSE.txt  var
index.html.bak  info.php.bak  install.php  usr
[root@centos7 html]# vim config.inc.php

<?php
/**
 * Typecho Blog Platform
 *
 * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
 * @license    GNU General Public License 2.0
 * @version    $Id$
 */

/** 定義根目錄 */
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));

/** 定義插件目錄(相對路徑) */
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');

/** 定義模板目錄(相對路徑) */
define('__TYPECHO_THEME_DIR__', '/usr/themes');

/** 後臺路徑(相對路徑) */
define('__TYPECHO_ADMIN_DIR__', '/admin/');

/** 設置包含路徑 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);

/** 載入API支持 */
require_once 'Typecho/Common.php';

/** 載入Response支持 */
require_once 'Typecho/Response.php';

/** 載入配置支持 */
require_once 'Typecho/Config.php';

/** 載入異常支持 */
require_once 'Typecho/Exception.php';

/** 載入插件支持 */
require_once 'Typecho/Plugin.php';

/** 載入國際化支持 */
require_once 'Typecho/I18n.php';

/** 載入數據庫支持 */
require_once 'Typecho/Db.php';

/** 載入路由器支持 */
require_once 'Typecho/Router.php';

/** 程序初始化 */
Typecho_Common::init();

/** 定義數據庫參數 */
$db = new Typecho_Db('Mysql', 'typecho_');
$db->addServer(array (
  'host' => 'localhost',
  'user' => 'typecho',
  'password' => 'Test123/',
  'charset' => 'utf8',
  'port' => '3306',
  'database' => 'typecho',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

typecho_success

至此,typecho安裝成功!!! 盡情享用吧!

blog

typecho_blog

後臺

typecho_manage

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章