为什么下载源码包需要到官网上去下载?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么下载源码包需要到官网上去下载?相关的知识,希望对你有一定的参考价值。

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的用户验证

答:[[email protected] ~]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>

……

[[email protected] ~]# htpasswd -c /data/.htpasswd jack

New password:123456

Re-type new password:123456

Adding password for user jack

14. 如何配置apache的日志以及日志按天切割

答:[[email protected] ~]# 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的图片等静态文件的过期时间

答:[[email protected] ~]# 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文件没有执行权限

答:[[email protected] ~]# 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的域名重定向

答:[[email protected] ~]# 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的错误日志

答:[[email protected] ~]# mkdir /usr/local/php/logs

[[email protected] ~]# chmod 777 /usr/local/php/logs

[[email protected] ~]#  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?

答:[[email protected] 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:

[[email protected] logs]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

……

<VirtualHost *:80>

#  ServerAdmin [email protected]

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

答:[[email protected] ~]# 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‘


以上是关于为什么下载源码包需要到官网上去下载?的主要内容,如果未能解决你的问题,请参考以下文章

第17章 LAMP环境搭建

centos7安装apache源码包

CentOS 7下MariaDB源码包编译安装

spring如何下载源码和jar包

ubuntu怎么装java1.8

CentOS6.5编译安装Nginx