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開始使用,它實際上將 service 和 chkconfig 這兩個命令組合到一起。所以本文特別強調是基於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
解決了防火牆的問題就可以試着訪問一下了。如果不出意外的話應該看到這個界面:
默認的網站根目錄爲/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:
到此爲止,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
如下圖所示表明安裝成功
- 安裝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
[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
如圖則表示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了
接下來就是可視化的安裝了,下面是截圖:
點擊確認,開始安裝,這裏可能需要手動創建config.inc.php,把提供的複製粘貼就好
[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安裝成功!!! 盡情享用吧!
blog
後臺