文档章节

再谈centOS7.2 LAMP源码安装及注意要点

lock-li
 lock-li
发布于 2016/09/01 17:20
字数 1884
阅读 551
收藏 0

之前在另一篇文章里介绍过《centOS7 LAMP安装及注意要点》,用的是yum自带安装。

一个朋友在阿里云上买了ECS云主机,选择是最新的centos7.2 64位操作系统,帮忙配置一下环境。在这里做一下记录:

一、安装apache2.4

cd 
mkdir lamp
cd lamp
wget http://apache.fayea.com/httpd/httpd-2.4.37.tar.gz
tar -zxvf httpd-2.4.37.tar.gz
./configure --prefix=/usr/local/apache2 --enable-modules=all --enable-cache=static --enable-mem-cache=static --enable-file-cache=static --enable-disk-cache=static --enable-ssl=satic --enable-deflate=static --enable-expires=static --enable-rewrite=static --enable-so --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre

 

#如果想配置SSL:

#openssl
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
tar -zxvf openssl-1.0.2n.tar.gz
cd openssl-1.0.2n
./config -fPIC --prefix=/usr/local/openssl/ enable-shared
make
make install

ln -s /usr/local/openssl/lib/*.so.* /usr/lib64  
ln -s /usr/local/openssl/lib/*.so.* /usr/lib

sed -i 's:#LoadModule ssl_module modules/mod_ssl.so:LoadModule ssl_module modules/mod_ssl.so:' /usr/local/apache2/conf/httpd.conf  
sed -i 's:#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so:LoadModule socache_shmcb_module modules/mod_socache_shmcb.so:' /usr/local/apache2/conf/httpd.conf  
sed -i 's:#Include conf/extra/httpd-ssl.conf:Include conf/extra/httpd-ssl.conf:' /usr/local/apache2/conf/httpd.conf


下面的命令可以被用来产生一个自签名的证书。(来自网络)

首先,生成2048位的加密私钥
/usr/local/openssl/bin/openssl genrsa -out server.key 2048

然后,生成证书签名请求(CSR),这里需要填写许多信息,如国家,省市,公司等
/usr/local/openssl/bin/openssl req -new -key server.key -out server.csr

最后,生成类型为X509的自签名证书。有效期设置3650天,即有效期为10年
/usr/local/openssl/bin/openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

cp server.* /usr/local/apache2/conf/


sed -i 's:#SSLCertificateChainFile "/usr/local/apache2/conf/server.crt":SSLCertificateChainFile "/usr/local/apache2/conf/server.crt":' /usr/local/apache2/conf/extra/httpd-ssl.conf 


#apache
./configure --prefix=/usr/local/apache2 --enable-modules=all --enable-cache=static --enable-mem-cache=static --enable-file-cache=static --enable-disk-cache=static --enable-ssl=static --enable-deflate=static --enable-expires=static  --enable-rewrite=static --enable-so --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --with-ssl=/usr/local/openssl

这时候会报错:

 error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

如何解决了, 原来它依赖apr和apr-util包;我们先安装它的依赖包吧

1、apr

cd lamp
wget http://apache.fayea.com/apr/apr-1.6.5.tar.gz
tar -zxvf apr-1.6.5.tar.gz
cd apr-1.6.5
#在configure前,要先安装apr的依赖
yum install -y autoconf libtool
./buildconf
./configure --prefix=/usr/local/apr
make
make install

我在configure的时候,也报了一个错:

executing libtool commands rm: cannot remove 'libtoolT': No such file ordirectory

如何解决了,在网上google一下,去configure里的文件$RM "$cfgfile"注释掉

vim configure
$RM "$cfgfile" 
#前面加一个”#“,就可以~

然后再./configure 、make、make install

2、apr-util

cd lamp
wget http://apache.fayea.com/apr/apr-util-1.6.1.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

这样apr-util就安装完毕了

可能会报的错:

apr-util make: *** [all-recursive] 错误 1

解决办法:

安装  expat-devel

yum install -y expat-devel

3、pcre

这个pcre也要安装一下,不然编译的时候也会报错。

cd lamp
wget https://excellmedia.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.zip
yum install -y unzip #默认没有zip解压工具,先安装
unzip pcre-8.39.zip
cd pcre-8.39
./configure --prefix=/usr/local/pcre
make
make install

好了,这个时候再编译apache就不会再报错了,同时指定 --with-apr等目录就可以了。

可能报错1:把apr和apr-util拷贝到apache/srclib里。

cp -fr apr-util-1.5.4 ./httpd-2.4.23/srclib/apr-util
cp -rf apr-1.5.2 ./httpd-2.4.23/srclib/apr

可能报错2:

error: mod_deflate has been requested but can not be built due to prerequisite failures

解决方法:

yum install zlib-devel

安装zlib就可以解决~

可能报错3:

configure: error: You need a C++ compiler for C++ support

解决方法:

yum install -y gcc gcc-c++

4、测试apache

vi /usr/local/apache2/conf/httpd.conf
#把servename改成以下
ServerName localhost:80

启动apache并测试:

/usr/local/apache2/bin/apachectl start
curl localhost

应该可以看到 it works,表示安装成功。

二、Mysql5.7

centos7.2默认的数据库:mariadb;收购免不免费,先不讨论。习惯了mysql,我们就安装最新版的。

先卸载:mariadb

#查看是否存在
rpm -qa | grep mariadb
#卸载
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

下载mysql:(如果是centos6,请下载el6版本的)

cd lamp
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.14-1.el7.x86_64.rpm
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.14-1.el7.x86_64.rpm
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.14-1.el7.x86_64.rpm
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.14-1.el7.x86_64.rpm

再安装一下mysql需要的扩展:

yum install -y libaio

rpm安装mysql:

rpm -ivh mysql-community-common-5.7.14-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-libs-5.7.14-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-client-5.7.14-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-server-5.7.14-1.el7.x86_64.rpm --nosignature
cd /usr/bin
mysqld --initialize-insecure --user=mysql #初始化
chown mysql:mysql -R /var/lib/mysql #修改权限
systemctl start mysqld #启动
mysqladmin -u root password #设置mysql 密码
mysql -u root -p #测试登录

可能出现的错:

libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.14-1.el6.x86_64

解决方法:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm
rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm

Mysql5.7安装完毕。

三、PHP7.0.10安装

cd lamp
wget http://tw1.php.net/distributions/php-7.3.0.tar.gz
tar -zxvf php-7.3.0.tar.gz
cd php-7.3.0

在编译之前,先安装一些PHP扩展依赖:

yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel bzip2 bzip2-devel libxslt-devel

安装完毕后,接着安装PHP:

./configure  --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-apxs2=/usr/local/apache2/bin/apxs --enable-fileinfo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-sysvshm --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --enable-calendar --with-xsl --enable-ctype --with-kerberos --enable-exif --with-xmlrpc --enable-ftp --with-gettext --enable-zip --enable-soap --disable-ipv6 --disable-debug --with-bz2 --enable-opcache 
make
make install

可能出错的出错1:

编译zlib时提示 
configure: error: Please reinstall the libzip distributio 
或  configure: error: system libzip must be upgraded to version >= 0.11。使用Yum最新版只到0.10,不足以达到要求。

先删除libzip  和   libzip-devel

yum remove libzip -y


安装
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.5.1
./configure
make && make install
上面这种在实际操作上不成功,
或安装
wget https://libzip.org/download/libzip-1.5.1.tar.gz
tar -zxvf libzip-*
cd libzip*
mkdir build && cd build && cmake .. && make && make install

如果提示cmake: command not found,需要先yum install cmake(默认安装是2.8的,还是会报错)
手动编译更高版本
先移除:
yum remove cmake
安装
wget https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz
tar -zxvf cmake-3.10.2-Linux-x86_64.tar.gz
vim /etc/profile.d/cmake.sh
加下面内容
export CMAKE_HOME=/root/soft/cmake-3.10.2-Linux-x86_64
export PATH=$PATH:$CMAKE_HOME/bin

source /etc/profile
cmake -version 查看版本


再编PHP ./configure .....

可能报错2:

configure: error: off_t undefined; check your library configuration

在终端下输入下:
echo '/usr/local/lib64

/usr/local/lib

/usr/lib

/usr/lib64'>>/etc/ld.so.conf&&ldconfig -v


再编PHP ./configure .....

安装完毕,现在要使apache支持php:

vim /usr/local/apache2/conf/httpd.conf
#找到DirectoryIndex
DirectoryIndex index.html index.htm default.html index.php default.php
#找到AddType 
AddType application/x-httpd-php .php
#重启apache
/usr/local/apache2/bin/apachectl -k restart

整个安装完毕。

四、问题

在配置虚拟主机的时候,要使得外网能访问,得先防火墙80端口打开:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload  #重启防火墙
#阿里云,默认selinux是关闭的,所以不用担心

一些注意细节,可以参考我的另一篇《centOS7 LAMP安装及注意要点》

最后设置一下apache开机自启动:

cd /lib/systemd/system
vim httpd.service
[Unit]
Description=ApacheServer
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl -k start
ExecReload=/usr/local/apache2/bin/apachectl -k restart
ExecStop=/usr/local/apache2/bin/apachectl -k stop
PrivateTmp=true

#保存退出

#设置开机自启动
systemctl enable httpd.service

因为我用的是“SecureCRT”,所以安装一下lrzsz,这样方便上传和下载文件

yum install lrzsz
rz #本地到服务器
sz #服务器到本地

整篇介绍完毕,大家在安装过程中有什么问题,欢迎留言~

© 著作权归作者所有

lock-li

lock-li

粉丝 41
博文 73
码字总数 34791
作品 1
松江
CTO(技术副总裁)
私信 提问
Apache2.4 性能优化

前几天买了阿里云主机后,配置了基本的web环境,apache性能没有做优化;导致今天在公布opms系统的时候,访问太慢,本身的云主机配置是低配,自己玩的。具体环境配置请看《再谈centOS7.2 LAM...

lock-li
2016/09/07
56
0
centos7.2 搭建BugFree

centos7.2 搭建BugFree 介绍:BugFree基于PHP和MySQL开发,是免费且开放源代码的缺陷管理系统。服务器端在Linux和Windows平台上都可以运行;客户端无需安装任何软件,通过IE,FireFox等浏览器...

李伟铭k
2018/07/09
0
0
centOS7 LAMP安装及注意要点

在VM下安装了centos7体验一下,首先安装一下LAMP环境,如下: 安装LAMP环境: 1、apache2 2、mysql centOS最小安装,wget没有安装 成功安装之后重启mysql服务 3、php5.6 php-opcache及php-p...

lock-li
2016/04/16
383
0
在httpd-2.2和http-2.4中分别搭建wordpress博客系统和Discuz!论坛系统

在httpd-2.2和http-2.4中分别搭建wordpress博客系统和Discuz!论坛系统 一、 在这里我使用的是centos6.7和centos7.2进行操作。在搭建之前,需要事先搭建LAMP环境。 所谓LAMP环境,指的是linux...

运维小弟qaq
2017/09/08
0
0
centos7 LAMP环境安装zabbix3.0

zabbix3.0要求的PHP、数据库、Apache/Nginx的版本参考: zabbix3.0对PHP、数据库、nginx/apache版本要求参考: https://www.zabbix.com/documentation/3.0/manual/installation/requirement......

丶Darius
2017/05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java中print、printf、println的区别

printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行

hellation_
32分钟前
0
0
spring在静态类中注入bean的的解释

@Componentpublic class ModelMapper {@AutoWiredprivate static AssignmentManager assignmentManager;public static void add(){a+b;}} 静态方法是属于类的,普通方法才属于...

无知的小狼
32分钟前
2
0
分而治之-归并排序

如果有1个数组,数组的左半部分和右半部分都已经排好序,如何将该数组合成1个有序的数组? 开辟1个同样大小的临时空间辅助我们完成归并过程,如下图 k:表示归并过程中,当前需要替换的原数组...

万山红遍
46分钟前
2
0
Linux修改时区的正确方法【修改时间,需要修改软连接,靠谱】

CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 [root@centos7 ~]# ll /etc/localtime lrwxrwxrwx 1 root root 33 Oct 12 11:01 /etc/loca......

Airship
今天
1
0
《Netkiller Spring Cloud 手札》之 Master / Slave 主从数据库数据源配置

5.19.1. Master / Slave 主从数据库数据源配置 5.19.1.1. application.properties spring.datasource.master.driverClassName = com.mysql.cj.jdbc.Driverspring.datasource.master.url=j......

netkiller-
今天
51
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部