Centos7 安装 php7.0.16 + nginx-1.11.10

安装PHP-7.0.16

  • 1、下载安装包 并解压
  • 2、安装一些需要的依赖包

yum install openssl
yum install libssl-dev
yum install libjpeg-devel
yum install libpng-devel

  • 3、cd 到解压后的目录
  • 4、编译: 具体参数代表什么意思,可以看 PHP文档
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-zlib --enable-zip --with-openssl --enable-fpm --enable-mbstring --with-libdir=lib64 --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --with-mysql-sock  --enable-pdo  --with-gettext --with-iconv --with-mcrypt --with-mhash --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear --with-gd --with-jpeg-dir --enable-xml --enable-ftp --enable-mbregex --with-freetype-dir --with-png-dir --with-xmlrpc --with-imap-ssl
  • 编译时可能出现的错误 (个人环境不一样,编译时报错哪个不存在,安装哪个)

1、xml2-config 这个配置找不到

yum install libxml2-devel -y
sudo find / -name "xml2-config" #查找是否存在,存在说明安装成功
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
sudo ./configure --prefix=/usr/local
make
make install
  • 3、configure: error: Don’t know how to define struct flock on this system, set --enable-opcache=no

出现这个问题的原因可能是:
1、手动编译了libmcrypt
2、编译时打开了 --enable-opcache 导致编译不通过
参考地址1
参考地址2

vim /etc/ld.so.conf 时,加入内容 /usr/local/lib  前面不要加 include
编译仍不成功 加入以下链接
ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.20
  • 4、找不到 readline.h
yum install readline readline-devel
如果下载不到 更新 yum 源 
yum源 位置/etc/yum.repos.d
  • 5、configure: WARNING: unrecognized options: --with-mysql
# 是因为 php不支持 mysql模块 要改为
--with-pdo-mysql
  • 6、configure: WARNING: unrecognized options: --enable-bz2
安装  yum install bzip2 bzip2-devel
编译时 加上 --with-bz2 --enable-bzip2
  • 7 如果编译成功
make && make test (这一步需要点时间, php要自动测试)
make && sudo make install
  • 8 对php-fpm进行配置

cd 到解压后的php7目录

sudo cp php.ini-production /usr/local/php/etc/php.ini 
sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm

把 php-fpm.conf.default 复制为 php-fpm.conf

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

把 www.conf.default 复制为 www.conf

cd /usr/local/php/etc/php-fpm.d
cp www.conf.default www.conf
  • 配置php-fpm
cd /usr/local/php/etc
vim php-fpm.conf

找到 include=/usr/local/php/etc/php-fpm.d/*.conf
将 前面的分号去掉, 
没有这段代码就加上, 注意路径
  • 配置 www.conf
cd /usr/local/php/etc/php-fpm.d 
找到: listen = /var/run/php-fpm.socket 
//把分号去掉 改为
listen = 127.0.0.1:9000 (如果默认等于 127.0.0.1:9000, 就不管)
  • 启动php-fpm
sudo /usr/local/php/sbin/php-fpm
  • 关闭php-fpm
方法1:killall php-fpm
方法2:用service 管理 php-fpm, nginx也一样。
    service php-fpm [start|stop|restart]

centos下 启动 nginx:
    启动:service nginx
    停止:service nginx -s stop
  • 查看监听端口
netstat -an | grep LISTEN | grep 9000

编译安装nginx-1.11.10

参考地址
新建匿名用户和用户组

新建的用户组和用户主要是在编译配置的时候指定nginx运行的用户和用户组。这样指定后以后配置使用也方便。

sudo groupadd -r nginx
sudo useradd -s /sbin/nologin -g nginx -r nginx
  • 下载源码包
wget http://nginx.org/download/nginx-1.11.10.tar.gz
  • 解压并编译
    解压
tar -zxvf nginx-1.11.10.tar.gz

准备编译

./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --user=nginx --group=nginx

如果没有错误可以看到下面的显示

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1: using system crypto library
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/etc/nginx"
  nginx configuration file: "/etc/nginx/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"
在Ubuntu下可能提示需要安装 PCRE, Nginx的HTTP模块需要用它解析正则表达式
sudo apt-get install libpcre3 libpcre3-dev

开始编译安装

make && make install #根据自己都权限,添加 sudo
  • 添加nginx 为开机启动
    参考地址
    在centos 7 下 使用 chkconfig --add nginx 无法添加
    使用 Systemd 为nginx设置开机启动

在系统服务目录里创建nginx.service文件

vi /lib/systemd/system/nginx.service

添加如下内容 启动、关闭、重启都必须是绝对地址

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

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

保存退出。

  • 设置开机启动 停止开机启动
systemctl enable nginx.service //启动
systemctl disable nginx.service //停止
  • 启动nginx服务
systemctl start nginx.service //启动
systemctl restart nginx.service //重启
//查看nginx服务当前状态
systemctl status nginx.service

//查看已启动的服务
systemctl list-units --type=service
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值