LANP源码安装注释版

本文介绍如何进行系统环境的基础部署与调整,包括检查系统状态、关闭非必要服务、调整网络参数等,并详细记录了LAMP环境从安装依赖到各组件编译配置的全过程。

系统环境部署及调整
1. 检查系统是否正常

# more/var/log/messages
(检查有无系统内核级错误信息)

# dmesg 
(检查硬件设备是否有错误信息)

# ifconfig
(检查网卡设置是否正确)

# ping www.163.com
(检查网络是否正常)

2. 关闭不需要的服务

# ntsysv


以下仅列出需要启动的服务,未列出的服务一律关闭:

crond
crond
Unix下的一个传统程序,该程序周期地运行用户调度的任务。比起传统的Unix版本,Vixie版本添加了不少属性,而且更安全,配置更简单

irqbalance
仅当服务器CPUS.M.P架构或支持双核心、HT技术时,才需开启,否则关闭

microcode_ctl
可以编码以及发送新的微代码到kernel以更新Intel IA32系列处理器


mysql 

一个快速高效可靠的轻型SQL数据库引擎

network
激活/关闭启动时的各个网络接口网络。

random
保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的。


sendmail


邮件服务器
sshd



OpenSSH守护进程。用于在不可信网络上提供安全的连接通道。

Syslog
syslog是操作系统提供的一种机制,守护程序通常使用这种机制将各种信息写到各个系统日志文件。通常应该启动该服务

3. TCP/IP网络参数进行调整,加强抗SYNFlood能力

# echo 'net.ipv4.tcp_syncookies = 1'>> /etc/sysctl.conf


# sysctl -p


4. 配置yum,导入CentOS RPM-GPG-KEY

#rpm --import  http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

Or rpm ?import/etc/pki/rpm-gpg/ RPM-GPG-KEY-CentOS-5

# yum list | tee /etc/yum.list


5. 重新启动系统

# init 6


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

#yum install ntp vim-enhanced gccgcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel
ncurses-devel zlib-devel libjpeg-devellibpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-develkernel


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

# crontab -e

加入一行:
15 3 * * */usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1

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

(1) GD2
gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。

# cd /usr/local/src


# wget http://www.libgd.org/releases/oldreleases/gd-2.0.34.tar.gz


# tar xzvf gd-2.0.34.tar.gz


# cd gd-2.0.34


# ./configure --prefix=/usr/local/gd2 
#配置安装路径

# make


# make install



(2) LibXML2
Libxml2是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MITLicense的免费开源软件。它除了支持c语言版以外,还支持c++PHPPascalRubyTcl等语言的绑定,能在WindowslinuxSolarisMacOsX等平台上运行

# cd /usr/local/src


# wget

http://xmlsoft.org/sources/libxml2-2.6.32.tar.gz

http://www.ismole.net/downloads/libxml2-2.6.32.tar.gz


# tar zvxf libxml2-2.6.32.tar.gz


# cd libxml2-2.6.32


# ./configure--prefix=/usr/local/libxml2


# make


# make install



(3) LibMcrytpt

libmcrypt是编码函数库,前身是mcrypt

# cd /usr/local/src


#wget http://voxel.dl.sourceforge.net/ ... mcrypt-2.5.8.tar.gz

http://jaist.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz

# tar zvxf libmcrypt-2.5.8.tar.gz


# cd libmcrypt-2.5.8

# ./configure --prefix=/usr/local/libmcrypt

# make


# make install



(4) Zlib
zlib是一套公开源代码的压缩,解压缩的函数库,提供了很多文件操作的方法,但是他不是一套类库,所以有兴趣的人都可以把他进行封装,实现自己的类库,和更高层的接口。

# cd /usr/local/src


# wget http://www.zlib.net/zlib-1.2.3.tar.gz 


http://down.itlearner.com/downsoft/tools/zlib-1.2.3.tar.gz

# tar xzvf zlib-1.2.3.tar.gz


# cd zlib-1.2.3


# ./configure --prefix=/usr/local/zlib


# make


# make install



(5) Apache
日志截断程序


Cronolog
是一个小巧高效的日志文件处理工具,可以实现自动的按规则生成周期性的日志文件
# cd /usr/local/src
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
# tar xzvf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure?prefix=/usr/local/cronolog
# make
# make install


10. 升级OpenSSLOpenSSH
Openssl包括与加密相关的管理工具和库文件,可以向其它软件包提供加密支持,尤其是 OpenSSH和网络浏览器(为了浏览安全的https网站).
OpenSSH是一组用于安全地访问远程计算机的连接工具。它可以作为 rlogin rsh rcp 以及 telnet
的直接替代品使用。更进一步,其他任何TCP/IP 连接都可以通过 SSH 安全地进行隧道/转发。OpenSSH
对所有的传输进行加密,从而有效地阻止了、连接劫持,以及其他网络级的攻击。

# cd /usr/local/src


# wget http://www.openssl.org/source/openssl-0.9.8h.tar.gz


# wget http://mirror.mcs.anl.gov/openssh/portable/openssh-5.0p1.tar.gz


# tar xzvf openssl-0.9.8h.tar.gz


# cd openssl-0.9.8h


# ./config --prefix=/usr/local/openssl


# make


# make test

# make install


# cd ..


# tar xzvf openssh-5.0p1.tar.gz


# cd openssh-5.0p1

# ./configure 
\

"--prefix=/usr" \
"--with-pam" \
"--with-zlib" \
"--sysconfdir=/etc/ssh"\
"--with-ssl-dir=/usr/local/openssl"\
"--with-zlib=/usr/local/zlib"\
"--with-md5-passwords"

# make


# make install





代码说明:

"--with-pam"
à启用PAM(PluggableAuthentication Modules)支持,使用此选项后还必须在sshd_config中开启UsePAM指令
"--sysconfdir=/etc/ssh"
à配置文件目录[PREFIX/etc]
"--with-md5-passwords"
à支持读取/etc/passwd/etc/shadow中经过MD5加密的口令

1)禁用SSH V1 协议

SSH
是指Secure ShellSSH协议族由IETFInternetEngineering Task ForceNetwork Working Group制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。SSH(SecureShell)是目前比较可靠的为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTPPop、甚至为PPP提供一个安全的"通道"
#vi /etc/ssh/sshd_config
找到:
#Protocol 2,1
改为:
Protocol 2

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

# useradd 
username
#
# passwd username
#
找到:

#PermitRootLoginyes


改为:
#
PermitRootLogin no
3)禁用GSSAPI
#vi /etc/ssh/sshd_config
找到以下两行,并将他们注释:
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

4)禁用DNS 名称解析
找到:
#UseDNS yes
改为:
UseDNS no

5)禁用客户端GSSAPI
   # vi /etc/ssh/ssh_config 

找到:GSSAPIAuthentication yes 将这行注释掉。
最后,确认修改正确后重新启动SSH 服务
  
# servicesshd restart
   # ssh -V 

确认 OpenSSH 以及 OpenSSL
版本正确。

以上SSH配置可利用以下脚本自动修改:
代码:
#init_ssh
ssh_cf="/etc/ssh/sshd_config" 
sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf
sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf
#client
sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf
echo "ssh is init is ok.............."




三、编译安装L.A.M.P环境
1. 下载软件

# cd /usr/local/src


# wget http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.gz

#wget http://mirrors.ntua.gr/MySQL/Dow ... ysql-5.0.51b.tar.gz

### LANP 主备配置教程及相关问题解决方案 LANP 是指 Linux、Apache、MySQL 和 PHP 的组合,是一种常见的 Web 应用服务器架构。以下是关于 LANP 主备配置以及常见错误的解决方案。 #### 一、LANP 主备配置概述 主备配置通常涉及两台或多台服务器之间的数据同步和负载均衡。这种配置可以提高系统的可用性和可靠性。主要步骤如下: 1. **设置主服务器** 安装并配置 Apache、MySQL 和 PHP,在主服务器上部署应用程序。 2. **设置备用服务器** 备用服务器应具有与主服务器相同的软件环境,并通过工具(如 rsync 或 DRBD)实现数据同步。 3. **数据库复制** 使用 MySQL 的主从复制功能来保持主备服务器上的数据库一致性[^1]。 4. **高可用性管理** 可以使用 Heartbeat 或 Pacemaker 来监控主服务器的状态,并在主服务器发生故障时自动切换到备用服务器。 5. **负载均衡器** 部署 HAProxy 或 Nginx 作为前端负载均衡器,分发流量至主备服务器。 --- #### 二、常见错误及其解决方案 ##### 1. 编译错误:`relocation R_X86_64_32 against 'a local symbol' cannot be used when making a shared object; recompile with -fPIC` 此问题是由于静态库未启用位置无关代码 (Position Independent Code, PIC) 导致的。可以通过修改 Makefile 文件解决该问题。 ```bash sed -i 's/CFLAGS =/CFLAGS += -fPIC/' Makefile ``` 或者手动编辑 `Makefile` 并添加 `-fPIC` 参数到 CFLAGS 中。 --- ##### 2. 防火墙阻止服务访问 如果遇到无法连接到 LANP 服务的情况,可能是防火墙或 SELinux 设置不当引起的。可以通过以下命令临时关闭防火墙: ```bash systemctl stop firewalld firewall-cmd --state ``` 永久禁用防火墙可执行以下操作: ```bash systemctl disable firewalld ``` 对于 SELinux,可通过以下方式将其设为宽容模式: ```bash setenforce 0 ``` 要使更改持久化,需编辑 `/etc/selinux/config` 文件并将 `SELINUX=enforcing` 改为 `SELINUX=permissive`[^2]。 --- ##### 3. Python 报错:`File "/path/to/file.py", line X, in ...` 此类错误通常是由于模块缺失或路径不正确引起。例如,当尝试导入 caffe 模块时可能出现类似报错: ```python ImportError: No module named caffe ``` 确保已正确安装依赖项,并验证模块路径是否被加入到 PYTHONPATH 中。例如: ```bash export PYTHONPATH=/home/wangxiao/Downloads/project/caffe-master/python:$PYTHONPATH ``` 此外,确认 so 动态链接库是否存在且权限正常[^3]。 --- ##### 4. Nginx 编译警告当作错误处理 Nginx 在编译过程中可能会将某些警告视为错误,从而中断构建过程。可以在其 Makefile 中调整选项以忽略这些警告。 打开对应的 Makefile 文件,找到类似以下内容: ```makefile CC_OPT = -g -O2 -Werror ... ``` 移除 `-Werror` 即可继续完成编译[^4]。 --- #### 三、示例脚本 以下是一个简单的 Shell 脚本用于检测主备状态并触发切换逻辑: ```bash #!/bin/bash MASTER_IP="192.168.1.1" BACKUP_IP="192.168.1.2" ping -c 1 $MASTER_IP > /dev/null 2>&1 if [ $? -ne 0 ]; then echo "$(date): Master is down! Switching to backup..." ip addr add $MASTER_IP dev eth0 else echo "$(date): Master is up." fi ``` 保存以上脚本并通过 cron 计划任务定期运行即可实现基本的心跳监测功能。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值