centos 7.2 搭建php运行环境

Posted 饶翠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos 7.2 搭建php运行环境相关的知识,希望对你有一定的参考价值。

####centos 7.2 通过源码编译安装nginx####

第一步:安装编译所需工具。命令如下:

sudo yum install gcc

 

 

第二步:安装依赖包

 

命令如下:

 

sudo yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel

 

 

  • zlib: nginx提供gzip模块,需要zlib库支持,传输数据打包,省流量(但消耗资源)

  • openssl: nginx提供ssl功能

  • pcre: 为支持地址重写rewrite功能

 


 

第三步:下载nginx-1.12.0.tar.gz

 

http://nginx.org/en/download.html

 

命令如下:[

 

cd /usr/local/src

 

wget http://nginx.org/download/nginx-1.12.0.tar.gz

 

tar -xvzf nginx-1.12.0.tar.gz

 

cd nginx-1.12.0/

 

]

 

第四步:创建用来运行nginx的用户及组

 

 

sudo groupadd nginx

 

sudo useradd -g nginx -M nginx –s /sbin/nologin

 

 


 

-g参数为nginx用户指定了一个组。-M参数保证其不自动生成home目录。

 


 

第五步:编译源代码:

 

先使用./configure –help 查看编译帮助:

 

命令如下:

 

./configure \\

 

--sbin-path=/usr/local/nginx/nginx \\

 

--conf-path=/usr/local/nginx/nginx.conf \\

 

--pid-path=/usr/local/nginx/nginx.pid \\

 

--with-http_ssl_module

 

 


 

第六步:执行make 完成安装

 


 

编译好的nginx可以通过 /usr/local/nginx/nginx -V  (具体路径以安装的为主) 查看编译时候的参数

 

 

Nginx+Center OS 7.2 开机启动设置

 

centos 7以上是用Systemd进行系统初始化的,Systemd Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。

 



 

Systemd服务文件以.service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令systemcel enable nginx.service设置开机启动即可。


 

在这里我是用源码编译安装的,所以要手动创建nginx.service服务文件。
开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:

 

/lib/systemd/system/

 



 

步骤如下:

 

第一步:在系统服务目录里创建nginx.service文件

 

vi /lib/systemd/system/nginx.service

 

内容如下:

 

[Unit]

 

Description=nginx

 

After=network.target

 


 

[Service]

 

Type=forking

 

ExecStart=/usr/local/nginx/nginx

 

ExecReload=/usr/local/nginx/nginx -s reload

 

ExecStop=/usr/local/nginx/nginx -s quit

 

PrivateTmp=true

 

[Install]

 

WantedBy=multi-user.target

 


 

[Unit]:服务的说明
Description:
描述服务
After:
描述服务类别
[Service]
服务运行参数的设置
Type=forking
是后台运行的形式
ExecStart
为服务的具体运行命令
ExecReload
为重启命令
ExecStop
为停止命令
PrivateTmp=True
表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]
运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

 

保存退出。

 


 

第二步:设置开机启动

 

systemctl enable nginx.service

 


 

第三步:其他命令:

 

启动nginx服务

 

Systemctl start nginx.service

 

设置开机启动

 

Systemctl enable nginx.service

 

停止开机自启动

 

Systemctl disable nginx.service

 

查看服务当前状态:

 

Systemctl status nginx.service

 

重新启动服务:

 

Systemctl restart nginx.service

 

查看所有已启动的服务:

 

Systemctl list-units --type=service

 


 

腾讯云主机需要开放安全组里的80端口

 


 

Centos 7防火墙firewalld开放80端口

 

命令如下:【

 

firewall-cmd --zone=public --add-port=80/tcp --permanent

 

 


 


 

centos7 安装 mariadb 的正确命令

 

命令: yum -y install mariadb*  

 

[root@localhost ~]# mysql 

 

[root@localhost ~]# mysql_secure_installation  

 

Centos7.2 编译安装php7

 

直接下载PHP7.0.2的安装包解压,编译,安装:

 

下载php7,并解压

 

cd /usr/src/

 

wget http://cn2.php.net/distributions/php-7.0.2.tar.gz

 

#解压

 

tar -xzxvf php-7.0.2.tar.gz

 

cd php-7.0.2

 

解压完后先不要编译,请检查是否安装了gcc ,没有的话执行yum install gcc

 

检查是否安装了libxml2 ,没有的话执行yum install libxml2

 

检查是否安装了libxml2-devel,没有的话执行yum install libxml2-devel

 

注:因为改为用nginx了,所以编译参数中的--with-apxs2=/usr/bin/apxs去掉了,如果要配置apache用,安装PHP前,请先安装apache

 

 

 

编译参数配置

 

\'./configure\' \'--prefix=/usr/local/php\' \'--with-pdo-pgsql\' \'--with-zlib-dir\' \'--with-freetype-dir\' \'--enable-mbstring\' \'--with-libxml-dir=/usr\' \'--enable-soap\' \'--enable-calendar\' \'--with-curl\' \'--with-mcrypt\' \'--with-gd\' \'--with-pgsql\' \'--disable-rpath\' \'--enable-inline-optimization\' \'--with-bz2\' \'--with-zlib\' \'--enable-sockets\' \'--enable-sysvsem\' \'--enable-sysvshm\' \'--enable-pcntl\' \'--enable-mbregex\' \'--enable-exif\' \'--enable-bcmath\' \'--with-mhash\' \'--enable-zip\' \'--with-pcre-regex\' \'--with-pdo-mysql\' \'--with-mysqli\' \'--with-jpeg-dir=/usr\' \'--with-png-dir=/usr\' \'--enable-gd-native-ttf\' \'--with-openssl\' \'--with-fpm-user=www-data\' \'--with-fpm-group=www-data\' \'--with-libdir=/lib/x86_64-linux-gnu/\' \'--enable-ftp\' \'--with-gettext\' \'--with-xmlrpc\' \'--with-xsl\' \'--enable-opcache\' \'--enable-fpm\' \'--with-iconv\' \'--with-xpm-dir=/usr\'

 

 

 

出现报错 Cannot find OpenSSL\'s <evp.h>

 

则执行 yum install openssl openssl-devel

 

 

 

出现报错 Please reinstall the libcurl distribution

 

则执行 yum -y install curl-devel

 

 

 

出现报错 jpeglib.h not found

 

则执行 yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y

 

和执行yum install libjpeg-devel

 

 

 

 

 

checking for BZip2 in default path... not found

 

configure: error: Please reinstall the BZip2 distribution

 

这是bzip2软件包没有安装

 

解决办法

 

yum install bzip2-devel.x86_64 -y

 

 

 

 

 

configure: error: xpm.h not found.

 

yum install libXpm-devel

 

 

 

error: Unable to locate gmp.h

 

Fix: yum install gmp-devel

 

 

 

现象:Unable to detect ICU prefix or /usr//bin/icu-config failed. Please verify ICU install

 

 prefix and make sure icu-config works

 

解决办法:yum install -y icu libicu libicu-devel

 

 

 

错误:mcrypt.h not found. Please reinstall libmcrypt.

 

解决办法:yum  install  php-mcrypt  libmcrypt  libmcrypt-devel

 

 

 

错误: configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path

 

解决办法:yum install  postgresql-devel

 

 

 

错误 : configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

 

解决: yum install libxslt-devel

 

 

 

配置的checking 结束后,执行:

 

 

 

make clean && make && make install

 

 

 

安装完成后,我们要把源码包中的配置文件复制到PHP安装目录下,源码包中有两个配置  php.ini-development  php.ini-production  ,看名字就知道,一个是开发环境,一个是生产环境,我们这里就复制开发环境的

 

cp php.ini-development /usr/local/php/lib/php.ini

 

 

 

另外还需要设置环境变量 :

 

修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码

 

PATH=$PATH:/usr/local/php/bin

 

export PATH

 

然后执行 命令 source /etc/profile

 

 

 

php -v 就可以看到PHP版本信息了。

 

 

 

 

 

此时还需要配置PHP-fpm:

 

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

 

 

 

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

 

 

 

cp /usr/src/php-7.0.2/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

 

 

 

chmod +x /etc/init.d/php-fpm

 

 

 

启动php-fpm:

 

/etc/init.d/php-fpm start

 

 

 

 

 

如果出现错误:ERROR: [pool www] cannot get uid for user \'www-data\'

 

则新建www-data 用户组:

 

  1. groupadd www-data

  2. useradd -g www-data www-data

 

然后再启动php-fpm

 

 

以上是关于centos 7.2 搭建php运行环境的主要内容,如果未能解决你的问题,请参考以下文章

hadoop运行环境搭建hadoop2.7.2安装Hadoop目录结构

docker 构建 php,mariadb,nginx环境

如何在centos中搭建php环境?

PHP - CentOS下开发运行环境搭建(Apache+PHP+MySQL+FTP)

CentOS7 搭建nginx+php+mysql运行环境

LINUX centos 7.2/7.3 搭建LANP环境