热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下环境[LAMP]搭建推荐教程

在网站根目录放置phpinfo.php脚本,检查phpinfo中的各项信息是否正确。确认PHP能够正常工作后,在php.ini中进行设置提升PHP安全性。

一、系统约定

软件源代码包存放位置:/usr/local/src
源码包编译安装位置(prefix):/usr/local/software_name
脚本以及维护程序存放位置:/usr/local/sbin
MySQL 数据库位置:/var/lib/MySQL(可按情况设置)
Apache 网站根目录:/home/www/wwwroot(可按情况设置)
Apache 虚拟主机日志根目录:/home/www/logs(可按情况设置)
Apache 运行账户:www:www

二、系统环境部署及调整

1. 检查系统是否正常

  1. # more /var/log/messages(检查有无系统级错误信息)
  2. # dmesg(检查硬件设备是否有错误信息)
  3. # ifconfig(检查网卡设置是否正确)
  4. # ping www.163.com(检查网络是否正常)

 2. 关闭不需要的服务

					
  1. # ntsysv
  2. 以下仅列出需要启动的服务,未列出的服务一律推荐关闭:
  3. atd
  4. crond
  5. irqbalance
  6. microcode_ctl
  7. network
  8. sendmail
  9. sshd
  10. syslog

 3. 重新启动系统

																
  1. # init 6

 4. 配置 vim

																
  1. # vi /root/.bashrc

在 alias mv=’mv -i’ 下面添加一行:alias vi=’vim’ 保存退出。

																
  1. # echo 'syntax on' > /root/.vimrc

 5. 使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)

																
  1. # yum install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex
  2. bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel kerne

6. 定时校正服务器时钟,定时与中国国家授时中心授时服务器同步

																			
  1. # crontab -e

加入一行:

																			
  1. */30 * * * * ntpdate 210.72.145.44

 7. 源码编译安装所需包 (Source)

需要下载的文件

																			
  1. gd-2.0.34.tar.gz
  2. libxml2-2.6.30.tar.bz2
  3. libmcrypt-2.5.8.tar.bz2
  4. cronolog-1.7.0-beta.tar.gz
  5. openssl-0.9.8e.tar.gz (可选)
  6. openssl-0.9.8e.tar.gz (可选)

7.1 GD2

																										
  1. # cd /usr/local/src
  2. # tar xzvf gd-2.0.34.tar.gz
  3. # cd gd-2.0.34
  4. # ./configure --prefix=/usr/local/gd2
  5. # make
  6. # make install

7.2 LibXML2

																																	
  1. # cd /usr/local/src
  2. # tar xjvf libxml2-2.6.30.tar.bz2
  3. # cd libxml2-2.6.30
  4. # ./configure --prefix=/usr/local/libxml2
  5. # make
  6. # make install

7.3 LibMcrypt

																																								
  1. # cd /usr/local/src
  2. # tar xjvf libmcrypt-2.5.8.tar.bz2
  3. # cd libmcrypt-2.5.8
  4. # ./configure –prefix=/usr/local/libmcrypt
  5. # make
  6. # make install

7.4 Apache日志截断程序

																																															
  1. # cd /usr/local/src
  2. # tar xzvf cronolog-1.7.0-beta.tar.gz
  3. # cd cronolog-1.7.0-beta
  4. # ./configure –prefix=/usr/local/cronolog
  5. # make
  6. # make install

 8. 升级OpenSSL和OpenSSH

																																																						
  1. # cd /usr/local/src
  2. # tar xzvf openssl-0.9.8e.tar.gz
  3. # cd openssl-0.9.8e
  4. # ./config --prefix=/usr/local/openssl
  5. # make
  6. # make test
  7. # make install
  8. # cd ..
  9. # tar xzvf openssh-4.7p1.tar.gz
  10. # cd openssh-4.7p1
  11. # ./configure
  12. "--prefix=/usr"
  13. "--with-pam"
  14. "--with-zlib"
  15. "--syscOnfdir=/etc/ssh"
  16. "--with-ssl-dir=/usr/local/openssl"
  17. "--with-md5-passwords"
  18. # make
  19. # make install

(1)禁用 SSH V1 协议 找到:

																																																																										
  1. #Protocol 2,1

改为:

																																																																										
  1. Protocol 2

(2)禁止root直接登录,此处先建立一个普通系统用户:

																																																																										
  1. # useradd username
  2. # passwd username

找到:

																																																																													
  1. #PermitRootLogin yes

改为:

																																																																													
  1. PermitRootLogin no

(3)禁用服务器端GSSAPI,找到以下两行,并将它们注释:

																																																																													
  1. GSSAPIAuthentication yes
  2. GSSAPICleanupCredentials yes

(4)禁用 DNS 名称解析,找到:

																																																																																
  1. #UseDNS yes

改为:

																																																																																
  1. UseDNS no

(5)禁用客户端 GSSAPI

																																																																																
  1. # vi /etc/ssh/ssh_config

找到:

																																																																																
  1. GSSAPIAuthentication yes

将这行注释掉。
最后,确认修改正确后重新启动 SSH 服务

																																																																																
  1. # service sshd restart
  2. # ssh -v

确认 OpenSSH 以及 OpenSSL 版本正确。

三、编译安装L.A.M.P环境

1. 下载软件

																																																																																			
  1. # cd /usr/local/src

下载文件mysql,apache,php,请到下面网址下载相应软件

																																																																																			
  1. http://www.apache.org/ (推荐版本:2.2.21)
  2. http://www.php.net/ (推荐版本:5.2.17)
  3.  
  4. http://www.mysql.com/

 2. 编译安装MySQL

																																																																																								
  1. # tar xzvf MySQL-5.0.45-linux-i686-glibc23.tar.gz
  2. # mv MySQL-5.0.45-linux-i686-glibc23 /usr/local/
  3. # ln -s /usr/local/ MySQL-5.0.45-linux-i686-glibc23 /usr/local/MySQL
  4. # useradd MySQL
  5. # chown -R MySQL:root /usr/local/MySQL/
  6. # cd /usr/local/MySQL
  7. # ./scripts/MySQL_install_db --user=MySQL
  8. # cp ./support-files/MySQL.server /etc/rc.d/init.d/MySQLd
  9. # chown root:root /etc/rc.d/init.d/MySQLd
  10. # chmod 755 /etc/rc.d/init.d/MySQLd
  11. # chkconfig --add MySQLd
  12. # chkconfig --level 3 5 MySQLd on
  13. # cp ./support-files/my-huge.cnf /etc/my.cnf
  14. # mv /usr/local/MySQL/data /var/lib/MySQL
  15. # chown -R MySQL:MySQL /var/lib/MySQL/
  16. # vi /etc/my.cnf

 3. 编译安装Apache

																																																																																																									
  1. # cd /usr/local/src
  2. # tar xjvf httpd-2.2.21.tar.bz2
  3. # cd httpd-2.2.21
  4. # ./configure
  5. "--prefix=/usr/local/apache2"
  6. "--with-included-apr"
  7. "--enable-so"
  8. "--enable-deflate=shared"
  9. "--enable-expires=shared"
  10. "--enable-rewrite=shared"
  11. "--enable-static-support"
  12. "--disable-userdir"
  13. # make
  14. # make install
  15. # echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local

 4. 编译安装PHP

																																																																																																																									
  1. # cd /usr/local/src
  2. # tar xjvf php-5.2.17.tar.bz2
  3. # cd php-5.2.17
  4. # ./configure
  5. "--prefix=/usr/local/php"
  6. "--with-apxs2=/usr/local/apache2/bin/apxs"
  7. "--with-config-file-path=/usr/local/php/etc"
  8. "--with-MySQL=/usr/local/MySQL"
  9. "--with-libxml-dir=/usr/local/libxml2"
  10. "--with-gd=/usr/local/gd2"
  11. "--with-jpeg-dir"
  12. "--with-png-dir"
  13. "--with-bz2"
  14. "--with-freetype-dir"
  15. "--with-iconv-dir"
  16. "--with-zlib-dir "
  17. "--with-openssl=/usr/local/openssl"
  18. "--with-mcrypt=/usr/local/libmcrypt"
  19. "--enable-soap"
  20. "--enable-gd-native-ttf"
  21. "--enable-ftp"
  22. "--enable-mbstring"
  23. "--enable-exif"
  24. "--disable-ipv6"
  25. "--disable-cgi"
  26. "--disable-cli"
  27. # make
  28. # make install
  29. # mkdir /usr/local/php/etc
  30. # cp php.ini-dist /usr/local/php/etc/php.ini

 5. 整合Apache与PHP

																																																																																																																																																								
  1. # vi /usr/local/apache2/conf/httpd.conf

找到:

																																																																																																																																																								
  1. AddType application/x-gzip .gz .tgz

在该行下面添加

																																																																																																																																																								
  1. 1 AddType application/x-httpd-php .php

找到:

																																																																																																																																																								
  1. DirectoryIndex index.html

将该行改为

																																																																																																																																																								
  1. DirectoryIndex index.html index.htm index.php

找到:

																																																																																																																																																								
  1. #Include conf/extra/httpd-mpm.conf
  2. #Include conf/extra/httpd-info.conf
  3. #Include conf/extra/httpd-vhosts.conf
  4. #Include conf/extra/httpd-default.conf

去掉前面的“#”号,取消注释。注意:以上 4 个扩展配置文件中的设置请按照相关原则进行合理配置!修改完成后保存退出。

																																																																																																																																																													
  1. # /usr/local/apache2/bin/apachectl restart

 6. 查看确认L.A.M.P环境信息、提升 PHP 安全性

在网站根目录放置 phpinfo.php 脚本,检查phpinfo中的各项信息是否正确。
确认 PHP 能够正常工作后,在 php.ini 中进行设置提升 PHP 安全性。

																																																																																																																																																													
  1. # vi /etc/php.ini

找到:

																																																																																																																																																													
  1. disable_functions =

设置为:

																																																																																																																																																													

推荐阅读
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
author-avatar
王小贱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有