第一篇博客:新生儿

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

第一个坑,理解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地址

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

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

安装一些必备的环境,直接用 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
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.6

然后 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

看到如下截图,恭喜你!

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 当前是否正在运行

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

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

曾宪华

阿里无线技术专家、业余产品经理,我的微信:15915895880

Guangzhou「廣州」 https://github.com/xhzengAIB