Linux CentOS 6.5 + Apache + Mariadb + PHP环境搭建

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Linux CentOS 6.5 + Apache + Mariadb + PHP环境搭建

Web自动化测试-服务端测试环境部署

 


目录

一、        安装数据库

二、        数据库配置

三、        创建数据库及数据表

四、        插入基础数据

五、        Apache

六、        配置与启动Apache

七、        安装php

八、        配置php

九、        部署php代码文件

十、        安装及配置vsftpd服务器

 

 

操作系统环境:CentOS 6.5-x86_64

下载地址:http://www.centoscn.com/CentosSoft/iso/2013/1205/2196.html

注:安装时选择以Basic Server的方式安装

 

Mariadb下载地址

http://mirrors.opencas.cn/mariadb/mariadb-5.5.45/yum/centos6-amd64/rpms/

 

Apache下载地址

http://httpd.apache.org/download.cgi#apache24

 

pcre下载地址

http://pcre.org/

 

apr下载地址

http://mirrors.cnnic.cn/apache/apr/

 

apr-util下载地址

http://mirrors.cnnic.cn/apache/

 

libxml2下载地址

http://download.chinaunix.net/download/0007000/6095.shtml

 

php下载地址

http://php.net/downloads.php#v5.6.12

 

 

文件列表如下:

 


 

网盘统一下载地址:http://pan.baidu.com/s/1sj1Lzw5

 

 

一、安装数据库

安装MysqlMariadb(笔者选择安装的是Mariadb 5.5.45

 

需要下载的rpm包如下

[root@localhost mnt]# ls | grep rpm

MariaDB-5.5.45-centos6-x86_64-client.rpm

MariaDB-5.5.45-centos6-x86_64-common.rpm

MariaDB-5.5.45-centos6-x86_64-compat.rpm

MariaDB-5.5.45-centos6-x86_64-devel.rpm

MariaDB-5.5.45-centos6-x86_64-server.rpm

MariaDB-5.5.45-centos6-x86_64-shared.rpm

MariaDB-5.5.45-centos6-x86_64-test.rpm

 

安装Mariadb

[root@localhost mnt]# rpm -iUvh MariaDB-*.rpm

 

二、数据库配置

 

参考文章“MariaDB Centos7 下安装MariaDB

 

 

三、创建数据库及数据表

建库:

CREATE DATABASE `1dcq`

 

建表:

CREATE TABLE `pagesobject` (

 `Id` int(11) NOT NULL AUTO_INCREMENT,

 `P_Id` int(11) DEFAULT NULL,

 `PageName` varchar(255) NOT NULL DEFAULT '',

 `Html_open` varchar(10) DEFAULT 'true',

 `PageDesc` varchar(100) DEFAULT NULL,

 `isParent` tinyint(2) DEFAULT NULL COMMENT '如果是0表示文件夹,是1表示1个页面',

 PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=257 DEFAULT CHARSET=utf8

 

 

CREATE TABLE `page_elements` (

 `Id` int(11) NOT NULL AUTO_INCREMENT,

 `PageId` smallint(6) DEFAULT NULL,

 `FieldOrder` int(11) DEFAULT NULL,

 `ElementName` varchar(100) DEFAULT NULL,

 `ElementSelector` varchar(300) DEFAULT NULL,

 `ElementSelector02` varchar(300) DEFAULT NULL,

 PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8

 

CREATE TABLE `runtptask` (

 `runClientId` int(11) NOT NULL AUTO_INCREMENT,

 `tpid` varchar(11) DEFAULT NULL,

 `isRunning` int(11) unsigned zerofill DEFAULT '00000000000',

 `runClientPCName` varchar(100) DEFAULT NULL,

 `runClientPCIP` varchar(50) DEFAULT NULL,

 `lastRunTime` datetime DEFAULT NULL,

 PRIMARY KEY (`runClientId`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

 

CREATE TABLE `testcases` (

 `id` int(11) NOT NULL AUTO_INCREMENT,

 `p_id` int(11) NOT NULL,

 `test_name` varchar(255) NOT NULL DEFAULT '',

 `Html_open` varchar(10) DEFAULT 'true',

 `checked` varchar(8) DEFAULT NULL,

 `testModule_name` varchar(255) NOT NULL DEFAULT '',

 `test_desc` varchar(255) DEFAULT NULL,

 `testdataParas` varchar(255) DEFAULT NULL,

 `testdata_isexist` varchar(10) DEFAULT NULL,

 `isTestCase` tinyint(1) DEFAULT '0',

 `compFolderid` int(11) DEFAULT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8

 

CREATE TABLE `testcases_steps` (

 `Id` int(11) NOT NULL AUTO_INCREMENT,

 `TestcaseID` varchar(100) DEFAULT NULL,

 `ElementId` varchar(50) DEFAULT NULL,

 `Command` varchar(255) DEFAULT NULL,

 `InParas` varchar(255) DEFAULT NULL,

 `OutParas` varchar(255) DEFAULT NULL,

 `StepOrder` int(11) DEFAULT NULL,

 `compFolderid` int(11) DEFAULT NULL COMMENT '测试步骤中插入的操作组件的父级id',

 `compid` int(11) DEFAULT NULL COMMENT '测试步骤中插入的操作组件的id',

 PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=679 DEFAULT CHARSET=utf8

 

CREATE TABLE `tc_ele_command` (

 `id` int(11) NOT NULL AUTO_INCREMENT,

 `commandName` varchar(50) CHARACTER SET utf8 DEFAULT NULL,

 `commandPara` varchar(60) CHARACTER SET utf8 DEFAULT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

 

CREATE TABLE `testcase_runround` (

 `id` int(255) NOT NULL AUTO_INCREMENT,

 `test_round_name` varchar(255) DEFAULT NULL,

 `testset_list` varchar(255) DEFAULT NULL,

 `tcfolder_tc_list` varchar(2000) DEFAULT NULL,

 `testcase_list` varchar(1000) DEFAULT NULL,

 `round_desc` varchar(25) DEFAULT NULL,

 `testplan_file` varchar(255) DEFAULT NULL,

 `runningTestPlanUrl` varchar(100) DEFAULT NULL,

 `browserRuningDrivers` varchar(20) DEFAULT NULL,

 `latelyRuningTime` datetime DEFAULT NULL,

 `onlyOneRuning_tc_list` varchar(255) DEFAULT NULL,

 `project_name` varchar(255) DEFAULT NULL,

 `project_version` varchar(255) DEFAULT NULL,

 `project_id` varchar(255) DEFAULT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

 

 

CREATE TABLE `testreporter` (

 `Id` int(11) NOT NULL AUTO_INCREMENT,

 `testplanId` varchar(255) NOT NULL DEFAULT '',

 `testcaseList` varchar(255) DEFAULT NULL,

 `testcasedataGroup` tinyint(3) DEFAULT NULL COMMENT '--无用列',

 `tpRunedtcs` varchar(100) DEFAULT NULL COMMENT '此轮执行的测试用例',

 `tpRunnedHistoryId` bigint(50) DEFAULT NULL COMMENT '运行历史id,后续自动清除大于2天的报告',

 `onTime` datetime DEFAULT NULL COMMENT '发生的时间',

 PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

 

 

CREATE TABLE `tprunnedhistory` (

 `id` int(11) NOT NULL AUTO_INCREMENT,

 `tpId` varchar(255) DEFAULT NULL,

 `tpRunnedHistoryId` bigint(50) DEFAULT NULL,

 `willRunningTestcaseList` varchar(1000) DEFAULT NULL,

 `runPassedTc_count` int(11) DEFAULT '0',

 `runPassedTc` varchar(1000) DEFAULT '',

 `runFailedTc` varchar(1000) DEFAULT '',

 `tpRunnedHistoryNotes` varchar(100) DEFAULT NULL,

 `onTime` datetime DEFAULT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

 

CREATE TABLE `tcrunnedhistory` (

 `id` int(11) NOT NULL AUTO_INCREMENT,

 `tpId` varchar(255) DEFAULT NULL,

 `tpRunnedHistoryId` bigint(50) DEFAULT NULL,

 `willRunningTestcaseList` varchar(1000) DEFAULT NULL,

 `runPassedTc_count` int(11) DEFAULT '0',

 `runPassedTc` varchar(1000) DEFAULT '',

 `runFailedTc` varchar(1000) DEFAULT '',

 `tpRunnedHistoryNotes` varchar(100) DEFAULT NULL,

 `onTime` datetime DEFAULT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

 

四、插入基础数据

INSERT INTO `pagesobject`(P_id, test_name) VALUES(1, '根目录');

 

INSERT INTO `testcases`(p_id, test_name) VALUES(0, '根目录');

 

 

五、安装Apache

安装gcc-c++

[root@localhost mnt]# yum install gcc-c++

 

安装apr

[root@localhost mnt]# tar -xvzf apr-1.5.2.tar.gz

[root@localhost mnt]# cd apr-1.5.2

[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr

[root@localhost apr-1.5.2]# make && make install

 

安装apr-util

[root@localhost mnt]# tar -xvzf apr-util-1.5.4.tar.gz

[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@localhost apr-util-1.5.4]# make && make install

 

 

安装pcre

[root@localhost mnt]# tar -xvzf pcre-8.36.tar.gz

[root@localhost mnt]# cd pcre-8.36

[root@localhost pcre-8.36]# ./configure --prefix=/usr/local/pcre

……

[root@localhost pcre-8.36]#make && make install

 

安装Apache

[root@localhost tmp]# tar -xzvf httpd-2.4.16.tar.gz

[root@localhost tmp]# cd httpd-2.4.16

[root@localhost httpd-2.4.16]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr  --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre

[root@localhost httpd-2.4.16]# make && make install

 

 

可在httpd.conf中进行一些自定义配置

[root@localhost httpd-2.4.16]# vim /usr/local/apache/conf/httpd.conf

 

 

六、配置与启动Apache

编辑httpd.conf,设置'ServerName':把ServerNamewww.example.com:80改成自己需要的(可先注释,然后新增一行

[root@localhost httpd-2.4.16]# vim /usr/local/apache/conf/httpd.conf

 


 

如果未配置,启动时会报如下错误:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

 

启动

[root@localhost httpd-2.4.16]# /usr/local/apache/bin/apachectl -k start

 

注:停止Apache

[root@localhost httpd-2.4.16]# /usr/local/apache/bin/apachectl -k stop

 

防火墙开放80端口

[root@localhost tmp]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

[root@localhost tmp]# services iptables save

-bash: services: command not found

[root@localhost tmp]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

[root@localhost tmp]# service iptables reload

iptables: Trying to reload firewall rules:                 [  OK  ]

注意:不开放端口的话,访问http://192.168.30.80,可能会访问不了

 

浏览器访问http://192.168.30.80,可以访问了,OK

 

参考连接:

http://httpd.apache.org/docs/current/

 

七、安装php

安装函数依赖模块

[root@localhost tmp]# rpm -iUvh php-common-5.3.3-40.el6_6.x86_64.rpm

warning: php-common-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...                ########################################### [100%]

  1:php-common             ########################################### [100%]

[root@localhost tmp]# rpm -iUvh php-mbstring-5.3.3-40.el6_6.x86_64.rpm

warning: php-mbstring-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...                ########################################### [100%]

  1:php-mbstring           ########################################### [100%]

[root@localhost tmp]#

 

安装libxml2

[root@localhost mnt]# tar -xvzf libxml2-2.6.27.tar.gz

[root@localhost mnt]# cd libxml2-2.6.27

[root@localhost libxml2-2.6.27]# ./configure --prefix=/usr/local/libxml12

[root@localhost libxml2-2.6.27]# make && make install

 

注:

1.如果mysql是源码包安装的,加--with-mysql=mysql_installation_path

2.如果未安装libxml2,可能报如下错误:

configure: error: xml2-config not found. Please check your libxml2 installation.

 

安装php

[root@localhost mnt]# tar -xvzf php-5.6.12.tar.gz

[root@localhost tmp]#cd php-5.6.12

[root@localhost php-5.6.12]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/libxml12/ --with-mysql --enable-mbstring=all

 

注:

1、如果mysql是以rpm宝的形式安装的,直接--with-mysql,如果是源码包安装的,--with-mysql=mysql_installation_path,,笔者实践发现,没加--with-mysql,安装后不能加载mysql.dll

2、带--enable-mbstring=all是因为提供PHP框架需要使用该模块

 

 

说明:编译php时,可能还会遇到如下错误

Sorry, I cannot run apxs. ***

Sorry, I cannot run apxs. Possible reasons follow:

1. Perl is not installed

2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs

3. Apache was not built using --enable-so (the apxs usage page is displayed)

 

解决方法:将apxs所在目录(例中为/usr/local/apache/bin/)添加到PATH环境变量,并使环境变量生效即可。

 

 

八、配置php

[root@localhost php-5.6.12]# cp php.ini.dist /usr/local/php/lib/php.ini

注:如果没有php.ini.dist则把php.ini-development php.ini-production中的任何一个重命名为php.ini.dist即可

 

配置httpd.confapache支持PHP

# vim /usr/local/apache/conf/httpd.conf

 

找到AddType application/x-gzip .gz .tgz ,然后添加如下带背景颜色的内容(.前面有空格)

 

#################Added by laiyu##################

   AddType application/x-httpd-php .php

   AddType application/x-httpd-php-source .phps

   #################################################

   #AddType application/x-gzip .tgz

 

修改改配置文件php.ini

首先要确保php.iniextension_dirphp扩展所在目录,然后找到如下内容

;extension=php_mysql.dll

;extension=php_mysqli.dll

 

把前面的分号去掉,改成如下,保存,重启Apache

extension=php_mysql.dll

extension=php_mysqli.dll

 

注意:如果这里不修改,可能会导致无法连接mysql,类似如下,查看apahce日志,

[root@localhost logs]# cat error.log

[Sat Aug 22 01:11:50.502345 2015] [:error] [pid 28567:tid 140674563237632] [client 192.168.40.74:64189] PHP Fatal error:  Call to undefined function mysql_connect() in /usr/local/apache/htdocs/1dcq/connect.php on line 9, referer: http://192.168.40.80/1dcq/framework/pagesObject.php

 

 

找到如下代码,去掉前面的分号,即取消注释,加载该模块。

;extension=php_mbstring.dll

 

找到display_errors = On,修改为display_errors = Off

 

重启Apache

[root@localhost php-5.6.12]# /usr/local/apache/bin/apachectl stop

[root@localhost php-5.6.12]# /usr/local/apache/bin/apachectl start

 

测试php是否成功安装

写一个php测试页info.php,放到Apachehtdocs目录下。

 

 

在浏览器中输入:服务器地址/info.php,如:http://192.168.30.80/info.php

如果可看到php版本,系统等相关信息则表示成功了

 

 


参考连接:

http://php.net/manual/zh/install.unix.apache.php

 

九、部署php代码文件

安装好后,可以把PHP代码“framework.zip”解压源码“framework.zip”解压,放入到/usr/local/apache/htdocs/目录下,编辑connect.php,进行相关配置

[root@localhost tmp]# unzip framework.zip

[root@localhost tmp]# mv 1dcq/ /usr/local/apache/htdocs/

 

访问查看


 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
7月前
|
Ubuntu PHP
Ubuntu下使用apt为Apache2编译PHP7.1
以上就是在Ubuntu系统下,使用apt为Apache2编译PHP7.1的过程。希望这个过程对你有所帮助,如果你在执行过程中遇到任何问题,都可以在网上找到相关的解决方案。
140 25
|
7月前
|
Ubuntu PHP Apache
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
186 28
|
7月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
372 17
|
9月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
290 20
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
1135 0
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
385 2
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
127 0
|
Linux PHP
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
100 0
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
483 0
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。