1.更新系统
yum  update

2.关闭防火墙

systemctl  stop  firewalld.service
systemctl  disable  firewalld.service

3.安装apache---httpd
yum  install  httpd

4.重启httpd
systemctl  restart  httpd.service

5.安装Php
yum  install  php
重启apache  
systemctl  restart  httpd.service

6.项目的目录/var/www/html
cd    /var/www/html  进入目录

ll---查看详细内容
ls---查看概括内容

vi  index.php 新建文件夹    
I键

esc  
:(shift+;)
:wq/保存并推出,:q直接推出

7.安装mysql    =---  mariadb
yum  -y  install  mariadb  mariadb-server
---安装
systemctl  restart  mariadb.service---重启服务

mysql  -uroot  -p  
密码是空/直接按enter

查询sql语句:select  HOST,USER  from  mysql.user

update  mysql.user  set  HOST='%'  where  HOST='localhost'  and  user='root'

flush  privileges;---刷新权限
exit;退出

8.安装php扩展  yum  install  php-mysql  php-gd  libjpeg*  php-ldap  php-odbc  php-pear  php-xml  php-xmlrpc  php-mbstring  php-bcmath  php-mhash

9.create  PHP  Project  from  Remote  Server
---Manage
Initial  Directory:/var/www/html

10.创建文件夹  mkdir  demo

11.Initial  Directory:/var/www/html/demo

12.给权限    chmod  -R  777  demo(文件夹)

2.经常报错

Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

解决 mariadb 在低配 VPS 上启动崩溃的问题

0xE8551CCB 关注

2016.09.19 18:30* 字数 797 阅读 341评论 0喜欢 2

引言

最近博客又抽风了,打开主页后提示 Error Establishing a Database Connection。仔细想想,应该就是数据库服务器 mariadb 挂了;以前也遇到过类似的问题。经过分析日志,并结合网上的资料最终解决了问题。

日志

以下是 mariadb 服务器挂掉时的比较关键的日志信息,从下面的日志信息中,我们可以很容易地看出由于内存不足,从而导致数据库服务器启动时崩溃。

InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
160919  2:47:12  InnoDB: Waiting for the background threads to start
160919  2:47:13 Percona XtraDB (http://www.percona.com) 5.5.46-MariaDB-37.6 started; log sequence number 352718445
160919  2:47:13 [ERROR] mysqld: Out of memory (Needed 128917504 bytes)
160919  2:47:13 [Note] Plugin 'FEEDBACK' is disabled.
160919  2:47:13 [Note] Server socket created on IP: '0.0.0.0'.
160919  2:47:13 [Note] Event Scheduler: Loaded 0 events
160919  2:47:13 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.47-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server
160919 02:47:35 mysqld_safe Number of processes running now: 0
160919 02:47:35 mysqld_safe mysqld restarted
160919  2:47:35 [Note] /usr/libexec/mysqld (mysqld 5.5.47-MariaDB) starting as process 28614 ...
160919  2:47:35 InnoDB: The InnoDB memory heap is disabled
160919  2:47:35 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160919  2:47:35 InnoDB: Compressed tables use zlib 1.2.7
160919  2:47:35 InnoDB: Using Linux native AIO
160919  2:47:35 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137756672 bytes) failed; errno 12
160919  2:47:35 InnoDB: Completed initialization of buffer pool
160919  2:47:35 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160919  2:47:35 [ERROR] Plugin 'InnoDB' init function returned error.
160919  2:47:35 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160919  2:47:35 [ERROR] mysqld: Out of memory (Needed 128917504 bytes)
160919  2:47:35 [ERROR] mysqld: Out of memory (Needed 96681984 bytes)
160919  2:47:35 [ERROR] mysqld: Out of memory (Needed 72499200 bytes)
160919  2:47:35 [Note] Plugin 'FEEDBACK' is disabled.
160919  2:47:35 [ERROR] Unknown/unsupported storage engine: InnoDB
160919  2:47:35 [ERROR] Aborting

解决

  • 在使用 free -m 查看内存信息时,发现 swap 分区大小为 0。难怪说数据库服务器无法启动呢,在内存不够用的情况下,又无法使用 swap 分区,自然崩溃了。由于 VPS 使用了 SSD,性能自然不错。下面我们给服务器系统 CentOS 7 添加 1024M 的 swap分区,采用的方法是创建一个 swap 文件:

    • 使用下面的命令创建 swapfile

      # 1048576 = 1024 * 1024
      dd if=/dev/zero of=/swapfile bs=1024 count=1048576
      
    • 使用下面的命令配置 swap 文件:

      mkswap /swapfile
      
    • 接下来,使用下面的命令立即启用 swapfile,这样就不用等到下次重启时自动启用:

      swapon /swapfile
      
    • 最后,我们在 /etc/fstab 中添加下面一行,这样可以在系统下次重启时自动生效创建的 swapfile

      /swapfile       swap    swap defaults   0 0
      
    • 使用 cat /proc/swaps 或 free -m 查看 swapfile 的生效情况,如下图所示:

  • 在完成上面的步骤后,我们还可以在 /etc/my.cnf 配置文件中添加一些配置信息,降低 mariadb 资源需求,具体的配置请参考文末给出的链接。

启动

  • 启动 apache 服务器:systemctl start httpd.service
  • 启动 mariadb 服务器:systemctl start mariadb.service

启动完成后,再次打开网站主页,bingo,问题解决了!

总结

  • 低配 VPS 最好还是要多增加 swap 分区大小,尤其对于使用 SSD 的 VPS 而言,swap 分区的性能也非常不错;
  • 数据库服务器崩溃后,一定要记得学会分析日志。最简单的做法就是使用 tail 命令看看最近的崩溃日志,并根据崩溃信息寻找解决问题的办法;
  • WordPress 程序本身比较占资源,所以运行在低配的 VPS 时,还是需要做些优化工作。具体请参考文末给出的链接。

linux TP 阿帕奇 数据库 php的安装相关推荐

  1. linux mysql 主从数据库_Linux下安装MySQL及MySQL主从同步配置

    从零开始说起,先说在Linux安装MySQL再说主从配置,MySQL的版本为5.7 一.mysql安装 1.使用命令 rpm -qa|grep mariadb 查看是否存在mariadb 2. 使用 ...

  2. linux卸载mariadb数据库,CentOS yum 安装、卸载MariaDB数据库

    CentOS版本:CentOS-7-x86_64-Minimal-1511 1.安装Mariadb [root@localhost~]# yum -y install mariadb-server 2 ...

  3. Linux下DB2数据库安装教程

    最近因为工作需要在学习DB2数据库,本教程讲解DB2数据库在inux下的安装步骤. 安装前请查看 DB2版本和许可证 说明来增加了解,先弄明白改安装什么版本,这里我用的是最新的Express-C版本, ...

  4. Linux虚拟机sqlite数据库安装教程、命令实现sqlite

    参考:Linux虚拟机sqlite数据库安装教程 作者:图触靓 发布时间: 2021-04-08 19:07:56 网址:https://blog.csdn.net/bhbhhyg/article/d ...

  5. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(静默创建实例_08)

    接上一篇:linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(执行安装_07) 创建ORACLE实例前提,准备下面7项工作 序号 说明 链接 ① 安装操作系统 https:/ ...

  6. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(执行安装_07)

    接上一篇:linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(修改配置文件_06) 执行安装前的准备工作: 创建ORACLE实例前提,准备下面6项工作 序号 说明 链接 ① ...

  7. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(修改配置文件_06)

    接上一篇:linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(上传安装包并解压_05) linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(修改配置 ...

  8. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(上传安装包并解压_05)

    接上一篇:linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(oracle基础配置_04) 静默安装Oracle11GR2数据库上传数据库安装包并解压 按提示选择文件,添加确 ...

  9. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(oracle基础配置_04)

    接上一篇:linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(安装依赖包_03) 创建用户 组 及文件夹 创建用户组:groupadd oinstall 创建用户组:grou ...

  10. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(安装依赖包_03)

    接上一篇:linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(安装常用工具_02) 安装Oracle11GR2所需要的依赖包 有高手写成了这样: yum -y install ...

最新文章

  1. 招聘|阿丘科技招系统软件与图像算法工程师(内推)
  2. 台达变频器s1参数设置_【智】台达变频器计数输入功能接线和参数设置详解
  3. javascript里的面向对象
  4. C++运算符重载(10)
  5. 我们很需要“企业即时通讯”
  6. 福布斯评选 8 位 AI 风云女性,李飞飞、Coursera 创始人在列
  7. 设计模式——责任连模式
  8. 面向对象and正则表达式
  9. POJ3264(分桶法)
  10. 通过深度优先搜索(DFS)对图的边进行分类
  11. Findbugs异常总汇
  12. 创邻科技荣登机器之心Pro·AI 趋势先锋 Insight 榜单
  13. Extracting Multiple-Relations in One-Pass with Pre-Trained Transformers [论文研读]
  14. 图像风格迁移cvpr2020_浅谈风格迁移(二)任意风格迁移
  15. 【正向偏置和反向偏置的区别】
  16. 湖北计算机专业不错的学校,计算机专业大学TOP10排名,湖北一所大学上榜,这个地方占了四所...
  17. 河南对口计算机本科学校有哪些,河南省计算机专业对口升学能上什么大学
  18. Carla-Scenario Runner 安装步骤与踩坑
  19. ccf练习题 世界杯来了
  20. 数据备份有哪些种类?

热门文章

  1. C ++入门系列博客一 最初的起点 — Hello World
  2. android camera API1调用camera HAL3流程学习总结
  3. Linux kernel Kobjects解析
  4. 数据挖掘-----Apriori算法
  5. Java的GUI学习十二(文件的打开和保存)
  6. 卡特兰数(JAVA大数)Buy the Ticket
  7. MySql explain命令详解
  8. 判定三角形程序c语言,c语言判定三角形的各种类型——请大家指点
  9. arm x86 区别_深入了解arm架构和x86架构有什么区别及各自的优势选型者重点查看...
  10. js富文本转换html,JS解析富文本中的html实体符号