lamp环境应用实践

LAMP之apache2.4.33

1. apache2.4.33安装

检查安装apache所需的软件

[root@Poppy tools]# yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

报错区少apr
configure: error: APR not found.  Please read the documentation.
http://archive.apache.org/dist/
[root@Poppy tools]# wget http://archive.apache.org/dist/apr/apr-1.6.3.tar.gz
[root@Poppy tools]# tar -xf apr-1.6.3.tar.gz
[root@Poppy tools]# cd apr-1.6.3
[root@Poppy tools]# ./configure --prefix=/application/apr-1.6.3
make && make install

报错缺少apr-util
configure: error: APR-util not found.  Please read the documentation.
[root@Poppy tools]# wget http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz
[root@Poppy tools]# tar -zxf apr-util-1.6.1.tar.gz
[root@Poppy tools]# cd apr-util-1.6.1
[root@Poppy tools]# ./configure --prefix=/application/apr-util-1.6.1 --with-apr=/application/apr-1.6.3/
[root@Poppy tools]# make && make install

http包下载安装

www.apache.org   ---   https://mirrors.tuna.tsinghua.edu.cn/apache/
[root@Poppy tools]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.33.tar.gz
[root@Poppy tools]# tar xf httpd-2.4.33.tar.gz 
[root@Poppy tools]# cd httpd-2.4.33
[root@Poppy tools]# ./configure --prefix=/application/apache2.4.33 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite --with-apr=/application/apr-1.6.3/ --with-apr-util=/application/apr-util-1.6.1/
[root@Poppy tools]# make & make install
[root@Poppy httpd-2.4.33]# ln -s /application/apache2.4.33/ /application/apache
--enable-deflate   压缩
--enable-expires   客户端缓存

apache目录跟nginx目录对比

此目录相当于nginx的html目录,存放网站文件
[root@Poppy httpd-2.4.33]# ll /application/apache/htdocs/
-rw-r--r-- 1 root root 45 Jun 12  2007 index.html
[root@Poppy htdocs]# mkdir bbs www blog

此目录相当于nginx的conf目录,存放配置文件
[root@Poppy conf]# pwd
/application/apache/conf
[root@Poppy conf]# ls
extra  httpd.conf  magic  mime.types  original

2. apache虚拟主机配置

[root@Poppy conf]# vi httpd.conf 
# Virtual hosts. 477     打开虚拟主机文件
Include conf/extra/httpd-vhosts.conf 
[root@Poppy extra]# pwd
/application/apache/conf/extra
[root@Poppy extra]# ls httpd-vhosts.conf 
httpd-vhosts.conf
[root@Poppy extra]# cat httpd-vhosts.conf |grep -v "#"    虚拟主机配置

<VirtualHost *:80>
    ServerAdmin 111@qq.com                                邮箱
    DocumentRoot "/application/apache2.4.33/htdocs/www"   存放默认页的目录
    ServerName www.joker.com                              好像只能添加一个域名,不能后接多个
    ServerAlias joker.com                                 别名
    ErrorLog "logs/www-error_log"                         错误日志
    CustomLog "logs/www-access_log" common                访问日志
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin 111@qq.com
    DocumentRoot "/application/apache2.4.33/htdocs/blog"
    ServerName blog.joker.com
    ServerAlias blog.com
    ErrorLog "logs/blog-error_log"
    CustomLog "logs/blog-access_log" common
</VirtualHost>

3. 检查语法和启动

[root@Poppy extra]# /application/apache/bin/apachectl -t      检查语法
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.0.0.101. Set the 'ServerName' directive globally to suppress this message
Syntax OK
[root@Poppy conf]# vi httpd.conf 
[root@Poppy conf]# cat -n httpd.conf |grep 194
194  ServerName 127.0.0.1:80                     可以屏蔽上面的信息
[root@Poppy conf]# /application/apache/bin/apachectl -t
Syntax OK
[root@Poppy conf]# /application/apache/bin/apachectl start    启动
[root@Poppy conf]# /application/apache/bin/apachectl graceful  # reload       优雅的重启

4. 修改默认访问是目录

因为apache默认是以目录呈现给用户访问的,我们需要注销来给用户显示页面

[root@Poppy conf]# vi httpd.conf
232 # Options Indexes FollowSymLinks  与nginx autoindex on功能是一样的
[root@Poppy extra]# echo "apache www" > /application/apache/htdocs/www/index.html
[root@Poppy extra]# echo "apache blog" > /application/apache/htdocs/blog/index.html  

客户端访问
[root@joker ~]# curl www.joker.com
apache www
[root@joker ~]# curl blog.joker.com
apache blog

LAMP之php5.3.27

1. php5.3.27安装

检查安装PHP所需的lib库

PHP程序在开发及运行时会调用一些诸如zlib,gd等函数库,因此需要确认lib库是否已经安装

[root@Poppy ~]# rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel 
libjpeg-turbo-devel-1.2.90-5.el7.x86_64
zlib-devel-1.2.7-17.el7.x86_64
libxml2-devel-2.9.1-6.el7_2.3.x86_64
libiconv-devel 没有安装成功,因为默认yum源没有此包

[root@Poppy ~]# rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
libcurl-devel-7.29.0-46.el7.x86_64
freetype-devel-2.4.11-15.el7.x86_64
libpng-devel-1.5.13-7.el7_2.x86_64
libxslt-devel-1.1.28-5.el7.x86_64
gd-devel-2.0.35-26.el7.x86_64

其中:libjpeg-turbo-devel是早期的libjpeg-devel的新名字,libcurl-devel是早期curl-devel的新名字
提示:库文件一般安装 *-devel包,就会把*安装,例如安装gd-devel,就会把gd安装
     这些lib不是必须安装,但是目前企业环境下一般都需要安装的,否则,php程序运行时会出现问题,例如验证码

yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel 
yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

我们通过编译安装上面没有安装成功的库libiconv-devel 
[root@Poppy tools]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
[root@Poppy tools]# tar -zxf libiconv-1.14.tar.gz
[root@Poppy tools]# cd libiconv-1.14
[root@Poppy tools]# ./configure --prefix=/application/libiconv-1.14/
[root@Poppy tools]# make && make install
[root@Poppy tools]# ln -s /application/libiconv-1.14/ /application/libiconv
[root@Poppy tools]# rm -fr libiconv-1.14
报错:
In file included from progname.c:26:0:
./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
^
make[2]: *** [progname.o] Error 1
make[2]: Leaving directory `/usr/local/src/zabbix-2.4.7/libiconv-1.14/srclib'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/local/src/zabbix-2.4.7/libiconv-1.14/srclib'
make: *** [all] Error 2
解决:
[root@Poppy tools]# vi srclib/stdio.in.h
找到698行,_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");*/
替换成
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
#endif
......即可

安装libmcrypt库
这是一个使用动态加载模块化的libmcrypt,libmcrypt对于在程序运行时添加/移除算法是有用的,libmcrypt目前不再被官方支持,其软件地址为http://mcrypt.hellug.gr/lib/,编译PHP的过程中,libmcrypt库不是必须要安装的包
Centos默认的yum源里面没有libmcrypt-devel,因此需要事先配置epel第三方yum源
[root@Poppy ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@Poppy ~]# yum -y install libmcrypt-devel                                               


安装mhash加密扩展库
mhash是基于离散数据原理不可逆向的PHP加密方式扩展库,其在默认情况下不会开启。mhash可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。它为PHP提供了多种散列算法,如MD5,SHA1,GOST等,可以通过MHASH_hashname()查看其支持的算法有哪些
需要注意的是:
1. 该扩展不能提供最新的散列算法
2. 该扩展结果原则上运算不可逆
[root@Poppy ~]# yum -y install libmcrypt-devel                                               


安装mcrypt加密扩展库
PHP程序员在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障,PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库mcrypt和mhash
其中,mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以将密文还原
可以说,mcrypt是PHP里面重要的加密支持扩展库,该库默认情况下不开启
mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示
[root@Poppy ~]# yum install mcrypt
[root@Poppy ~]# rpm -qa libmcrypt-devel mhash mcrypt      
mcrypt-2.6.8-11.el7.x86_64
mhash-0.9.9.9-10.el7.x86_64
libmcrypt-devel-2.5.8-13.el7.x86_64

2. 开始安装apache通过模块形式跟php链接

包源 和 下载
http://mirrors.sohu.com/ wget http://mirrors.sohu.com/php/php-5.3.27.tar.gz [root@Poppy tools]# tar xf php-5.3.27.tar.gz [root@Poppy tools]# cd php-5.3.27 [root@Poppy tools]# ./configure --prefix=/application/php-5.3.27/ --with-apxs2=/application/apache/bin/apxs --with-mysql=/application/mysql/ --with-iconv-dir=/application/libiconv/ --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/ --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --enable-ftp [root@Poppy tools]# make [root@Poppy tools]# make install [root@Poppy php-5.3.27]# ln -s /application/php-5.3.27/ /application/php3 [root@Poppy php-5.3.27]# /application/php3/bin/php -v PHP 5.3.27 (cli) (built: Jun 13 2018 14:38:39) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies [root@Poppy php-5.3.27]# ls /application/apache/modules/libphp5.so /application/apache/modules/libphp5.so libphp5.so就是这个模块,控制apache与php的链接

猜你喜欢

转载自www.cnblogs.com/jokerbj/p/9178156.html
今日推荐