戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

CentOS 7下安装LNMP服务器

日期:2015年8月7日 作者: 分类:运维 阅读:1,473

LNMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用。正如其名称所暗示的, LNMP 包是由 Linux、nginx、MariaDB/MySQL 和 PHP 组成的。在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案。 MariaDB 是一款社区支持驱动的 MySQL 数据库的分支,其功能更多性能更佳。PHP,服务端编程语言,具体是由 PHP FastCGI 的增强版 PHP-FPM 组件来处理,生成网页动态内容。

这篇文章里,我将示范如何在 CentOS 操作平台上安装 LNMP 包。我的安装的目标是 CentOS 7 这个操作平台。

第一步: Nginx

1. 安装 Nginx

因为在CentOS 7的默认源中没有 Nginx ,所以我们要导入Nginx官方源,官方文档原文链接:http://nginx.org/en/linux_packages.html

创建/etc/yum.repo.d/nginx.repo 文件,内容如下:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

安装:

yum install nginx 

2. 启动 Nginx

安装完成后,nginx 是不会自动启动的。现在让我们来启动它吧,还要做些配置让其可以随着操作系统启动而启动。我们也需要在防火墙里打开 TCP/80 端口,以使得可以远程访问 nginx 的 web 服务。所有这些操作、设置都只需要输入如下命令就可实现。

# 启动
systemctl start nginx

# 加入开机启动
systemctl enable nginx

# 开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 载入防火墙规则,使刚才的规则生效
firewall-cmd --reload

阅读全文…

C++学习复习笔记05 – 构造函数重载时的写法

日期:2015年8月5日 作者: 分类:编程 阅读:532

在C++类中进行构造函数重载时,有几种不同的简洁的写法。

下面先演示可读性最好的也是初学时常用的写法一:

#include <iostream>
#include <string>
using namespace std;

class Person
{
public:
    string name;
    int age;

public:
    Person()
    {
        cout << "Person()" << endl;
    }
    // 构造函数一经重写,系统默认的无参数的将不复存在,若要使用得写出来
    Person(string name, int age)
    {
        this->name = name;
        this->age = age;
        cout << "Person(string name, int age)" << endl;
    }
};

int main()
{
    Person wuxie;
    Person xiaoge("张起灵", 22);

    return 0;
}

阅读全文…

C++学习复习笔记04 – 函数重载

日期:2015年8月5日 作者: 分类:编程 阅读:489

重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。

知识要点:

1) 独立函数重载

2) 类中非构造函数重载

3) 类中构造函数重载

4) 析构函数不能重载,因为系统自动调用,无法传递参数.

 

代码示例:

#include <iostream>
#include <string>
using namespace std;

class Person
{
public:
    string name;
    int age;

public:
    /* 类中构造函数重载 */
    Person()
    {
        cout << "默认调用原始构造函数" << endl;                         
    }     
    // 构造函数一经重写,系统默认的无参数的将不复存在,若要使用得写出来     
    Person(string name, int age)     
    {         
        this->name = name;
        this->age = age;
        cout << this->name << "调用重载的构造函数" << endl;
    }

    /* 类中非构造函数重载 */
    void display()
    {
        cout << "-----> " << this->name << " : " << this->age << endl;
    }
    void display(string msg)
    {
        cout << msg << endl;
    }
};

/* 独立函数重载 */
void run()
{
    cout << "快跑!!!" << endl;
}
void run(Person p)
{
    cout << p.name << "快跑!!!" << endl;
}

int main()
{
    Person wuxie;
    wuxie.name = "吴邪";
    wuxie.age = 20;
    cout << "-----------" << endl;

    Person xiaoge("小哥", 22);
    cout << "-----------" << endl;
    cout << endl;

    run();
    cout << "-----------" << endl;
    run(wuxie);
    cout << "-----------" << endl;
    cout << endl;

    xiaoge.display();
    xiaoge.display("小哥叫闷油瓶");

    return 0;
}

阅读全文…