您好,登錄后才能下訂單哦!
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的虛擬主機(Apache的主配置文件: /usr/local/apache2/conf/httpd.conf)
vim httpd.conf
#Include conf/extra/httpd-vhosts.conf
把該行最前面的#去掉,然后修改:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
改為
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
再 vim conf/extra/httpd-vhosts.conf 根據實際需求修改
13. 如何配置apache的用戶驗證
vi httpd.conf
在相應的虛擬主機配置文件段,加入
<Directory *>
AllowOverride AuthConfig
AuthName “自定義的”
AuthType Basic
AuthUserFile /data/.htpasswd // 這個目錄你可以隨便寫一個,沒有限制
require valid-user
</Directory>
保存后,然后創建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 中加入
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType p_w_picpath/gif “access plus 1 days”
ExpiresByType p_w_picpath/jpeg “access plus 24 hours”
ExpiresByType p_w_picpath/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”
</IfModule>
16. 如何限定某個目錄下的php文件沒有執行權限
vim httpd.conf
在相關的虛擬主機段,加入
<Directory /www/htdocs/path>
php_admin_flag engine off
</Directory>
其中 /www/htdocs/path 為要限制的目錄
17. 如何配置apache的域名重定向
要把訪問域名 www.domain1.com 的域名轉發到 www.domain2.com 上
實現:
在相關的虛擬主機中增加
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteRule ^(.*)$ http://www.domain2.com/$1 [R=301,L]
</IfModule>
如果是多個域名重定向到一個域名
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com[OR]
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteRule ^(.*)$ http://www.domain2.com/$1 [R=301,L]
</IfModule>
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環境時,先安裝哪個,后安裝哪個?為什么呢?
安裝順序可以是 mysql apache 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’
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。