现在的位置: 首页 > 综合 > 正文

Linux配置apache支持php

2013年12月10日 ⁄ 综合 ⁄ 共 4544字 ⁄ 字号 评论关闭

1.apache已经linux存在,查看apache版本信息及安装目录

# apachectl -v

Server version: Apache/2.2.3

 

2.安装mysql,由于redhat Enterprise 5 中自带一个mysql的版本,需要先删除

  a. 查找已安装的myslq 版本:

        #rpm  -qa | grep  mysql (注意大小写,如果mysql 不行就换MySQL)

        在屏幕上将显示已安装的mysql包名如:mysql-5.0.77-3.el5 ;

  b. 将搜索出的包名卸载:

        #rpm -e  --nodeps mysql-5.0.77-3.el5 (nodeps表示强制删除)

       再次查找该包名,如果没有结果输出则表明已将该版本的mysql卸载了

  c. 下载mysql:http://dev.mysql.com/downloads/mysql/5.0.html

      客户端:MySQL-client-community-5.0.92-1.rhel5.x86_64.rpm

      服务端:MySQL-server-community-5.0.92-1.rhel5.x86_64.rpm

  d.检查perl-DBI-1.52-2.el5.rpm是否安装,

    该包为是安装mysql的依赖,没它mysql安装不起,查看是否安装,如果安装了就不需要了,

     可以通过 #rpm -qa | grep perl* 查看是否已经安装,该包在linux系统盘上可以找到,以下提供该包下载)

  e.安装mysql

   [root@localhost /]#rpm -ivh MySQL-server-community-5.0.92-1.rhel5.x86_64.rpm

   [root@localhost /]#rpm -ivh MySQL-client-community-5.0.92-1.rhel5.x86_64.rpm

  

  f.查看是否安装成功

    [root@localhost /]#netstat -ntpl

   显示3306端口开放表示服务安装成功

   [root@localhost /]#mysql

   能自动登陆,则已成功

 

  g.修改mysql root密码

    [root@localhost /]#/usr/bin/mysqladmin -u root password 'xxxxxx';

    

     [root@localhost /]#mysql -u root -p

     Enter password:xxxxxx

     出现mysql>表示登陆成功!

   

  h.对mysql用户设置远程访问权限

    方法1、改表法:登陆mysql后,更改“mysql”数据库里的“user”表里的“host”项,将“localhost”改“%”

    mysql>use mysql;

    mysql>update user set host ='%' where user ='root';

    mysql>select host,user from user;

    mysql>FLUSH PRIVILEGES

    方法2、授权法:假设允许用户username通过密码password从远程连接到mysql服务器

    mysql>GRANT ALL RRIVILEGES ON *.* TO username@'%' IDENTIFIED BY 'password' WITH GRANT   
OPTION;

    mysql>FLUSH PRIVILEGES;

  i.安装目录结构

    数据库目录:/var/lib/mysql/

    配置文件:/usr/share/mysql(mysql.server命令及配置文件)

    相关命令:/usr/bin(mysqladmin、mysqldump等命令)

   (*mysql的一种安全启动方式:/usr/bin/mysqld_safe  --   user=root &)

    启动脚本:/etc/rc.d/init.d/

 

2.安装php最新版,从http://www.php.net/downloads.php下载

php-5.3.5.tar.gz

 

a.解压

[root@localhost /]# tar -zxvf php-5.3.5.tar.gz

b.安装

[root@localhost /]# cd php-5.3.5

[root@localhost /]#
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql

 

其中--with-apxs2=/usr/local/apache/bin/apxs 是指向apache目录

[root@localhost /]# make

[root@localhost /]# make install

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

 

c.配置

   

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

修改此文件,更改以下指令为:

DirectoryIndex index.html index.shtml index.cgi index.php index.phtml index.php3

ServerName  12.34.56.78:80  //这里的ip和端口号视实际情况而定

在/etc/hosts文件里添加对应的ip的ServerName

 

修改可以访问的地址

Order allow,deny
Allow from *****

 

Options FollowSymLinks MultiViews //为安全起见,去掉"Indexes"

 

根据php的版本,当前版本为5,下载libphp5.so并且添加这一句

LoadModule php5_module   /etc/httpd/modules/libphp5.so

 

找到AddType处,并添加以下2行:

AddType application/x-httpd-php .php .php3 .phtml .inc
AddType application/x-httpd-php-source .phps

 

vi /usr/local/lib/php.ini

更改以下指令为:

register_globals = On


    注:命令中执行下列命令
    *1增加用户、用户组、添加用户到用户组
    useradd ali
    groupadd ali
    usermod -G ali ali

    *2修改/var/www/html的所属用户及用户组
    chown -R ali:ali /var/www/html


 vim /etc/httpd/conf/httpd.conf屏蔽已有的User、Group代码,新增User ali Group ali代码
    #User apache
    #Group apache

    User ali
    Group ali

使用setenforce 0,关闭selinux

关闭防火墙,service iptables stop


项目部署到Apache Http Server上面,通过apachectl -t 检测配置文件也没有问题。可是通过浏览器访问,却出现了“you don't have permission to access / on this server”.

 1、首先,查看conf.d/python.conf文件

<Directory "项目路径">

        Options Indexes FollowSymLinks +Includes

        AllowOverride None

        Order allow,deny

        Allow from all

</Directory>

上面标红部分,表示允许任何人访问目录

2、其次,既然配置文件没有问题,那就需要考虑http.conf文件中指定的用户和组的访问权限。在Apache的wiki上有关于PermissionDenied的解决方法,链接是http://wiki.apache.org/httpd/13PermissionDenied,译文如下:

Error 13 指的是文件系统的访问权限错误。也就是由于错误的权限,apache被拒绝访问。一般的来说,这并不意味着是Apache配置文件存在错误。

为了给文件提供服务,Apache必须有适当的权限去访问那些文件,这些权限是由操作系统授予的。特别是在httpd.conf文件中指定User或者Group必须能够读取所有被服务的文件,以及查找包含那些文件的目录和所有的父目录直至文件系统的根。

一个类unix操作系统上不属于httpd.conf文件中指定的User或Group的资源的典型访问权限,对于普通的文件是644 -rw-r--r--,对于文件夹或者CGI脚本是755 drwxr-x-r-x。你也可能需要去查看操作系统所支持的扩展的访问权限(例如SELinux访问权限).


 

 

3.重新安装apache

 需先安装以下包,用于解决问题:apache2.3.8编译出错 configure: error: APR-util not found.  Please read the documentation

 

 a.apr-1.4.2.tar.gz

 

[root@localhost /]#
./configure –prefix=/usr/local/web/apr

[root@localhost /]#
make

[root@localhost /]#
make  install 

 

b.apr-util-1.3.10.tar.gz

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

[root@localhost /]#make

[root@localhost /]#make install

 

c.pcre-8.10.tar.gz

[root@localhost /]#./configure –prefix=/usr/local/web/pcre

[root@localhost /]#make

[root@localhost /]#make install

 

最后安装apache

[root@localhost /]#./configure -prefix=/usr/local/apache -enable-rewrite -enable-so -with-apr=/usr/local/web/apr -with-apr-util=/usr/local/web/apr-util  -with-pcre=/usr/local/web/pcre

 

[root@localhost /]#make

[root@localhost /]#make install

 

apache安装成功

抱歉!评论已关闭.