1. 为什么下载源码包需要到官网上去下载?
答:官网提供的源码包更完整,无修改,无病毒,无后门。
2. 64位机器是否可以安装32位rpm包?64位机器是否可以安装32位的mysql二进制免编译包?
答:可以,但是不建议这样做,最好是安装对应版本的包,不容易出问题。
3. 编译安装apache时, 会有什么问题?
答:编译安装apache需要底层接口库apr的支持,如果不加--with-included-apr参数,会编译出错:Cannot use an external APR with the bundled APR-util
4. 编译php时,必须加上 --with-apxs2=/usr/local/apache2/bin/apxs 这是什么意思呢?
答:使用apache自带的apxs工具将编译产生的php动态链接库libphp5.so自动加载到apache的模块列表中,如果不使用该工具,则需要手动添加。
5. 当配置好apache的配置文件后,如何检验配置文件是否正确?
答:使用apache自带的工具apachectl -t选项检测配置。
6. 如何查看80端口是否启动?
答:netstat -lnp |grep ‘:80‘
7. 更改apache配置文件httpd.conf后,如何重新加载配置文件?
答:apachectl graceful
8. 如何查看apache加载了哪些模块?
答:apachectl -M
9. 怎么查看php加载了哪些模块?
答:php -m
10. 简单描述静态加载和动态共享模块的区别。
答:静态加载是在编译时将模块一同编译进可执行文件中,可执行文件较大,但是执行速度快;动态加载是将模块和可执行程序分开编译,执行时调用模块功能,可执行文件较小,执行速度较慢。
11. 当我们配置好lamp环境后,访问php程序无法解析,你如何去排查这个问题呢?
答:首先 /usr/local/apache2/modules/目录下得有libphp5.so模块
然后 httpd.conf 中得有 LoadModule libphp5.so 语句
同时 httpd.conf 中得有 AddType application/x-httpd-php .php 语句
最后 apache 要重新加载配置文件
12. 如何配置apache的虚拟主机
答:编辑apache主配置文件:vim apache2/conf/httpd.conf
去掉 #Include conf/extra/httpd-vhosts.conf 最前面的注释符 #,并且修改:
Deny from all 为 Allow from all
最后编辑虚拟主机配置文件:vim apache2/conf/extra/httpd-vhosts.conf
根据实际需求修改相关内容
13. 如何配置apache的用户验证
答:[root@CentOS6 ~]vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
……
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.mydiscuz.com
<Directory /data/www/important/>
AllowOverride AuthConfig
AuthName "username"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
……
[root@CentOS6 ~]# htpasswd -c /data/.htpasswd jack
New password:123456
Re-type new password:123456
Adding password for user jack
14. 如何配置apache的日志以及日志按天切割
答:[root@CentOS6 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
……
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.mydiscuz.com
ServerAlias www.others.com
ErrorLog "logs/test.com-error_log"
CustomLog "| /usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined
……
15. 如何配置apache的图片等静态文件的过期时间
答:[root@CentOS6 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
……
CustomLog "| /usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env=!image-request
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType image/css "now plus 2 hours"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
</IfModule>
<IfModule mod_rewrite.c>
……
16. 如何限定某个目录下的php文件没有执行权限
答:[root@CentOS6 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
……
<Directory /data/www/important>
php_admin_flag engine off
<filesmatch "(.*)php">
Order deny,allow
Deny from all
</filesmatch>
</Directory>
……
17. 如何配置apache的域名重定向
答:[root@CentOS6 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
……
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.mydiscuz.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.mydiscuz.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
</IfModule>
……
18. 如何配置php的错误日志
答:[root@centos6 ~]# mkdir /usr/local/php/logs
[root@centos6 ~]# chmod 777 /usr/local/php/logs
[root@centos6 ~]# vim /usr/local/php/etc/php.ini
……
; Example:
error_log = /usr/local/php/logs/php_errors.log
; Log errors to syslog (Event Log on Windows).
……
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL & ~E_NOTICE
……
19. 如何在php中配置open_basedir, 是否可以在httpd.conf 中针对虚拟主机配置open_basedir?
答:[root@centos6 logs]# vim /usr/local/php/etc/php.ini
……
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
; http://php.net/open-basedir
open_basedir = /data/www/:/tmp/
……
可以在httpd.conf 中针对虚拟主机配置open_basedir:
[root@centos6 logs]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
……
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.aaa.com
ServerAlias www.bbb.com
php_admin_value open_basedir "/data/www/:/tmp/"
<Directory "/data/www">
AllowOverride None
Options None
……
20. 如何禁止php的函数exec
答:[root@centos6 ~]# vim /usr/local/php/etc/php.ini
……
; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
; http://php.net/disable-functions
disable_functions = eval,assert,popen,passthrn,escapeshllarg,escapes
hellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellc
md,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,d
l,pfsockopen,openlog,syslog,readlink,syslink,leak,popepassthru,strea
m_socket_server,popen,proc_open,proc_close
21. 我们以源码安装LAMP环境时,先安装哪个,后安装哪个?为什么呢?
答:php依赖于MySQL,还需要使用Apache的apxs工具,所以只要是最后安装PHP即可。
22. 怎么确定你的php.ini 在哪个目录下?
答:php -i |grep ‘Configuration File‘
23. 怎么确定你的php的extension_dir 在哪里?
答:php -i |grep ‘extension_dir‘
原文地址:http://rachy.blog.51cto.com/11428504/1892296