图书目录

目    录

第1章  互联网“打工人”的LAMP 1

1.1  Linux的安装使用 1

1.1.1  获取安装介质 2

1.1.2  标准安装 4

1.1.3  网络安装 12

1.1.4  通过Kickstart和PXE自动安装Linux 14

1.1.5  登录Linux 24

1.1.6  远程登录Linux 27

1.1.7  几个简单操作 36

1.2  Apache的安装使用 40

1.2.1  安装Apache 40

1.2.2  Apache的启动和运行 43

1.2.3  Apache的几个重要模块介绍 45

1.2.4  httpd.conf文件 49

1.2.5  Apache虚拟主机 58

1.2.6  认证、授权 67

1.2.7  访问控制 75

1.3  MySQL的安装和使用 78

1.3.1  安装MySQL 79

1.3.2  管理MySQL服务 85

1.3.3  配置MySQL 89

1.3.4  数据库管理常用操作 90

1.3.5  数据表管理常用操作 92

1.3.6  数据管理常用操作 97

1.4  PHP的安装和使用 103

1.4.1  安装PHP 103

1.4.2  配置PHP-FPM 105

1.4.3  PHP开发工具 107

1.4.4  PHP语法速览 108

1.5  mysqli 118

1.5.1  安装mysqli 118

1.5.2  连接及断开数据库 122

1.5.3  查询数据 123

1.5.4  插入数据 129

1.5.5  更新数据 134

1.5.6  删除数据 135

1.6  PDO 135

1.6.1  PDO及常用方法 135

1.6.2  查询数据 137

1.6.3  插入数据 141

1.6.4  更新数据 143

1.6.5  删除数据 143

第2章  使用WordPress搭建自己的博客站点 145

2.1  准备环境 145

2.1.1  系统环境 145

2.1.2  准备Apache服务器 146

2.1.3  准备MySQL服务器 147

2.2  系统安装 147

2.2.1  下载WordPress软件 148

2.2.2  创建WordPress数据库 148

2.2.3  安装WordPress 148

2.2.4  发布新文章 153

第3章  深入Linux 155

3.1  认识与学习Shell 155

3.1.1  Shell及其类型 155

3.1.2  命令别名与历史命令 157

3.1.3  重定向 158

3.1.4  管道 161

3.1.5  Shell脚本 162

3.2  文件与目录管理 164

3.2.1  文件及类型 164

3.2.2  文件和目录管理 167

3.2.3  文件搜索 169

3.3  磁盘与文件系统管理 170

3.3.1  磁盘分区 170

3.3.2  创建文件系统 173

3.3.3  挂载文件系统 174

3.3.4  自动挂载 175

3.3.5  检查文件系统 175

第4章  深入MySQL数据库 176

4.1  常用内置函数 176

4.1.1  字符串函数 177

4.1.2  日期和时间函数 178

4.1.3  数学函数 181

4.1.4  JSON函数 181

4.2  存储引擎 191

4.2.1  存储引擎 191

4.2.2  MyISAM 192

4.2.3  InnoDB 193

4.2.4  MEMORY 194

4.2.5  MERGE 194

4.3  字符集 196

4.3.1  MySQL支持的字符集 196

4.3.2  服务器字符集和排序规则 199

4.3.3  数据库字符集和排序规则 200

4.3.4  表字符集和排序规则 201

4.3.5  列字符集和排序规则 202

4.3.6  字符串的字符集和排序规则 202

4.3.7  连接字符集和排序规则 203

4.3.8  字符集和排序规则的优先级 204

4.4  索引 204

4.4.1  普通索引 204

4.4.2  唯一索引 207

4.4.3  全文索引 207

4.4.4  不可见索引 211

4.4.5  倒序索引 213

4.5  视图 213

4.5.1  创建视图 214

4.5.2  查看视图 215

4.5.3  修改视图 217

4.5.4  删除视图 218

4.6  锁和事务 218

4.6.1  MySQL的锁 218

4.6.2  MyISAM的锁 219

4.6.3  InnoDB的锁 220

4.6.4  事务 223

4.7  MySQL权限管理 224

4.7.1  用户和角色 224

4.7.2  创建用户 227

4.7.3  修改用户 229

4.7.4  删除用户 230

4.7.5  查看用户权限 230

4.7.6  授予用户权限 231

4.7.7  收回用户权限 234

第5章  深入PHP编程 235

5.1  条件语句 235

5.1.1  if语句 235

5.1.2  if…else语句 236

5.1.3  if...elseif....else语句 237

5.1.4  switch语句 238

5.2  循环语句 239

5.2.1  while循环语句 239

5.2.2  do…while循环语句 240

5.2.3  for循环语句 241

5.2.4  foreach循环语句 242

5.3  跳转语句 242

5.3.1  break语句 242

5.3.2  continue语句 243

5.4  PHP数组 244

5.4.1  定义数组 244

5.4.2  索引数组 245

5.4.3  关联数组 247

5.4.4  多维数组 249

5.5  PHP函数 250

5.5.1  定义和调用函数 250

5.5.2  传递参数 251

5.5.3  返回值 253

5.5.4  变量函数 254

5.6  面向对象程序设计 255

5.6.1  类的定义 255

5.6.2  创建对象 257

5.6.3  构造函数 258

5.6.4  析构函数 259

5.6.5  继承 260

5.6.6  覆盖 261

5.6.7  访问控制 263

第6章  SSL让网站更安全 265

6.1  什么是SSL 265

6.1.1  对称加密和非对称加密 265

6.1.2  SSL与TLS 267

6.1.3  数字证书 268

6.1.4  HTTP与HTTPS 272

6.2  SSL证书申请 273

6.2.1  商业SSL证书申请 274

6.2.2  免费证书申请 278

6.2.3  自签名证书 278

6.3  Apache服务器配置SSL证书 280

6.3.1  准备证书 281

6.3.2  mod_ssl模块 281

6.3.3  安装证书 281

6.3.4  运行测试 284

6.4  Nginx服务器配置SSL证书 285

6.4.1  准备证书 285

6.4.2  配置证书 285

第7章  LAMP安全管理 287

7.1  Linux安全管理 287

7.1.1  安全登录 288

7.1.2  用户安全 296

7.1.3  日志管理 297

7.1.4  安全审计 302

7.1.5  文件系统的安全 305

7.1.6  系统资源控制 308

7.1.7  防火墙 309

7.2  Apache安全管理 310

7.2.1  指定Apache运行用户 310

7.2.2  目录权限设置 311

7.2.3  隐藏服务器的相关信息 314

7.2.4  日志管理 316

7.3  MySQL安全管理 318

7.3.1  mysql_secure_installation 319

7.3.2  权限安全 320

7.3.3  启用SSL 321

7.4  PHP安全管理 326

7.4.1  禁用不必要的模块 326

7.4.2  限制PHP信息泄漏 327

7.4.3  将PHP错误记入日志 329

7.4.4  禁用危险的PHP函数 329

第8章  计划任务和作业调度 331

8.1  计划任务 331

8.1.1  at命令 331

8.1.2  batch命令 335

8.1.3  Cron 335

8.1.4  Anacron 339

8.1.5  使用Cron实现网站备份 340

8.1.6  日志切割 344

8.2  作业调度 350

8.2.1  准备测试程序 350

8.2.2  将作业暂停后放入后台 351

8.2.3  查看后台作业 351

8.2.4  继续执行后台作业 352

8.2.5  将作业放在后台执行 352

8.2.6  将作业移到前台 352

8.2.7  终止前台作业 353

8.2.8  终止后台作业 353

第9章  Nginx入门 355

9.1  安装Nginx 355

9.1.1  准备安装环境 355

9.1.2  编译和安装Nginx 357

9.1.3  通过软件包管理工具安装Nginx 360

9.2  Nginx目录与配置文件 361

9.2.1  Nginx目录结构及其说明 362

9.2.2  Nginx的配置文件简介 363

9.3  配置虚拟主机 371

9.3.1  配置基于域名的虚拟主机 371

9.3.2  配置基于IP的虚拟主机 375

9.3.3  配置基于端口的虚拟主机 377

9.4  Nginx性能优化 377

9.4.1  隐藏Nginx版本 377

9.4.2  优化CPU支持 379

9.4.3  事件处理模型 379

9.4.4  开启高效传输模式 380

9.4.5  连接超时时间 380

9.4.6  配置GZIP压缩 381

9.4.7  优化缓存配置 383

9.5  集成PHP 385

9.5.1  安装PHP-FPM 385

9.5.2  集成Nginx和PHP 386

9.5.3  集成测试 388

第10章  深入Nginx 390

10.1  Nginx负载均衡 390

10.1.1  Nginx负载均衡简介 390

10.1.2  轮询模式负载均衡 392

10.1.3  权重模式负载均衡 394

10.1.4  IP地址哈希模式负载均衡 395

10.1.5  least_conn模式负载均衡 396

10.2  Nginx反向代理 396

10.2.1  反向代理的原理 396

10.2.2  反向代理模块 398

10.2.3  常规反向代理 400

10.2.4  基于虚拟目录的反向代理 401

10.2.5  基于媒体类型的反向代理 406

10.2.6  基于upstream的反向代理 407

10.2.7  基于stream的反向代理 407

第11章  LAMP和LNMP性能监控 408

11.1  Linux常用监控命令 408

11.1.1  top命令 409

11.1.2  vmstat命令 412

11.1.3  tcpdump命令 414

11.1.4  netstat命令 417

11.1.5  htop命令 419

11.1.6  iotop命令 420

11.1.7  iptraf命令 421

11.1.8  iftop命令 422

11.1.9  lsof命令 423

11.2  Apache常用监控方法 426

11.2.1  mod_status模块 426

11.2.2  apachetop 428

11.3  MySQL常用监控方法 429

11.3.1  mytop命令 429

11.3.2  innotop命令 430

11.3.3  通过information_schema数据库查询MySQL的状态 431

11.3.4  通过SHOW命令查询MySQL的状态 435

11.4  Nginx常用监控方法 436

11.4.1  stub_status_module模块 437

11.4.2  netstat命令 437

11.5  PHP-FPM常用监控方法 438

11.5.1  PHP-FPM状态页 438

11.5.2  netstat命令监控PHP-FPM 442

第12章  Zabbix全方位监控服务 443

12.1  Zabbix简介 443

12.1.1  什么是Zabbix 443

12.1.2  Zabbix的组件 444

12.2  安装Zabbix 445

12.2.1  准备环境 445

12.2.2  安装Zabbix 445

12.3  配置Zabbix监控服务 450

12.3.1  监控Linux系统 450

12.3.2  监控Apache服务器 456

12.3.3  监控MySQL服务器 460

12.3.4  监控Nginx服务器 461