linux Apache和php配置

时间:2021-09-09 16:27:33

今天安装Apache httpd web服务器,安装过程分为三部分:

(1)./configure

(2)make

(3)make install (需要root权限)

我的apache 安装在/home/web/apache/ 目录下

安装好php和apache后

apache 的httpd.conf 配置

apache 默认加载配置是 /etc/apache2/目录或者 /etc/httpd/httpd.conf 目录下。

1、加载php模块。

LoadModule php5_module modules/libphp5.so

2、修改服务器的web访问目录。

DocumentRoot "/web"

<Directory "/web">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

3、设置默认访问主页

<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

4、在<IfModule mime_module>  ...  </IfModule>标签中添加apache解析类型。

AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php .html

(以上只是粗略的步骤,详细的日后慢慢完善。)

以下是安装过程遇到的一 些问题。

执行apachectl start时候,提示如下错误:

httpd: apr_sockaddr_info_get() failed for shiwei
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

原因:这个问题应该是没有在 /etc/httpd/conf/httpd.conf 中设定 ServerName。所以apache会用主机上的名称来取代,首先会去找 /etc/hosts 中有没有主机的定义。

解决办法:

(1)可以设定httpd.conf文件中的 ServerName,如下:ServerName localhost:80                        

(2)在 /etc/hosts 中填入自己的主机名称 bogon,如下:127.0.0.1 shiwei (用户名称)

2、 如何指定apache主配置文件httpd.conf的位置

若仅是想在启动时指定特定的文件,可以使用apachectl -f /etc/httpd/httpd.conf   

3、我在httpd.conf中添加了:LoadModule php5_module modules/libphp5.so
结果在启动httpd服务时,系统提示:
Cannot load /home/web/apache/modules/libphp5.so into server: /home/web/apache/modules/libphp5.so: cannot open shared object file: No such file or directory selinux禁用了也不行 解答:
我apache安装目录是/home/web/apache/ 然后我查看了/home/web/apache/modules/下确实没有libphp5.so文件 find / -name libphp5.so
找到libphp5.so 文件后把它复制到/home/web/apache/modules/下就可以了。
cp
libphp5.so /home/web/apache/modules/libphp5.so 4、我执行了cp libphp5.so /home/web/apache/modules/libphp5.so 后报如下 错误
 httpd: Syntax error on line 57 of /etc/httpd/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: failed to map segment from shared object: Permission denied

其中
failed to map segment from shared object: Permission denied   表示权限不够。也就是说没有操作libphp5.so的权限
执行 chmod -R 777 /usr/local/apache2/modules/libphp5.so 命令后,此错误消失。