热门标签 | 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 =

设置为:

																																																																																																																																																													

推荐阅读
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 在Linux系统中,为了提高安全性,可以通过设置命令执行超时和用户超时注销来防止因用户长时间未操作而带来的安全隐患。具体而言,可以通过编辑 `/etc/profile` 文件,添加或修改相关参数,确保用户在指定时间内无操作后自动注销。此外,还可以利用 `timeout` 命令来限制特定命令的执行时间,进一步增强系统的稳定性和安全性。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 1. 设置用户密码:使用 `slappasswd` 工具生成加密密码,确保账户安全。具体步骤如下:输入命令 `slappasswd -s NewPassword`,系统将提示重新输入新密码,并生成加密后的哈希值 {SSHA}xxxxxxxxxxxxxxxxx。2. 编写配置文件:编辑 `vildapus` 配置文件,添加必要的用户账户信息,以确保新用户能够顺利登录系统。 ... [详细]
  • 基于域名、端口和IP的虚拟主机构建方案
    本文探讨了在单台物理服务器上构建多个Web站点的虚拟主机方案,详细介绍了三种主要的虚拟主机类型:基于域名、基于IP地址和基于端口的虚拟主机。每种类型的实现方式及其优缺点均进行了深入分析,为实际应用提供了全面的技术指导。 ... [详细]
  • 公司计划部署邮件服务器,考虑到已有域名,决定自行搭建内部邮件服务器。经过综合考量,最终选择在Linux环境中进行搭建,并记录了相关配置和实践过程。本文将详细介绍Postfix的基本设置步骤和实践经验,帮助读者快速掌握邮件服务器的搭建方法。 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
  • 本文详细介绍了如何在 Grafana 中独立于 Alertmanager 配置邮件和微信告警。具体步骤包括配置 SMTP 服务器以实现邮件告警,以及设置微信告警的集成方式。通过这些配置,用户可以更灵活地管理和接收来自 Grafana 的告警通知,确保及时响应系统异常。文章还提供了详细的配置示例和常见问题的解决方案,帮助用户顺利完成设置。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
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社区 版权所有