centOS7 下部署apache2.4 + mysql5.7 +php5.6
一.安装基本工具
yum -y install gcc cc wget lsrz openssl zlib libxml2 libxml2-dev expat openssl-devel libstdc++.so.6 libncurses.so.5 libtinfo.so.5 libaio.so.1 perl net-tools libaio.so.1 numactl libxml2*
二.安装mysql 5.7.13
#mysql 5.7.12
1 下载安装包,去mysql官网
http://www.mysql.com/downloads/mysql/5.7.html#downloads
#下载相应的mysql版本,我下载的是打包版本,里面有相应的全套安装包,
#下载地址:
http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
#可以直接用wget命令下载到服务器上
#下载解压后,可以看到以下安装包
2 卸载已有版本,centOS7.0以后默认安装的是mariadb
rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
#强制删除,有多少个安装包删除多少个:
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
依次安装mysql(一定要一次安装,否则会报错):
rpm -ivh mysql-community-common-5.7.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm
3 初始化,以root用户登录的,默认没有设置root的密码,启动以后再设置
cd /usr/sbin
./mysqld --initialize-insecure --user=mysql
#修改数据目录的权限
chown -R mysql:mysql /var/lib/mysql
#如果该目录不存在或者没有权限,在启动时候会提示
Job for mysqld.service failed. See 'systemctl status 'journalctl -xn' for details.
4 mysql的启动、停止
#启动mysql
systemctl start mysqld
#查看mysql状态
systemctl status mysqld
#停止mysql
mysqld.service' and
systemctl stop mysqld
#重启mysql
systemctl restart mysqld
5 设置root密码
#登录mysql以后,设置root密码,有一点需要注意,MySQL对用户密码安全性有所加强,所以设置的密码必须包含有数字,大写字母,小写字母,特殊符号,如果你设置的密码过于简单,会提示:
ERROR 1819 (HY000): Your password does NOT satisfy the CURRENT policy requirements。
#执行
alter user 'root'@'localhost' identified by 'mYsqL$%123';
#就将root账户的密码修改为mYsqL$%123了。
6 设置开机启动
systemctl enable mysqld
问题解决参考:
http://jingyan.baidu.com/article/93f9803f010d8fe0e56f555e.html
三 安装apache
1.检测系统是否已经安装httpd
rpm -q httpd
如果已经安装,先卸载(rpm -e xxxxxx),有依赖包的,依次卸载
可以使用httpd --version检测是否已经卸载
2.下载apache运行环境依赖的包
2.1.apr包,下载地址:http://apr.apache.org/download.cgi
http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.gz
tar zxvf apr-1.5.2.tar.gz 进行解压,生成apr-1.5.2
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
安装完毕后,可以验证/usr/local/apr是否存在
2.2.par-uitil包,下载地址:http://apr.apache.org/download.cgi
wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
tar zxvf apr-util-1. 5.4.tar.gz进行解压,生成apr-util-1. 5.4
cd apr-util-1.5.4
./configure
--with-apr=/usr/local/apr/bin/apr-1-config
--prefix=/usr/local/apu
make && make install
安装完毕后,可以验证/usr/local/apu是否存在
2.3.neon包,下载地址:http://www.webdav.org/neon/
http://www.webdav.org/neon/neon-0.30.1.tar.gz
wget http://www.webdav.org/neon/neon-0.30.1.tar.gz
tar zxvf neon-0.29.6.tar.gz进行解压,生成neon-0.29.6
cd neon-0.30.1
./configure --prefix=/usr/local/neon --enable-shared --with-ssl
报错:checking for openssl pkg-config data... no
解决:yum install openssl-devel
make && make install
安装完毕后,可以验证/usr/local/neon是否存在
FAQ: configure可能存在的问题及解决方法
1. configure: error: could not find library containing RSA_new
解决方法: # yum install openssl-devel
2. configure: error: no XML parser was found: expat or libxml 2.x required
解决方法: # yum install expat-devel
3. configure: error: --with-zlib requires an argument.
解决方法: 去掉此选项 。
3 下载安装apache
上官网下载 http://httpd.apache.org/
http://apache.fayea.com//httpd/httpd-2.4.20.tar.gz
#解压安装
tar zxvf httpd-2.4.20.tar.gz
cd httpd-2.4.20
./configure
--with-apr=/usr/local/apr/bin/apr-1-config
--prefix=/usr/local/apache2
--with-apr-util=/usr/local/apu/bin/apu-1-config --with-neon=/usr/local/neon/ --with-pcre=/usr/local/pcre --enable-dav --enable-dav-fs
make && make install
#进行简单的配置以后,验证apache是否正确安装
cd /usr/local/apache2/conf
vi httpd.conf
Listen 80 --> Listen 8080 #这里是防止默认的80端口和其他默认的80端口冲突
#ServerName www.example.com:80 --> 将前面注释去掉,并将www.example.com改成localhost,防止报以下错误:httpd: Could not reliably determine the server's fully qualified domain name
ServerName www.example.com:80 ServerName localhost:80
#启动停止apache
cd /usr/local/apache2/bin
#启动apache
./apachect1 start
#停止 apache
./apachect1 stop
#重启apache
./apachect1 restart
#在客户端URL:http://xxx.xxx.xxx.xxx:9580,如显示\"it works!\" 务器已经开始工作!
#设置apache开机启动
,则表明apache服
#设置开机自启动vi /etc/rc.local 进入到rc.local文件,在touch /var/lock/subsys/local后加入如下启动命令 /usr/local/httpd/bin/apachectl start
三 安装PHP
#下载php
wget http://cn2.php.net/distributions/php-5.6.22.tar.gz
#解压后,进入php目录
cd php-5.6.22
./configure --prefix=/usr/local/php5.6
--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-zlib=/usr | tee conf.log
1. 报错:
configure: error: xml2-config not found. Please check your libxml2 installation.
2. yum install libxml2* -y
make && make install
四 apache和php的整合
4.1 配置apache
vi /usr/local/apache2/conf/httpd.conf
#在#LoadModule rewrite_module modules/mod_rewrite.so下面增加
LoadModule php5_module modules/libphp5.so
#在DirectoryIndex后面增加index.php index.php3
DirectoryIndex index.html index.php index.php3
#在AddType application/x-gzip .gz .tgz下面添加
AddType application/x-httpd-php .php
保存退出
4.2 验证apache是否已经支持php
在/usr/local/apache2/htdocs/下面新建文件index.php并添加内容
phpinfo();?>
4.3修改php配置文件
配置php.ini,如果在默认位置下找不到ini的话,复制一个过去
cp /home/dir_software/php-5.6.22/php.ini-development
/usr/local/php5.6/lib/php.ini
修改php.ini,增加对mysql的支持以及相关的性能配置:把文件中下面代码前面的分号去掉
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_gd2.dll
;extension=php_imap.dll
;extension=php_mysql.dll
修改以下两个字段
session.gc_maxlifetime = 1800
max_execution_time = 120
修改防火墙,允许相应的端口开放:
再进行下一步之前,暂时先把/usr/local/apache2/bin/apachect1 stop
apache服务器关闭!
注意:这个地方一定要注意把防火墙关了,不然在客户端访问会出现错误!
一、配置防火墙,开启80端口、3306端口
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2、安装iptables防火墙
yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
二、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
因篇幅问题不能全部显示,请点此查看更多更全内容