CentOS7下PHP7环境安装手册
一、 CentOS 7 的安装
CentOS 的安装基本和其他的 Linux 安装基本一致,CentOS 7下载地址:https://www.centos.org/download/
1. 首先开始进入安装界面,用方向键选择“Install CentOS 7”然后回车进入安装
2. 选择安装语言,这里我选择简体中文
3. 其他配置选择
这里根据自己的实际情况来做选择,一般“软件选择”这一项都选择最小安装,就
是不用安装界面。“网络和主机名”如果你已经连接网络了,那么选择这一项,进行开启
网络,系统会自动获取 ip 并且连接到网络
4. 点击开始安装,进入安装界面
在这里我们可以进行创建用户或者给 Root 用户设置密码
设置完密码后点击完成,然后等待安装完成。当安装完成后,会提示重启计算机。
这时点击重启,重新启动计算机,CentOS 7 就安装完成了。
5. 重启完成后,提示我们需要输入用户名密码登录
这里我们输入 root。密码输入我们在安装的时候设置的密码登录即可
登录之后我们就可以看到操作界面
6. 设置开启 SSH
由于 CentOS 自带了 OpenSSH-Server。所以我们无需在安装 OpenSSH-Server,我
们这里只需要设置开启 SSH-Server 的 Root 远程登录即可,当然这个根据实际情况来做
决定,一般生产环境为了安全是不会开启这个的,这里我们为了方便开启 root 的远程登
录。
首先进入/etc/ssh 目录,cd /etc/ssh,然后打开编辑文件“sshd_config”vi sshd_config。然后我们找到 PermitRootLogin,然后删除掉注释的“#”,
然后保存并且退出。然后我们执行命令 service sshd restart 重启 sshd 服务,然后我
们用命令 ps –ef | grep sshd 看 sshd 有没有启动,如下图证明服务已经启动
7. 设置防火墙开启 SSH 的 22 端口
由于 CentOS 默认开启了防火墙 FireWall,所以我们需要开启 ssh 的 22 端口我们才
能用 SecureCRT 连接 CentOS 进行操作,使用命令 firewall-cmd –-permanent –-add-
port=22/tcp。这样我们就永久开启了 22 端口,然后执行命令 firewall-cmd -–reload 来
重新加载配置防火墙配置文件,然后再执行命令 firewall-cmd -–list-ports 看看端口是
否开启。如下图
8. 设置开启 MySQL 数据库的 3306 端口
这里的设置如上设置开启 22 端口的方法一样。
9. 设置开启 Web 服务器所需要的 80 端口
这个设置同上,开启 80 端口即可
二、 MySQL 5.7 的安装
1. 首先我们去官网下载 mysql 的安装源,地址为:http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm。安装了这个源之后,我们就可以通过 yum 来安装 mysql 了 , 具 体 的 版 本 根 据 自 己 的 实 际 情 况 去 下 载 。 用 wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 下载。然后安装 rpm –ivh mysql57-community-release-el7-8.noarch.rpm。
2. 然后用 yum 来安装 mysql。yum install mysql-server。
这里我们看到找到的 mysql 版本是 5.7,是和我们下载的源的那个版本是对应的,5.7也是目前最新的版本。开始安装,因为要下载安装包以及相关的依赖包,所以可能需要一点时间,耐心等待安装完成就好。
3. 安装完成之后我们需要设置 mysql 的密码等信息,否则我们是无法连接的到 mysql的。
首先我们进入/etc 目录,然后编辑 my.cnf 文件,在最后一行加上 skip-grant-tables这段代码,这段代码表示跳过 mysql 的密码验证。
然后保存退出,然后执行命令::service mysqld restart 重启 mysql 服务
然后我们可以用命令:mysql –u root,执行这段命令后,会直接进入 mysql,无需输入密码
然后我们执行 sql 命令:use mysql;进入 mysql 这个数据库
然后再执行 sql 命令:update mysql.user set authentication_string=password('123456')where user='root' and Host = 'localhost';来修改 root 的密码,执行完成后,会提示我们修改的结果,如下图表示修改成功。
然后我们再执行 sql:flush privileges;命令提交刚才的修改
然后我们再修改/etc/my.cnf 文件,注释掉刚才我们添加的那行配置
然后保存并退出,再执行命令::service mysqld restart 重启 mysql 服务,然后执行命令:mysql –r root –p 命令来登陆 mysql
执行后,会提示我们输入密码,我们输入刚才修改的密码回车就可以登陆
但是这个时候我们登陆之后想开启远程连接会提示我重置密码。
这个时候 mysql 会提示我们必须要重新初始化密码我们才能进行操作。那我们必须执行命令:alter user 'root'@'localhost' identified by '123456';重置密码,但是这个命令会提示我们设置的密码不符合规则。
我们设置复杂点的密码,在执行命令:alter user 'root'@'localhost' identified by 'Mtl@.com123';这个时候提示我们修改成功。
再执行 flush privileges;提交修改结果
然后执行 exit 退出 mysql 登陆,在执行 mysql –u root –p 来,然后再输入刚才重置的密码登陆
然 后 再 执 行 : GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Mtl@.com123' WITH GRANT OPTION;这其中 BY 后面的就是我们上面设置的密码
再执行 flush privileges;提交修改结果
现在我们就可以用 Navicat 工具,用 root 身份来登陆 mysql 了
三、 PHP 7.0 的安装
1. 我们去官网下载 php 的安装源码,目前我在官网没发现 rpm 安装包(其实生产环境我希望用 rpm 安装因为不再需要安装其他的一些开发库等等,给服务器造成不必要的安全性),我们只能下载源码编译安装,下载地址:http://cn2.php.net/distributions/php-7.0.6.tar.gz。
然后下载 wget http://cn2.php.net/distributions/php-7.0.6.tar.gz 下载完成之后我们解压文件,tar -zxvf php-7.0.6.tar.gz。解压后我们得到文件夹 php-7.0.6。
2. 编译 php
进入解压后的文件夹 cd php-7.0.6.然后检查和设置编译配置
进行编译前的配置
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--with-mcrypt=/usr/include \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache
上面命令中的--prefix=/usr/local/php 为我们 php 的安装路径,执行上面命令后,就会提示我们系统没有编译器,如下图:
我们这里安装 gcc 编译器,yum install gcc,安装后我们再次执行上面的命令这个时候
又提示我们系统没有 libxml2 依赖包。
我们继续安装需要的依赖包 yum install libxml2,为了全部安装 php 需要的依赖包,我
们这里直接全部安装。
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel openssl openssl-devel
yum -y install curl-devel
yum -y install libxslt-devel 执行这三条安装命令后,php 需要的依赖包基本全部安装
完成。我们再次执行 ./configure ….这条命令。这个时候环境检查提示我们成功,可以
进行编译了。如下图:
编译安装php报错PHP configure: error: mcrypt.h not found. Please reinstall libmcrypt. 解决办法
使用php mcrypt 前必须先安装Libmcrypt
libmcrypt源码安装方法:
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure –prefix=/usr/local
make
make install
现在我们可以执行 make 命令进行编译了。执行 make 命令编译。这里编译需要一段
时间。需要耐心等待。编译完成之后,提示我们执行 make test 来测试,其实我这里也
可以不用测试。如下图:
我这里执行 make test 测试。这个过程也需要等待比较长时间。等待测试完成之后,一般不出现大问题的情况下都会测试通过,他会提示我们是否发送信息,我们选择否
然后我们执行 make install 安装。
安装完成之后,我们执行 make clean 清理编译的文件。
然后我们可以利用 whereis php 查看安装路径
调整php配置
默认安装好之后,你会发现/usr/local/php/etc下面没有php.ini文件,这个去哪里要呢?在php7的源码安装包都有。
$ cd /usr/src/php-7.0.6/
$ ls
可以看到有两个php.ini-xxx文件,我们可以分别vi打开来看下,一个是产品模式,一个是开发模式。
$ cp php.ini-production /usr/local/php/etc/php.ini
$ vi /usr/local/php/etc/php.ini
可以看到php的配置。本文就不做过多的配置解释了。
编辑该文件,vi /usr/local/php/etc/php.ini,找到 data.timezone 节点,去掉注释,设置时区为
Asia/Shanghai
data.timezone = ‘Asia/Shanghai’至于其他的设置,具体参考百度,这里不做详细说
明,然后保存退出。
3.启用php-fpm服务
上面我们在编译php7的时候,已经将fpm模块编译了,那么接下来,我们要启用php-fpm。但是默认情况下它的配置文件和服务都没有启用,所以要我们自己来搞定。
搞定配置文件:
$ cd /usr/local/php/etc
$ mv php-fpm.conf.default php-fpm.conf
$ mv php-fpm.d/www.conf.default php-fpm.d/www.conf
通过 cat www.conf。我们就会看到 fpm 的一些配置信息了。
其中的 listen 为 php-fpm 监听的地址。这些我们都无需配置了。默认就好。然后我们进入目录/usr/local/php/sbin。然后执行./php-fpm –t 来测试配置信息是否有正确
如果没有异常,则说明 fpm 配置正确。剩下的就是我们需要在 nginx 中配置 php 的解析信息了。
php-fpm的具体配置我们也不做深入去详解,因为在编译之前./configure的时候,我们都已经确定了一些配置,比如运行fpm的用户和用户组之类的,所以默认配置应该不会存在路径问题和权限问题。
搞定php-fpm的服务载入:
就像上面的nginx一样,我们希望使用service php-fpm start|stop|restart这些操作来实现服务的重启,但没有像nginx那么复杂,php编译好之后,给我们提供了一个php-fpm的程序,不需要我再编写分享了。这个文件放在php编译源码目录中:
$ cd /usr/src/php-7.0.6/sapi/fpm
$ ls
$ cp init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
$ chkconfig --add php-fpm
$ chkconfig php-fpm on
通过上面这个操作,我们就可以使用sevice php-fpm start
来启用php-fpm了。用ps -ef | grep php-fpm
看看进程吧。
四、 Nginx 的安装
1. Nginx 的安装有源码编译安装和 rpm 包安装,一般生产环境的服务器都采用 rpm 包安装,免去了在服务器安装编译器等其他库带来的麻烦和不安全性这里我们去官网下载:
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm,
然后安装 rpm –ivh nginx-release-centos-5-0.el5.ngx.noarch.rpm
安装完成之后我们查看安装路径 whereis nginx
然后我们进入/etc/nginx,编辑 nginx.conf 配置文件 vi nginx.conf,然后配置 php 的解析服务器
编辑完成之后保存并且退出,执行/usr/sbin/nginx –t 来测试配置信息是否正确
然后/usr/sbin/nginx 启动 nginx。如果 nginx 已经启动,则利用重新加载配置文件/usr/sbin/nginx –s reload。然后在启动 fpm,在 php 的安装目录下有 fpm 程序,运行他即可。我这里的目录是/usr/local/php,然后进入 sbin 目录然后./php-fpm 就可以启动了,当然你也可以直接执行/usr/local/php/sbin/php-fpm 启动。
根据上面的配置,我们在/home/www 这个站点目录下新建一个 index.php,然后输入
<? echo phpinfo(); ?> 然后保存退出
在浏览器中输入http://192.168.177.135/index.php来测试,如果成功浏览器会打印php环境的信息。
如果在访问,则需要在防火墙开通 80 端口,firewall-cmd -–permanent -–add-port=80/tcp 然后再执行 firewall-cmd -–reload。现在就可以访问了。
评论已关闭!