第一篇博客:新生儿

非常高兴能记录这个网站的诞生过程。文章还算细,涵盖了坑和命令行,如果你会了,那就跳过吧!

原文点击这里:http://www.zengxianhua.com/2016/02/11/di-yi-pian-bo-ke-xin-sheng-er

==第一个坑==,理解Linux系统的分类,基本上分两大类:

  • RedHat系列:Redhat、Centos、Fedora等
  • Debian系列:Debian、Ubuntu等

命令工具包是不一样的,具体如下:

RedHat 系列:

  • 常见的安装包格式 rpm 包,安装rpm包的命令是 “rpm -参数”
  • 包管理工具 yum
  • 支持tar包

Debian系列:

  • 常见的安装包格式 deb 包,安装deb包的命令是 “dpkg -参数”
  • 包管理工具 apt-get
  • 支持tar包

选择你熟悉的包管理工具的服务器吧!

1.购买服务器

嗯!我购买的是 阿里云 的Centos系列服务器,以下教程都围绕着 yum 包管理工具开展,按各自所需购买吧!

2.购买域名

域名很重要,好记或不好记?比如我这个网站是 zengxianhua.com ,是我朋友的应该会觉得好记。
Godaddy 是全球最大的域名供应商,让你的毛爷爷飞一会。
接下来就是把域名和服务器绑定起来,直白一点,域名解析指定服务器 IP地址 ,拿出你的探索能力 Do 她。

3.配置服务器

由于我使用的是 Mac OS X,有一些工具命名用词可能会不一样,首先登入服务器。
启动终端 Terminal

输入命令行:

ssh root@你的IP地址

回车,等待你输入服务器密码

B21B0BCA-4AF3-496A-85E8-42EBA2C26CB9.jpg

输入密码后,出现如下图,说明连接服务器成功了。

8FD84F64-00BA-4347-B0CF-DDDA6950B408.jpg

安装一些必备的环境,直接用 yum 包管理工具安装就可以了。

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5* krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers  pcre pcre-devel GeoIP GeoIP-devel GeoIP-data patch

没错,一组命令 就是这么长,不要纠结排版。

耐心等待..................

3.1 安装Nginx

创建必要的 目录,用于放各种下载包

make /home/softsrc

安装 Nginx 所需的 pcre库:

cd /home/softsrc      强迫症开始了
wget http://sourceforge.net/projects/pcre/files/pcre/8.33/pcre-8.33.tar.gz/download
tar zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure
make && make install

开始安装 Nginx

cd /home/softsrc      强迫症
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
vi auto/cc/gcc
#CFLAGS="$CFLAGS -g"   将这行代码注释掉,取消Debug编译模式。大概在179行左右

我们再配置下 Nginx 编译参数

./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module

make && make install

添加 开机自启动

vi /etc/rc.local
在最后一行插入以下代码
/usr/local/webserver/nginx/sbin/nginx
3.2 安装MySQL

下载 MySQL

cd /home/softsrc      强迫症
wget wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz
tar -zxvf mysql-5.6.13.tar.gz
cd mysql-5.6.13

安装 cmake 软件包

yum install cmake

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_DATADIR=/media/raid10/mysql/3306/data/ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR==/media/raid10/mysql/3306/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

我们配置下 MySQL 的编译参数,一般配置下安装路径就可以了,如你有特殊配置也可以在安装之后修改参数,这里你大可以泡杯茶,编译需要较长的时间。

make
make install clean

添加 MySQL 用户

useradd mysql
cd /usr/local/webserver/mysql/scripts
chown -R mysql.mysql /usr/local/webserver/mysql

安装 数据库

cd /usr/local/webserver/mysql/scripts

./mysql_install_db  --basedir=/usr/local/webserver/mysql --datadir=/media/raid10/mysql/3306/data --user=mysql

创建 my.cnf 配置文件

cd /usr/local/webserver/mysql/support-files

cp mysql.server /etc/rc.d/init.d/mysql
cp my-default.cnf /etc/my.cnf

复制 MySQL 管理脚本

cp mysql.server /etc/rc.d/init.d/mysql

复制 MySQL 配置文件

cp my-default.cnf /etc/my.cnf

添加 MySQL 服务

chkconfig --add mysql

加入 开机启动策略

chkconfig mysql on

service mysql start

通过以下命令 登录管理 MySQL 服务器(提示输入密码直接回车,这是用 root 登录的)

/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock 
如果没有设置密码,密码留空,直接回车。
如果设置了密码,先输入密码,然后回车。

输入以下 MySQL 语句,用于创建一个具有 root 权限的用户,用户名是 admin,密码是 12345678

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678' WITH GRANT OPTION;

flush privileges;

创建账号成功后,方便使用和登录。

3.3 安装Node.js

检查买回来的服务器是否默认安装了 Apache,这个是不需要的,为了怕引起冲突,我们必须卸载它。

yum -y remove httpd

检查一下 Python 的版本,一般默认是 2.4.3 版本的。

python -V
python 2.4.3

这个版本的 Python 偏低,没有办法安装 Node.js,所以我们需要升级。

cd /home/softsrc     强迫症
wget -c http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar jxvf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure
make && make install

安装完毕了,这个时候实际不起作用的,所以要用新版本替换旧版本成为默认。

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python2.7 /usr/bin/python

再次检查是否已经升级成功。

python -V

这个时候 Python 已经升级成功了,但是yum还是需要旧版本的才可以正常运行,如果我们调试升级整个 yum 没必要,所以只需要修改 yum 的配置文件就可以了。

vi /usr/bin/yum

修改第一行

#!/usr/bin/python 修改为 #!/usr/bin/python2.4

然后 esc ,再 :wq 保存退出就可以了。

终于到 Node.js 了。

cd /home/softsrc     强迫症
wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
tar zxvf node-v0.10.24.tar.gz
cd node-v0.10.24
./configure
make && make install

用一下命令行查看安装是否成功。

node -v
npm -v

看到如下截图,恭喜你!

4B05BDF1-A11B-4AF1-AD1C-5382D2E7C775.jpg

4.安装Ghost

确保你已经把 Node.js 安装好了

cd /home/softsrc      强迫症
wget --no-check-certificate https://ghost.org/zip/ghost-latest.zip
unzip ghost*.zip -d ghost
cd ghost
npm install --production  等待N长时间之后

先不要急着 npm start ,继续撸。

5.配置 Ghost 域名

使用 Nginx 作为你的 Web 服务器

配置你的站点

先创建 sites-availablesites-enabled 目录

cd /usr/local/webserver/nginx
mkdir sites-available
mkdir sites-enabled

/sites-available/ 目录下创建一个 ghost.conf 文件,使用文本编辑器打开这个文件

cd sites-available
touch ghost.conf
vi ghost.conf

把以下内容复制进这个文件

server {
   listen 80;
   server_name example.com;

   location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
   }
}

server_name 的值改为 你的域名

把你的配置文件软链接到 sites-enabled 文件夹下:

cd ..
sudo ln -s sites-available/ghost.conf sites-enabled/ghost.conf
/usr/local/webserver/nginx/sbin/nginx -s reload

在浏览器输入 你的域名 就可以看到属于你的Ghost博客了,你也来写你的第一篇博客吧!

Q&A

==第二个坑==,npm install --production 过程中,有可能失败,被墙?用咱国人提供的完整的安装,你就不用烦啦!-_- 吻我

==第三个坑==,当你的终端 Terminal 关闭后,Ghost也会随之关闭,然后你的博客就无法访问了,那怎么办?
如何让 Ghost 一直运行呢?
有两种解决方案,Forever 比较简单,另外一种请自行搜索吧!

  • Supervisor
  • Forever
  • 通过 npm install forever -g 安装 forever
  • 为了让 forever 从 Ghost 安装目录运行,输入 NODE_ENV=production forever start index.js
  • 通过 forever stop index.js 停止 Ghost
  • 通过 forever list 检查 Ghost 当前是否正在运行

下一期:创业初期如何简省成本

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容