linux中centros6.7安装php5.6,httpd-2.2.19(web产品化)遇到的问题总结
前段时间在公司实习,web系统产品化的过程踩了很多坑,在这边总结一下,由于对linux不是很懂,全是自己一步步一个一个问题解决的
1,查看系统中是否安装apache,php,mysql环境
Apache-2.2.15
Php-5.2.17
Mysql-5.0.67
2,PHP的安装编译
由于thinkPHP5.0要求php版本>=5.4
可以不必卸载平台中的PHP-5.2.17,只需将路径覆盖
安装php5.6.30
将下载好的压缩包通过winSCP移动到/home目录下
# tar zxvf php-5.6.30.tar.gz
# cd php-5.6.30
# ./configure --prefix=/usr/local/php5.6 --with-libxml-dir=/usr/include/libxml2 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
产生错误
Error:libxml2库查询不到
查看平台安装的libxml2的安装路径
# find -name ‘*libxml2*’
查找到的文件没有编译文件
下载libxml2-2.7.8.tar.gz的安装包
移动到/home目录下
# tar zxvf libxml2-2.7.8.tar.gz
# cd libxml2-2.7.8
# ./configure
# make
# make install
Libxml2默认安装到.usr/local/include/libxml2目录下
# cd
# cd php-5.6.30
# ./configure --prefix=/usr/local/php5.6 --with-libxml-dir=/usr/include/libxml2 --with-zlib --with-jpeg-dir --with-png-dir --with-iconv --enable-sockets --without-pdo-sqlite --with-gmp --with-openssl --enable-ftp --with-pdo-mysql --enable-wddx --enable-sysvsem --enable-sysvshm --enable-sysvmsg --disable-xmlreader --disable-xmlwriter --disable-dom --with-gd --without-pear --with-bz2 --with-curl --disable-dba --enable-exif --with-gettext --with-kerberos --with-apxs2=/usr/local/apache2/bin/apxs --with-pic --with-mysql=/usr/local/mysql --with-freetype-dir=/usr/local/lib
# make
# make install
有错误提示:
# /usr/bin/ld: cannot find -lz
# collect2: ld returned 1 exit status
# make: *** [sapi/cli/php] 错误 1
Centos6.7.iso挂载
首先要在虚拟机的编辑设置中CD/DVD驱动器选项中勾选设备状态(已连接)
# mkdir media
# mount -t iso9660 /dev/cdrom / media/
# cd media/Package
里面有需要安装的依赖包
|
安装所需要的依赖包 # rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm # rpm -ivh libjpeg-turbo-devel-1.2.1-3.el6_5.x86_6.rpm # rpm -ivh libpng-devel-1.2.49-1.el6_2.x86_64 # rpm -ivh sqlite-devel-3.6.20-1.el6.x86_64.rpm # rpm -ivh gmp-devel-4.3.1-7.el6_2.2.x86_64.rpm # rpm -ivh ftp-0.17-54.el6.x86_64.rpm # rpm -ivh openssl-devel-1.0.1e-42.el6.x86_64.rpm # rpm -ivh krb5-devel-1.10.3-42.el6.x86_64.rpm # rpm -ivh keyutils-libs-devel-1.4-5.el6.x86_64.rpm # rpm -ivh libcom_err-devel-1.41.12-22.el6.x86_64.rpm # rpm -ivh libselinux-devel-2.0.94-5.8.el6.x86_64.rpm # rpm -ivh libsepol-devel-2.0.41-4.el6.x86_64.rpm # rpm -ivh bzip2-devel-1.0.5-7.el6_0.x86_64.rpm # rpm -ivh libcurl-devel-7.19.7-46.el6.x86_64.rpm # rpm -ivh libidn-devel-1.18-2.el6.x86_64.rpm # rpm -ivh freetype-devel-2.3.11-15.el6_6.1.x86_64.rpm |
3,检测环境安装
我们先在这个var/web/cu 目录下新建一个文件
test.php
<?php
$link = mysql_connect('localhost','root','123456');
if($link){
echo 'connect success';
}else{
echo 'connect error';
}
mysql_close();
Echo ‘Hello World’;
phpInfo();
?>
然后访问 192.168.228.29/test.php
页面上输出connect success Hello World
php mysql环境安装成功
4安装php_screw 加密库
# tar zvxf php_screw-1.5_modify.tar.gz
# cd php_screw-1.5
# phpize
出错:bash:phpize:command not found
ln -s /找到你的phpize所在路径 /usr/bin/phpize
ln -s /找到你的php-config所在路径 /usr/bin/php-config
ln -s /找到你的php所在路径 /usr/bin/php
# phpize
出错,bash:/usr/bin/phpize:权限不够
# cd usr/bin
# chmod a+x phpize
# cd php_screw-1.5
# phpize
#./configure --with-php-config=/usr/local/php5.6/bin/php-config
# make
出错
/root/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:/root/php_screw-1.5/php_screw.c:124: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
/root/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:
/root/php_screw-1.5/php_screw.c:133: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
make: *** [php_screw.lo] Error 1
将 124行,133行 的
CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
# make
(在modules中生成.so文件)
# make clean
# cd tools
# make
加密工具生成,但是phpInfo()输出时,没有提示php_screw()--》enable,
编译出错!
5,将web部署到服务器上
查看 httpd.conf的文档
<VirtualHost *:80>
DocumentRoot /var/web/cu
ServerName *:80
</VirtualHost>
<VirtualHost *:81>
DocumentRoot /var/web/nmu
ServerName *:81
</VirtualHost>
Web文档都放在var/web目录下
Cu的端口是80
Num的端口是81
所以我们可以把E-NVS的端口设置为82
1,在http.conf文档中添加82端口号
Listen 80
Listen 81
Listen 82
ServerName 127.0.0.1
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/web/cu
ServerName *:80
</VirtualHost>
<VirtualHost *:81>
DocumentRoot /var/web/nmu
ServerName *:81
</VirtualHost>
<VirtualHost *:82>
DocumentRoot /var/web/e-nvs/trunk/src
ServerName *:82
</VirtualHost>
<Directory "/var/web/cu">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
2,在var/web下新建目录e-nvs
将项目的代码拷贝进来
3,访问82端口时提示
You don't have permission to access / on this server
修改httpd.conf文件
修改:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
为:(允许指向外部的目录进行访问)
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
<Directory />
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
</Directory>
重新访问82端口,192.168.228.29:82/public。页面显示正常,点击登录,路径不对,显示404.
查看httpd.conf,发现没有rewrite_module模块,所以需要重新安装编译该模块
重新下载一个对应版本的apache(即httpd-2.2.19)
# tar zvxf httpd-2.2.19.tar.gz
# cd httpd-2.2.19
# ./configure --prefix=/usr/local/apache --enable-deflate=shared --enable-headers=shared --enable-info=shared --enable-rewrite=shared --enable-ssl=shared --enable-so
# make
# find -name mod_rewrite.c (httpd-2.2.19/modules/mappers)
# /usr/local/apache2/bin/apxs -c mod_rewrite.c
# /usr/local/apache2/bin/apxs -i -a -n mod_rewrite mod_rewrite.la
此时,在apache2/modules/mod_rewrite.so文件存在
在httpd.conf中LoadModule rewrite_module modules/mod_rewrite.so 该条语句也已经出现
重启apache,出错
httpd: Syntax error on line 72 of /usr/local/apache2/conf/httpd.conf: Can't locate API
module structure `mod_rewrite_module' in file
/usr/local/apache2/modules/mod_rewrite.so: /usr/local/apache2/modules/mod_rewrite.so: undefined symbol: mod_rewrite_module
Httpd.conf中找到那行
需要自己手工修改mod_rewrite_module 为 rewrite_module
再重启apache
点击登录按钮时出错
提示:could not find driver
是php.ini的配置问题
重新编译php,在./configure 中添加 --with-pdo-mysql
同时,在php.ini中找到
extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
将这四行前面的;去掉,在phpInfo中看到pdo-mysql已经被编译进去,在php.ini中添加一行
extension=pdo_mysql.so
重新启动apache,又有新的错误
提示: SQLSTATE[HY000] [2002] Connection timed out
将数据库连接修改成 localhost,登录成功
linux中centros6.7安装php5.6,httpd-2.2.19(web产品化)遇到的问题总结的更多相关文章
- Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因
原文:Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因 今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.4.6), ...
- linux中mariadb的安装
在Linux中mariaDB的安装 MariaDB其实就是MySQL的分支,是为了应对MySQL的即将的闭源风险所产生的. Linux系统中软件包的格式为mysql.rpm格式. 通过yum去安装 L ...
- Linux中源码安装编译Vim
Linux中源码安装编译Vim Linux下学习工作少不了编辑器,Vim能使你的工作效率成倍的提高.在Ubuntu上安装vim使用命令直接安装很简单.但有时还是需要自己手动编译安装.例如: vim中的 ...
- 在linux中使用phpize安装php扩展模块
介绍:linux系统中,php安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块.使用phpize脚本安装php扩展模块的好处:在安装php时没有 ...
- CentOS 6.4 中yum命令安装php5.2.17
最近给公司部署服务器的时候发现他们提供的服务器是centos6.4系统的,装好系统和相关服务httpd,mysql,php,一跑代码,发现php5.3中的zend加密不能用,安装Zend Guard ...
- linux中nginx的安装,linux的版本是ubutu
linux环境下,安装nginx,报错如下: the HTTP rewrite module requires the PCRE library. 1.需要安装pcre,报一下错误: you need ...
- Linux中yum手动安装、手动建立仓库文件夹关联实现关联包自动安装、yum相关命令使用
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指 ...
- Linux中Samba详细安装
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互 ...
- Linux中Samba详细安装【转】
转自:http://www.cnblogs.com/whiteyun/archive/2011/05/27/2059670.html 为了实现Windows主机与Linux服务器之间的资源共享,Lin ...
随机推荐
- linux echo 命令 打印字符串
打印字符串 [root@MongoDB ~]# echo "heloworld" heloworld
- webservice学习教程(三)--
快速入门 首先,我们来尝试一下调用别人写好的webService 来体验一把:我们访问http://www.webxml.com.cn/zh_cn/index.aspx 进入到里边 当我们输入一个号码 ...
- BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 连接数据库执行SQL语句
BIML 101 - BIML 快速入门教程 第一节 连接数据库执行SQL语句 本小节将用BIML建一个简单的可以执行的包. 新建一个biml文件,贴入下面的代码 1 <Biml xmlns=& ...
- MySQL SQL Explain输出学习
MySQL的explain命令语句提供了如何执行SQL语句的信息,解析SQL语句的执行计划并展示,explain支持select.delete.insert.replace和update等语句,也支持 ...
- 查找字符在字符串中第N次出现的位置
1.查找字符串 @find 在字符串 @str 中第 (@n) 次出现的位置.没有第 (@n) 次返回 0. 返回@find在@str中第(@n)次出现的位置.没有第(@n)次返回0. ), ), ...
- com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone value '��� mysql-installer-community-8.0.15.0
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> &l ...
- zuul 自定义路由规则
1,zuul的maven配置 <!--spring cloud 相关包--><parent> <groupId>org.springframework.boot&l ...
- day24--面向对象基础
要理解面向对象,我们首先要知道什么是面向过程 面向过程: 面向过程重点在过程两个字,神马是过程,这还要解释吗?我还是说下吧,过程就是一条线,一个步骤跟着一个步骤,更生动点的说就是像工厂里面的流水线一样 ...
- angularjs简单介绍和特点
首先angular是一个mvc框架, 使用mvc解耦, 采用model, controller以及view的方式去组织代码, 会将一个html页面分成若干个模块, 每个模块都有自己的scope, se ...
- GoldenGate HANDLECOLLISIONS参数使用说明
HANDLECOLLISIONS在官方文档上的说明: 使用HANDLECOLLISIONS和NOHANDLECOLLISIONS参数来控制在目标上应用SQL时,Replicat是否尝试解决重复记录和缺 ...