心血来潮,想搭建一个自己的wiki站来管理平时零碎的知识点。
0、前期准备
一顿百度google,目前最流行最好用的就是MediaWiki,对应的环境的php+Apache+Mysql。
先是在本地Windows环境下搭建了下,看看效果,很满意。
接下来就是租云主机,开始搭建过程了。
我选用的是阿里云的云服务器ECS,CentOS 7.0 64位系统,最基础的配置,并且机房位于美西(硅谷),虽然延时略高200ms,但是后续我还想搭建自己的VPN进行科学上网,so~
接下来是准备工作,用到的工具有:阿里云的 云服务器管理控制台,SecureCRT,WinSCP,Navicat for MySQL
连接上服务器之后,开始配置MySQL-5.7.10、PHP-5.6.17、httpd-2.4.18
(为什么选用这些版本呢,myql5.5开始支持utf8mb4,php7安装失败了,这个是当前成功的版本- -!)
(当然安装过程也是一顿百度google,走了不少坑,主要的流程 看这里)
1、安装Apache
安装apache需要预先安装了libxml2(前置安装python)、apr、apr-util、pcer
0x01 安装python
# yum install python
# yum install python-devel
0x02 安装libxml2
# wget ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz
# tar zxvf libxml2-2.9.0.tar.gz
# cd libxml2-2.9.0
# ./configure
# make && make install
或者直接用另外的方式
# sudo yum install libxml2-devel
0x03 安装apr
# wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz
# tar zxvf apr-1.5.2.tar.gz
# cd apr-1.5.2
# ./configure
# make && make install
0x04 安装apr-util
# wget http://apache.fayea.com//apr/apr-util-1.5.4.tar.gz
# tar zxvf apr-util-1.5.4.tar.gz
# cd apr-util-1.5.4
# ./configure --with-apr=/usr/local/apr
# make && make install
0x05 安装pcre
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
# tar zxvf pcre-8.37.tar.gz
# cd pcre-8.37
# ./configure
# make && make install
0x06 安装httpd(终于到正主了~!)
# wget http://apache.fayea.com//httpd/httpd-2.4.18.tar.gz
# tar zxvf httpd-2.4.18.tar.gz
# cd httpd-2.4.18
# ./configure --prefix=/usr/local/apache24 --enable-module=so
# make && make install
编译安装完成,接下来需要配置一下才能使用,要不然会报错AH00558
# vi /usr/lcoal/apache24/conf/httpd.conf
找到ServerName,去掉前边的#号,修改为
ServerName localhost
保存退出
# cd /usr/local/apache24/bin
# ./apachectl start
浏览器访问http://ip(这里填服务器的ip地址),出现“It works!”,说明安装成功
0x07 将httpd设置为系统服务,随系统启动
这一步是非必须步骤,但是能方便使用, 教程
# cp /usr/local/apache24/bin/apachectl /etc/init.d/httpd
# cp /usr/local/apache24/bin/apachectl /usr/local/bin/httpd
# ln -s /etc/init.d/httpd /etc/rc.d/rc5.d/S61httpd
# ln -s /etc/init.d/httpd /etc/rc.d/rc4.d/S61httpd
# ln -s /etc/init.d/httpd /etc/rc.d/rc3.d/S61httpd
# vi /etc/init.d/httpd
在打开的文件的#!/bin/bash下边一行输入
#chkconfig:345 61 61
#description:Apache
保存
# chkconfig --add httpd
# chkconfig --levels 345 httpd on
# chkconfig --list
2、安装MySQL(编译好的二进制文件安装版本)
0x01 下载、解压
# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
# tar zxvf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
# mv mysql-5.7.10-linux-glibc2.5-x86_64 /usr/local/mysql -r
0x02 添加mysql组和用户
# useradd -r -g mysql mysql
# cd /usr/local/mysql
# chown -R mysql:mysql ./
0x03 配置并置为系统服务
# ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# cp -a support-files/my-default.cnf /etc/my.cnf
# cp -a support-files/mysql.server /tc/init.d/mysql
# cd bin/
# ./mysqld_safe --user=mysql &
0x04 查看是否安装成功
# server mysql restart
Shutting down MySQL... [ OK ]
Starting MySQL... [ OK ]
0x05 设置开机启动
# chkconfig --level 345 mysql on
0x06 修改root密码
MySQL-5.7安装完成会自动生成一个随机密码在/etc/.mysql_secret中
# cat /root/.mysql_secret
xxxx
复制下这个初始密码
# cd /usr/local/mysql/bin
# ./mysql -uroot -p
Enter password:
输入刚才的默认密码,进入到myql控制台
mysql> set password=password('新密码');
mysql> flush privilegges
0x07 设置远程链接mysql
默认root只能本地访问,需要设置授权
mysql> use mysql
mysql> grant all privileges on *.* to 'root'@'%' identified by '你的密码' with grant option;
mysql> select * from user;
3、安装php-5.6.17
没安装php7的原因是安装过程中出现了错误没搞定
0x01 下载安装
# wget http://php.net/get/php-5.6.17.tar.gz/from/this/mirror
# mv mirror php-5.6.17.tar.gz
# tar zxvf php-5.6.17.tar.gz
# cd php-5.6.17
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache24/bin/apxs --with-mysql=/usr/local/mysql
# make && make test
# make install
# cp php.ini-development /usr/local/php/lib/php.ini
如果configure出现错误:Cannot find libmysqlclient_r under /usr/local/mysql.执行以下语句
# cd /usr/local/mysql/lib
# ln -s libmysqlclient.so libmysqlclient_r.so
0x02 配置apache
# vi /usr/local/apache24/conf/httpd.conf
a) 在#AddType application/x-tar.tgz下边加一行
AddType application/x-httpd-php .php
b) 在#LoadModule foo_module modules/mod_foo.so这一块加上一行
LoadModule php5_module modules/libphp5.so
如果有就不用加了,否则会报错AH01574:module php5_module is already loaded
c) 在DirectoryIndex index.html 后边增加
index.php
d) 记住
DocumentRoot的值,就是apapche的资源地址
保存
# service httpd stop
# service httpd start
0x03 测试
在
DocumentRoot对应路径下加一个测试页面index.php,内容可以写
浏览器访问,能正常看到php的信息,表示安装配置成功!
4、安装MediaWiki
0x01 下载
# wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.2.tar.gz
# tar zxvf mediawiki-1.26.2.tar.gz
# mv mediawiki-1.26.2 /usr/local/apache24/htdocs/wiki
# chown -R root:root /usr/local/apache24/htdocs/wiki
0x02 安装
使用浏览器访问http://ip/wiki/index.php开始安装,安装步骤操作
到最后一步会让下载一个配置文件LocalSettings.php,下载后放在/usr/local/apache24/htdocs/wiki目录下
如果安装过程中止了又重新进页面,一定要强刷下页面(Shitf+F5)
0x03 使用
浏览器访问http://ip/wiki/index.php,就能进入到wiki首页了
5、apache配置域名访问
万网买了一个域名,example.com,配置到上边的主机,并且也给wiki配置单独的域名
即要实现
www.example.com和example.com访问/usr/local/apache24/htdocs/www下的资源
wiki.example.com访问/usr/local/apache24/htdocs/wiki下的资源
0x01 域名设置
a\ 阿里云后台-云解析,对应域名下,新手指导配置服务器ip,保存
过1分钟浏览器访问www.example.com,能正常展示“It works!”
b\阿里云后台-云解析,对应域名下,添加解析
类型:
A,主机记录:
wiki,记录值:
主机对应的ip
保存
0x02 修改apache配置
a\ 打开/usr/local/apache24/conf/httpd.conf
找到下边的话并去掉前边#号
Include conf/extra/httpd-vhosts.conf
b\打开/usr/local/apache24/conf/extra/httpd-vhosts.conf
修改VirtualHost如下
DocumentRoot "/usr/local/apache24/htdocs/www"
ServerName www.example.com
ServerAlias example.com
ErrorLog "logs/www.example.com.error_log"
CustomLog "logs/www.example.com.access_log" common
DocumentRoot "/usr/local/apache24/htdocs/wiki"
ServerName wiki.example.com
ErrorLog "logs/wiki.example.com.error_log"
CustomLog "logs/wiki.example.com.com-access_log" common
保存
0x03 添加测试文件
在/usr/local/apache24/htdocs下新建www文件夹,并新建文件index.html
# cd /usr/local/apache24/htdocs
# mkdir www
# cd www
# echo 'hello~this is www.example.com' >> index.html
0x04 测试
浏览器访问http://www.example.com和http://example.com
都能正常显示“hello~this is www.example.com”
但是访问http://wiki.example.com提示404,需要配置下MediaWiki
0x05 配置MediaWiki
打开/usr/local/apache24/htdocs/wiki/LocalSettings.php
$
wgScriptPath: 如果wiki域名配置到wiki了,这里可以配成
$wgScriptPath = "";
注意: 引号里边单斜线都不要有
$wgServer = "http://wiki.example.com";
保存
0x06 测试
浏览器访问http://wiki.example.com,正常显示wiki首页
到此就配置好了不同域名访问MediaWiki的过程。
附一个内存不够的解决方案:
由于我的云主机只有1G的内存,跑一会之后就报virtual memory exhausted: Cannot allocate memory
解决方法