首页 > 代码库 > centos6.5 下rpm离线安装apache2.2+php5.5+mysql5.6
centos6.5 下rpm离线安装apache2.2+php5.5+mysql5.6
1,安装,mysql
见网址:http://bt9527.blog.51cto.com/9142217/1437877
2,安装apache
在如下页面下载apache的for Linux 的源码包
http://www.apache.org/dist/httpd/
我放在/home/目录下
解压缩:
tar -zxvf httpd-*.tar.gz
mv httpd-* apache
执行命令:
cd apache
./configure --prefix=/usr/local/apache2 --enable-module=so
make
make install
默认安装apache路径在/usr/local/apache2
3,安装PHP
在如下页面下载php的for Linux 的源码包
http://www.php.net/downloads.php
我放在/home/目录下
tar -zxvf php-*.tar.gz
mv php-* php
cd php
./configure --prefix=/usr/local/php --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib=/usr/
这里容易出错,我在这卡了很久
--prefix=/usr/local/php 指定php安装目录
--with-apxs2=/usr/local/apache2/bin/apxs apache关联,主要是php支持模块直接编译到apache的modules目录
--with-mysql=/usr 离线rpm包安装mysql头文件位置
--with-zlib=/usr/ 离线rpm安装zlib头文件位置
出现的错误:
错误1: Cannot find MySQL header files under *******
原因一个是没找到头文件的具体位置(一般都找的到)。
原因二是写成/usr/include/mysql(我在这出错,明明头文件就在这目录里面,怎么会找不到?
在configure里面找mysql.h,结果找到这句if test -r $PHP_MYSQL/include/mysql/mysql.h;原来脚本里面把/include/mysql/mysql.h包含进去了,所以参数里面mysql头文件只需要写到目录liclude前面一级目录/usr/就行了。)
错误2:configure: error: xml2-config not found.
解决方法:
在rpmfind.net网站根据操作系统下载并安装下列软件
rpm -ivh libxml2-python*
rpm -ivh zlib-devel*
rpm -ivh libxml2-devel*
错误3:缺少zlib
用命令whereis zlib找到zlib目录
zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz
加句--with-zlib=/usr #这里/include/zlib.h在脚本中也写了,参数中不要
错误4:configure: error: mysql configure failed. Please check config.log for more information.
这个错误差点把握搞崩溃了,网上找各种的各种解决办法都那么坑,有的说没加mysql头文件,这个头文件我加了,又有人说参数--with-mysql=....写成--with-mysql-dir=.....,这样解决的人难道没发现编译最后有句话:
configure: WARNING: unrecognized options: --with-mysql-dir
这句话说明了你PHP没关联上mysql。你要正常使用会再重新安装的。
关于那个64位操作系统的解决办法靠谱点,但是我系统是32位的。
最后终于找到一个兄弟写在博客上的解决办法:
下载并安装MySQL-embedded-5.6.19-1.el6.i686.rpm
MySQL-shared-5.6.19-1.el6.i686.rpm
MySQL-shared-compat-5.6.19-1.el6.i686.rpm
编译终于看见Thank you for using PHP.了
然后编译
make
这里可以用make test检测一下,也可以不用。
make install
4.配置
PHP配置文件
cp php.ini-development /usr/local/lib/php.ini
我没有进行PHP修改
apache配置文件
vi /usr/local/apache2/conf/httpd.conf
对apache做如下配置
将ServerAdmin mailto:linux@linuxidc.com一行改为您的邮箱地址
DocumentRoot "/usr/local/apache2/htdocs"次处为html文件主目录,我没有修改,使用的默认目录
#设置apache的默认文件名次序
AddType application/x-httpd-php .php .phtml .php3 .inc
AddType application/x-httpd-php-source .phps
ServerName 192.168.10.45:80设置服务器ip
只修改了这些,对配置文件不熟,没有进行其他修改,如有需要,以后再补
5.启动服务
/usr/local/apache2/bin/apachectl start
6.测试
vi /usr/local/apache2/htdocs/1.php
<?php
phpinfo();
?>
在浏览器输入http://服务器ip/1.php ,会出现安装的php信息
测试PHP读取mysql中数据,先登录mysql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)
mysql>use test
mysql> create table mclass(id int(4) not null primary key auto_increment,name char(20) not null,sex int(4) not null default ‘0‘,degree double(16,2));
mysql> insert into mclass values("9527","zhouxc","1","22");
Query OK, 1 row affected (0.03 sec)
mysql> insert into mclass values("9528","dema","1","33");
Query OK, 1 row affected (0.05 sec)
mysql> insert into mclass values("9529","duandao","0","99");
Query OK, 1 row affected (0.04 sec)
vi /usr/local/apache2/thdocs/sql.php
代码:
<?php
echo "This is a test</br>";
echo "asdfasdfadsf";
$mysql_server_name="localhost:3306"; //数据库服务器名称
$mysql_username="root"; // 连接数据库用户名
$mysql_password="123456"; // 连接数据库密码
$mysql_database="test"; // 数据库的名字
// 连接到数据库
$conn=mysql_connect($mysql_server_name, $mysql_username,
$mysql_password);
// 从表中提取信息的sql语句
$strsql="select * from mclass";
// 执行sql查询
$result=mysql_db_query($mysql_database, $strsql, $conn);
// 获取查询结果
$row=mysql_fetch_row($result);
echo ‘<font face="verdana">‘;
echo ‘<table border="1" cellpadding="1" cellspacing="2">‘;
// 显示字段名称
echo "</b><tr></b>";
for ($i=0; $i<mysql_num_fields($result); $i++)
{
echo ‘<td bgcolor="#000F00"><b>‘.
mysql_field_name($result, $i);
echo "</b></td></b>";
}
echo "</tr></b>";
// 定位到第一条记录
mysql_data_seek($result, 0);
// 循环取出记录
while ($row=mysql_fetch_row($result))
{
echo "<tr></b>";
for ($i=0; $i<mysql_num_fields($result); $i++ )
{
echo ‘<td bgcolor="#00FF00">‘;
echo $row[$i];
echo ‘</td>‘;
}
echo "</tr></b>";
}
echo "</table></b>";
echo "</font>";
// 释放资源
mysql_free_result($result);
// 关闭连接
mysql_close($conn);
?>
在浏览器输入http://服务器ip/sql.php
显示:
This is a test
asdfasdfadsf
id name sex degree
9527 zhouxc 1 22.00
9528 dema 1 33.00
9529 duandao 0 99.00