首页 > 代码库 > 第17章 LAMP环境搭建
第17章 LAMP环境搭建
1. 为什么下载源码包需要到官网上去下载?
简单说就是为了安全,如果是非官方下载的源码包,有可能被别有用心的人动过手脚,毕竟是源码的,任何人都可以修改代码。2. 64位机器是否可以安装32位rpm包?64位机器是否可以安装32位的mysql二进制免编译包?
64位机器是可以安装32位rpm包的,同样的64位机器也能安装32位的mysql二进制免编译包(centos5.x的确是支持,但是centos6.x不支持)。
3. 编译安装apache时, 如果不加--with-included-apr 会有什么问题?
会报错,Cannot use an external APR with the bundled APR-util,因为apr是一个底层的接口库,编译apache必须要有这个支持。
4. 编译php时,必须加上 --with-apxs2=/usr/local/apache2/bin/apxs 这是什么意思呢?
apxs是apache编译动态模块并自动配置加载到httpd.conf文件的一个工具,由于php也是作为apache的一个动态加载模块,我们编译php的目的就是为了生成这个模块,所以必须要指定apxs的地址。
5. 当配置好apache的配置文件后,如何检验配置文件是否正确?
/usr/local/apache2/bin/apachectl -t
6. 如何查看80端口是否启动?
netstat -lnp |grep ‘:80‘
7. 更改apache配置文件httpd.conf后,如何重新加载配置文件?
/usr/local/apache2/bin/apachectl graceful
8. 如何查看apache加载了哪些模块?
/usr/local/apache2/bin/apachectl -M
9. 怎么查看php加载了哪些模块?
/usr/local/php/bin/php -m
10. 简单描述静态加载和动态共享模块的区别。
不管编译httpd还是php,都会有一个静态模块和动态模块的概念。首先,动态和静态模块宏观上分析,静态会直接编译进httpd这个可执行文件内,而动态的模块是单独的一个文件;其次,静态模块是和httpd这个文件一同加载的,只要服务一开启就会加载所有的静态模块,而动态模块是根据需求什么时候用什么时候加载。
11. 当我们配置好lamp环境后,访问php程序无法解析,你如何去排查这个问题呢?
(1) apachectl -M 看是否加载了libphp5.so
(2) 如果没有加载,那查看/usr/local/apache2/modules/是否有libphp5.so,然后查看httpd.conf 中是否有LoadModule libphp5.so
(3) 再看httpd.conf中是否有 AddType application/x-httpd-php .php
(4) apache一定要重启服务
12. 如何配置apache的虚拟主机
vim httpd.conf
#Include conf/extra/httpd-vhosts.conf
把该行最前面的#去掉,然后修改:
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
改为
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
再 vim conf/extra/httpd-vhosts.conf 根据实际需求修改
13. 如何配置apache的用户验证
vim httpd.conf
在相应的虚拟主机配置文件段,加入
AllowOverride AuthConfig
AuthName "自定义的"
AuthType Basic
AuthUserFile /data/.htpasswd // 这个目录你可以随便写一个,没有限制
require valid-user
保存后,然后创建apache的验证用户 htpasswd -c /data/.htpasswd test
14. 如何配置apache的日志以及日志按天切割
在httpd.conf 在相应的虚拟主机配置段,加入
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/www.yourdomain.com-access_%Y%m%d.log 86400" combined
注意,需要写成绝对路径,写成相对的路径可能不生效
15. 如何配置apache的图片等静态文件的过期时间
httpd.conf 中加入
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
16. 如何限定某个目录下的php文件没有执行权限
vim httpd.conf
在相关的虚拟主机段,加入
php_admin_flag engine off
其中 /www/htdocs/path 为要限制的目录
17. 如何配置apache的域名重定向
要把访问域名 www.domain1.com 的域名转发到 www.domain2.com 上
实现:
在相关的虚拟主机中增加
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteRule ^(.*)$ http://www.domain2.com/
18. 如何配置php的错误日志
vim php.ini 检查并配置如下两项
log_errors = On
error_log = logs/error.log
19. 如何在php中配置open_basedir, 是否可以在httpd.conf 中针对虚拟主机配置open_basedir?
vim php.ini
加入 open_basedir=/var/www/
httpd.conf中也可以针对虚拟主机限制openbasedir:
在相对应的虚拟主机配置文件中加入:
php_admin_value open_basedir "/var/www/htdocs"
20. 如何禁止php的函数exec
vim php.ini 找到
disable_functions =
改为
disable_functions = exec 如果是多个函数,可以在exec后面继续增加函数名用逗号分开即可
21. 我们以源码安装LAMP环境时,先安装哪个,后安装哪个?为什么呢?
安装顺序 1、mysql 2、apache 3、php 也可以是 apache mysql php
把php放到最后,这是因为安装php时,需要指定mysql安装目录,也需要指定apache的apxs工具
22. 怎么确定你的php.ini 在哪个目录下?
php -i |grep ‘Configuration File‘
23. 怎么确定你的php的extension_dir 在哪里?
php -i |grep ‘extension_dir‘
[R=301,L]
如果是多个域名重定向到一个域名
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com[OR]
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteRule ^(.*)$ http://www.domain2.com/
扩展阅读:
apache设置
什么是etag工作原理及配置 http://www.lishiming.net/thread-852-1-2.html
apache的两种工作模式详解 http://www.lishiming.net/thread-838-1-2.html
如何使用apache的 work模式还是 prefork 模式 http://www.lishiming.net/thread-944-1-1.html
apache设置自定义header http://www.lishiming.net/thread-830-1-2.html
Apache设置禁止访问.txt文件 http://www.lishiming.net/thread-91-1-1.html
apache限制某个目录下的php文件没有执行权限 http://www.lishiming.net/thread-1000-1-1.html
Apache防盗链设置 http://www.lishiming.net/thread-71-1-1.html
apache配置多个域名指向的虚拟主机访问总是指向第一个虚拟主机 http://www.lishiming.net/thread-491-1-1.html
apache如何在虚拟主机中实现用户验证 http://www.lishiming.net/thread-554-1-1.html
htpasswd 默认创建的密码只有前8位有效 http://www.lishiming.net/thread-1248-1-1.html
apache的keepalive和keepalivetimeout http://www.lishiming.net/thread-556-1-1.html
apache 查看加载哪些模块 http://www.lishiming.net/thread-564-1-1.html
apache 代理模块 proxy应用 http://www.lishiming.net/thread-565-1-1.html
使apache的日志文件里不记录图片文件 http://www.lishiming.net/thread-561-1-1.html
apache 日志中记录代理IP以及真实客户端IP http://www.lishiming.net/thread-960-1-1.html
apache只记录指定URI的日志 http://www.lishiming.net/thread-981-1-1.html
apache日志记录客户端请求的域名 http://www.lishiming.net/thread-1037-1-1.html
apache 日志切割问题 http://www.lishiming.net/thread-566-1-1.html
apache nameserver 两个如何设置 http://www.lishiming.net/thread-567-1-1.html
如何设置httpd-mpm.conf 的参数呢 http://www.lishiming.net/thread-579-1-1.html
apache某个虚拟主机不启用gzip http://www.lishiming.net/thread-595-1-1.html
apache 的域名重定向 http://www.lishiming.net/thread-603-1-1.html
apache的order allow deny http://www.lishiming.net/thread-832-1-1.html
apache的server status 功能 http://www.lishiming.net/thread-847-1-1.html
apache的扩展模块安装 http://www.lishiming.net/thread-848-1-1.html
apache mod_proxy 扩展模块安装 http://www.lishiming.net/thread-939-1-1.html
mod_usertrack.so 的扩展安装以及使用 http://www.lishiming.net/thread-951-1-1.html
apache的proxy代理总访问后端web的第一个虚拟主机 http://www.lishiming.net/thread-941-1-1.html
apache 的默认编码 http://www.lishiming.net/thread-905-1-1.html
apache 设置图片等静态文件的过期时间 http://www.lishiming.net/thread-912-1-1.html
通过http上传大文件超时的问题 http://www.lishiming.net/thread-918-1-1.html
httpd.conf文件如何配置KeepAlive http://www.lishiming.net/thread-919-1-1.html
让你的apache记录一个页面的访问时间 http://www.lishiming.net/thread-936-1-1.html
apache 安装好后如何查看编译时的参数 http://www.lishiming.net/thread-942-1-1.html
Apache模块动态加载和静态加载 http://www.lishiming.net/thread-998-1-1.html
%{REQUEST_FILENAME} -f 不生效 http://www.lishiming.net/thread-1017-1-1.html
apache 配置https 支持ssl http://www.lishiming.net/thread-1029-1-1.html
apache 限制指定user_agent http://www.lishiming.net/thread-1033-1-1.html
apache 限制某些目录不能访问通过rewrite实现 http://www.lishiming.net/thread-3587-1-1.html
apache rewrite 出现死循环 http://www.lishiming.net/thread-1043-1-1.html
apache 对静态文件的过期缓存 http://www.lishiming.net/thread-5357-1-1.html
apache 针对访问uri 限制ip http://www.lishiming.net/thread-5365-1-1.html
针对apache的虚拟主机开启php短标签 http://www.lishiming.net/thread-5370-1-1.html
apache中的php_admin_value,php_admin_flag, php_value,php_flag http://www.lishiming.net/thread-5369-1-1.html
常见apache php_admin_value php_admin_flag 设置 http://www.lishiming.net/thread-5372-1-1.html
apache 开启压缩功能 http://www.lishiming.net/thread-5528-1-1.html
php设置
php.ini 中开启短标签 http://www.lishiming.net/thread-120-1-1.html
memcache和memcached在php中的应用 http://www.lishiming.net/thread-45-1-1.html
memcached 内存溢出 http://www.lishiming.net/thread-346-1-1.html
tidy 安装 php扩展模块 http://www.lishiming.net/thread-542-1-1.html
让你的php打开fsockopen函数 http://www.lishiming.net/thread-898-1-1.html
php.ini 中的mbstring设置编码问题 http://www.lishiming.net/thread-906-1-1.html
php中curl不支持https的解决办法 http://www.lishiming.net/thread-1035-1-1.html
open_basedir 限定php解析目录 http://www.lishiming.net/thread-3591-1-1.html
开启php的错误日志记录 http://www.lishiming.net/thread-1493-1-1.html
php.ini中应该禁止的一些函数 http://www.lishiming.net/thread-5706-1-1.html
第17章 LAMP环境搭建