Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103558
  • 博文数量: 39
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 318
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-09 10:01
文章分类

全部博文(39)

文章存档

2011年(7)

2010年(20)

2009年(12)

我的朋友

分类:

2010-06-19 14:28:56

redhat as5 Linux下的APACHE+PHP+MySQL开发环境
 
目前Web开发人员常使用的开发语言是PHPASPJSP。这三种语言各有所长,也各自拥有一大批忠实的开发者和使用者。对于使用PHPWeb开发的人员来说,很多人选择了在Windows下进行开发,而最终开发出的程序则运行在Unix(Linux/FreeBSD)的操作系统上。开发环境和实施环境的不同,使得许多开发人员的系统知识稍显欠缺。作为一个使用PHP进行Web开发的人员而没有用过Linux,这种现象并不少见。更不要说具备一些简单的Linux系统知识,能够自己安装开发环境了。一个开发人员了解一些系统知识是很有必要的,对于开发也是很有帮助的。下面介绍一下如何构架Linux下的PHP+MySQL开发环境。
Linux下开发Web应用,一定要有一个HTTP Server,这就是著名的Apache。当然数据库是一定少不了的,Linux支持多种数据库,包括像OracleDB2等这样大型的数据库。不过与PHP最为相配、也是运用最多的数据库当属MySQL了。另外PHP语言本身也是必不可少的。下面是它们相应的网站:
Apache
MySQL
PHP
Linux上的软件通常有着很快的升级速度,这可能是开放源码软件的优点之一吧。就Apache而言,有1.3.X版本与2.X版本两个分支。由于2.X是在1.3.X上进行重写,因此在结构和功能上都有很大的改进。关于Apache 1.3.X的安装介绍比较多,故本文选用了Apache 2.X版本。同样,也选用了支持Apache 2.X版本的PHP版本。大家可以从其各自的网站上去下载ApacheMySQLPHP的最新版本。以下是2003916日下载到的软件包:
mysql-5.0.41.tar.gz
php-5.2.11.tar.bz2
httpd-2.2.13.tar.gz
有了这三个软件包,就可以开始在Linux下构建一个支持PHP+MySQLWeb服务器了。这也正是目前常用的Web应用环境。
我们把下载的三个软件包放到/var/local目录下(这是笔者个人的习惯),它们都是tar.gz包,可以用命令tar -xzpvf 包名,把它们在当前目录(/var/local/)中解开:
cd /var/local
tar -xzpvf mysql-5.0.41.tar.gz
tar -xjvf php-5.2.11.tar.bz2
tar -xzpvf httpd-2.2.13.tar.gz
解包后可以开始进入正式安装。
安装MySQL
1.编译
cd mysql-5.0.41
../configure --prefix=/usr/local/mysql
make
make install
cd ..
2.增加用户
adduser -s /bin/false mysql
3.初始化并设置目录权限
/usr/local/mysql/bin/mysql_install_db
chown -R root /usr/local/mysql/
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/
4.加入库
echo /usr/local/mysql/lib/mysql/lib >>/etc/ld.so.conf
ldconfig
5.使之启动时自动运行
echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.d/rc.local
6.启动MySQL
/usr/local//mysql/bin/mysqld_safe &
 
7.安全性设定
修改MySQLroot密码:
/usr/local/mysql/bin/mysqladmin -uroot password abcdefg
 
8.测试
[root@terry bin]# /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.0.15
Type ''help;'' or ''\h'' for help. Type ''\c'' to clear the buffer.
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> delete from user where user=''''; (删除所有用户名为空的用户,可以提高安全性)
Query OK, 2 rows affected (0.00 sec)
mysql> quit
Bye
 
安装Apache
cd httpd-2.2.13
./configure --prefix=/usr/local/httpd --enable-so
make
make install
cd ..
现在已经将Apache 2.2.13安装到 /usr/local/httpd目录中,安装好的Apache支持可装载模块和标准的MPM prefork。如果安装过程中没有出现错误,便可以使用如下命令启动Apache服务:
/usr/local/httpd/bin/apachectl start
如果启动成功,将启动命令加入rc.local,使之在系统启动时自动运行:
echo "/usr/local/httpd/bin/apachectl start &" >>/etc/rc.d/rc.local
停止Apache服务,并继续安装PHP
/usr/local/httpd/bin/apachectl stop
安装PHP
cd php-5.2.11
../configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql
make
make install
cp php.ini-dist /usr/local/lib/php.ini
这种安装方式是将PHP作为ApacheSAPI模块来进行安装,它仅是其中的一种安装方式,更多的方法请参阅相关文档。
PHPApache安装后的基本配置
1.Apache的配置
Apache的配置文件是/usr/local/httpd/conf/httpd.conf,编辑httpd.conf 文件,查找文件中是否含有这两句话,如果没有,在文件结尾加上以下两行:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .php3
 
同时修改DirectoryIndex为:
DirectoryIndex index.html index.php index.php3
Apache的配置内容比较丰富,其它Apache相关配置请参考Apache的相关文档。
2.PHP的配置
Apache的配置文件是/usr/local/lib/php.ini,编辑php.ini文件来配置PHP的选项。特别注意的是,安装完成后register_globals变量默认设置为Off,需要将它改成On。否则会出现PHP读不到post的数据的现象。
register_globals=On
其它PHP的选项请参考相关文档。
3.测试
使用apachectl重新启动apache服务
/usr/local/httpd/bin/apachectl restart
 
如果出错::::::
1
启动 apachectl 时出错,httpd.conf53行有语法错误.libphp5.so模块无法载入.
错误信息如下:
Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
Can not load /usr/local/apache2/modules/libphp5.so   into server:
/usr/local/apache2/modules/libphp5.so:
Can't   restore   segment prot after reloc :   Permission   denied
解决: apache不能加载外挂php模块这是由SELinux的安全策略配置不当引起的.Fedora Core 的官方网站上有相关的Apache/SELinux的策略调整文档.如果嫌麻烦,可以直接修改/etc/selinux/config SELinux禁用.
(2)
 Syntax error on line 79 of /usr/local/httpd/conf/httpd.conf:
AddType requires at least   two arguments,a mime type followed by one or more file extensions
解决:要加空格
(3)
启动 httpdhttpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/conf.d/auth_mysql.conf: Cannot load /etc/httpd/modules/mod_auth_mysql.so into server: libmysqlclient.so.15: cannot open shared object file: No such file or directory
[失败]
解决:看见上面的原因可能是我之前卸载rhel自带的mysql的过程中,强制卸载了一些依赖包,解决办法如下:
vi /etc/httpd/conf.d/auth_mysql.conf //进入相关文件,注释掉出错的第六行,解决OK,也可以将动态库复制到相应的目录中
 
在设置的DocumentRoot目录下,添加一个phpinfo.php的文件来测试系统,程序代码如下:
//filename: phpinfo.php
phpinfo();
?>
这时候在客户端浏览器中访问应该出现php的参数表,至此所有系统安装完毕。
 
4 测试时发现不能解析php,具体表现为页面空白,但可以解析html(就是能出来apache刚安装好后的提示那个)
解决:
phpinfo();
?>
?后少加了后缀php。这是php.ini没有设置好的原因
; Allow the tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = Off
把这个设置为ON也可以解决。。。。。。
 
**************************************************************************************************
 
再个问题就是:浏览器显示错误信息如下:
 
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 Fatal error: Unknown: Failed opening required '/usr/local/httpd/htdocs/phpinfo.php' (include_path='.:/usr/local/lib/php') in Unknown on line 0
 
 
问题的原因是 : 你的phpinfo.php文件 在这个用户下不具有 可读的权限 通过 ls -l 查看 文件的权限 然后更改权限(添加读权限 chmod +r phpinfo.php)就不会出现这个问题了...
如果看到如图1的信息即表示成功了
阅读(921) | 评论(0) | 转发(0) |
0

上一篇:mysql编译安装

下一篇:MySQL中的Bit类型详解

给主人留下些什么吧!~~