当前位置:  首页  >  PHP教程  >  PHP 基础  >  环境

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 =

设置为:

																																																																																																																																																													
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有