Linux+Nginx+Apache+PHP+Mysql安装配置笔记



#安装时钟同步软件
yum install -y ntpdate 
#同步时间
ntpdate us.pool.ntp.org


#设置定时同步服务器时间
crontab -e
#在文件里加入以下内容(30分钟同步一次):
0-59/30 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP




#通用安装
yum -y install make wget apr* autoconf automake gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd  kernel keyutils  patch  perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch




#vi 常用命令:
G  #光标定位至文件末尾
1G #光标定位至文件开头




#将文件夹data复制到/var/www/html/路径下
cp -r /usr/local/data /var/www/html/


#删除文件夹及文件
rm -rf /var/www/html/data




#虚拟机复制后网络卡配置问题解决:
#1)修改机器名
vi /etc/sysconfig/network


#2)修改网卡设置,注释掉eth0第一行,将修改eth1为eth0
vi /etc/udev/rules.d/70-persistent-net.rules




#打开防火墙80端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save




#设置服务自动启动
chkconfig httpd on










#约定:
#1、将所有源码下载到/usr/local/src/目录下
#2、将所有源码编译安装在/usr/local/目录下

一、安装Apache、PHP、eAccelerator、php-memcache


#1、安装Apache
cd /usr/local/src


#1.1、安装Apache的依赖库Apr
wget http://mirror.bit.edu.cn/apache/apr/apr-1.4.6.tar.gz
tar -zxvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure --prefix=/usr/local/apr
#编译遇到的错误:
rm: cannot remove `libtoolT': No such file or directory
#解决办法:直接打开 configure,把 $RM "$cfgfile" 这行删除掉,重新运行 ./configure 就可以了


make
make install




#1.2、安装Apache的依赖库Apr-util
wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.5.2.tar.gz
tar -zxvf apr-util-1.5.2.tar.gz
cd apr-util-1.5.2
./configure --prefix=/usr/local/apr-util -–with-apr=/usr/local/apr
make
make install




#1.3、编译安装Apache
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.2.24.tar.gz
tar -zxvf httpd-2.2.24.tar.gz
cd httpd-2.2.24
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl --enable-ssl --enable-module=so --enable-rewrite --enable-cgid --enable-cgi
make
make install




#1.4、验证安装
#修改配置文件
vi /usr/local/apache/conf/httpd.conf
#启动httpd服务
/usr/local/apache/bin/apachectl -k start
#打开防火墙端口80,使用浏览器访问,看到输出:“It works!”,安装成功!


#1.5、设置httpd服务自动启动


#1.5.1、配置环境变量
vi /etc/profile
#在文件末尾添加下面内容:
export PATH=$PATH:/usr/local/apache/bin


#1.5.2、把apache加入为系统启动项
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd


#1.5.3、编辑启动配置文件
vi /etc/init.d/httpd
#在#!/bin/sh下面加入以下内容(注意前面的#号也要是文件内容):


#chkconfig:345 85 15
#description:start and stop the apache http server


:x


#加入到服务表列,并设为自动启动
chmod +x /etc/init.d/httpd #赋可执行权限
chkconfig --add httpd #添加到服务列表
chkconfig httpd on   #设置开机启动


#安装好后,进行并发测试:
ab -n 1000 -c 10 http://localhost/


#2、安装PHP
#编译前先安装依赖:
yum install libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install




wget http://www.php.net/get/php-5.4.16.tar.gz/from/hk2.php.net/mirror
tar -zvxf php-5.4.16.tar.gz
cd php-5.4.16
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache/bin/apxs  --with-gd  --with-iconv --with-freetype --with-jpeg --with-png --with-zlib --with-libxml --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-force-cgi-redirect --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin --enable-session --with-mcrypt
make
make install


#复制php配置文件到安装目录
mkdir /usr/local/php5/etc
cp php.ini-production /usr/local/php5/etc/php.ini
#删除系统自带的配置文件
rm -rf /etc/php.ini
#创建配置文件软链接
ln -s  /usr/local/php5/etc/php.ini   /etc/php.ini
#编辑
vi /usr/local/php5/etc/php.ini


找到:;open_basedir =
修改为:open_basedir = .:/tmp/   #防止php木马跨站
找到:;date.timezone =
修改为:date.timezone = PRC




配置apache支持php
vi /usr/local/apache/conf/httpd.conf  #编辑apache配置文件


在LoadModule php5_module modules/libphp5.so这一行下面添加:
AddType application/x-httpd-php .php  (注意:php .php这个点前面有一个空格)




#重启Apache
service httpd restart








二、安装MYSQL、Memcached






三、安装Nginx
wget http://nginx.org/download/nginx-1.4.1.tar.gz
tar -zxvf nginx-1.4.1.tar.gz
cd nginx-1.4.1
./configure --prefix=/usr/local/nginx
make
make install




#3.1、Nginx配置
vi /usr/local/nginx/conf/nginx.conf
修改以下部份内容:


server {
  listen 80;
  server_name localhost;
  
  upstream clusterApache {    
#服务器列表 weight参数是权重,权重越高被分配到的几率越大
server 192.168.1.214:80 weight=1;    
server 192.168.1.215:80 weight=1;  
  }
  
  location / {
 root /var/www/;
 index index.php index.html;


 # Nginx找不到文件时,转发请求给后端Apache
 error_page 404 @proxy;


 # css, js 静态文件设置有效期7天
 location ~ .*\.(js|css)$ {
access_log off;
expires  7d;
 }


 # 图片设置有效期3天
 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
access_log off;
expires  3d;
 }
  }


  # 动态文件.php请求转发给后端Apache
  location ~ \.php$ {
#proxy_redirect off;
#proxy_pass_header Set-Cookie;
#proxy_set_header Cookie $http_cookie;


 # 传递真实IP到后端
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
 proxy_pass http://clusterApache;
  }


  location @proxy {
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
 proxy_pass http://clusterApache;
  }
}


#3.2、启动、关闭与重启


#3.2.1、检查Nginx配置文件的正确性
/usr/local/nginx/sbin/nginx -t
#如果看到以下输出内容,说明配置正确:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful


#3.2.2、查看Nginx版本
/usr/local/nginx/sbin/nginx -v
 
#3.2.3、设置自动启动


#创建启动文件
vi /etc/init.d/nginx


#加入以下内容:


#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
#              It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
   echo "nginx already running...."
   exit 1
fi
   echo -n $"Starting $prog: "
   daemon $nginxd -c ${nginx_config}
   RETVAL=$?
   echo
   [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
   return $RETVAL
}
# Stop nginx daemons functions.
stop() {
        echo -n $"Stopping $prog: "
        killproc $nginxd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
    echo -n $"Reloading $prog: "
    #kill -HUP `cat ${nginx_pid}`
    killproc $nginxd -HUP
    RETVAL=$?
    echo
}
# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL












#设置文件权限
chmod +x /etc/init.d/nginx
#添加到有服务列表
chkconfig --add nginx
#查看服务
chkconfig nginx --list
#设服务自动启动
chkconfig nginx on


#使用以下命令控制服务
service nginx start 
service nginx stop 
service nginx restart 
service nginx reload 











你可能感兴趣的:(LNAMP)