php环境和pi环境,Pi编译安装PHP/Nginx并安装完整LEMP环境

安装 Nginx+Php+Mysql

#添加Nginx、Php最新源并刷新源

sudo add-apt-repository ppa:nginx/stable

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

#安装Nginx

sudo apt-get install nginx

#安装Php7.1 FPM

sudo apt-get install php7.1-fpm

#php7.1 curl扩展

sudo apt-get install php7.1-curl

#安装Mysql

sudo install mysql-server

#备份Mysql数据库

mysqldump -u root -p 欲备份的数据库名 > 导出的数据库名.sql

#恢复mysql数据库

mysql -u root -p 恢复的数据库名 < 导出过的数据库名.sql

#如恢复的数据库不存在 需要手动创建

create database 恢复的数据库名;

编译安装Nginx/1.11.4升级HTTP/2.0

#下载并解压Nginx源码

wget -c https://nginx.org/download/nginx-1.11.4.tar.gz

tar -zxvf nginx-1.11.4.tar.gz

#下载并解压OpenSSL源码

wget -c https://www.openssl.org/source/openssl-1.1.0.tar.gz

tar -zxvf openssl-1.1.0.tar.gz

#下载并解压nginx-ct源码

wget -O nginx-ct.zip -c https://github.com/grahamedgecombe/nginx-ct/archive/v1.3.0.zip

unzip nginx-ct.zip

#修复Nginx/1.11.3无法编译的问题此问题在Nginx 1.11.4已经解决,1.11.4请忽略

#由于OpenSSL 1.1.0 删除了 SSL_R_NO_CIPHERS_PASSED导致Nginx无法编译。这里我们需要修复nginx源码中的[一个文件](https://github.com/nginx/nginx/commit/af9e72533a69de3b8b7ed59be7be9b37203b5c82)

#用文本编辑器打开 ./nginx-1.11.3/src/event/ngx_event_openssl.c

#找到这个位置,大约在第2000行附近

if (n == SSL_R_BAD_CHANGE_CIPHER_SPEC /* 103 */

|| n == SSL_R_BLOCK_CIPHER_PAD_IS_WRONG /* 129 */

|| n == SSL_R_DIGEST_CHECK_FAILED /* 149 */

|| n == SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST /* 151 */

|| n == SSL_R_EXCESSIVE_MESSAGE_SIZE /* 152 */

|| n == SSL_R_LENGTH_MISMATCH /* 159 */

|| n == SSL_R_NO_CIPHERS_PASSED /* 182 */

修改为

if (n == SSL_R_BAD_CHANGE_CIPHER_SPEC /* 103 */

|| n == SSL_R_BLOCK_CIPHER_PAD_IS_WRONG /* 129 */

|| n == SSL_R_DIGEST_CHECK_FAILED /* 149 */

|| n == SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST /* 151 */

|| n == SSL_R_EXCESSIVE_MESSAGE_SIZE /* 152 */

|| n == SSL_R_LENGTH_MISMATCH /* 159 */

#ifdef SSL_R_NO_CIPHERS_PASSED

|| n == SSL_R_NO_CIPHERS_PASSED /* 182 */

#endif

#保存

#编译Nginx

#进入Nginx源码目录

cd ./nginx-1.11.4

#生成编译配置

./configure \

#设置OpenSSL源码目录

--with-openssl=../openssl-1.1.0 \

#设置nginx-ct源码目录

--add-module=../nginx-ct-1.3.0 \

--with-debug \

--with-pcre-jit \

--with-ipv6 \

--with-http_ssl_module \

#启用HTTP/2.0模块

--with-http_v2_module \

--with-http_stub_status_module \

--with-http_realip_module \

--with-http_auth_request_module \

--with-http_addition_module \

--with-http_dav_module \

--with-http_gzip_static_module \

--with-http_sub_module \

--with-mail \

--with-mail_ssl_module

#如无缺失依赖库,将会生成MakeFile

#开始编译

make

#编译完成后安装

sudo make install

#默认安装在 /usr/local/nginx 下

#install Nginx End.

编译安装Php7.0

#从http://php.net/get/php-7.0.8.tar.gz/from/a/mirror 下载源码并解压

tar -xzvf xxxx.tar.gz

#安装依赖

apt-get install libxml2-dev libssl-dev libcurl4-gnutls-dev libmcrypt-dev

#解压镜像,然后进入文件夹中

./configure --prefix=/usr/local/php7 \

--exec-prefix=/usr/local/php7 \

--bindir=/usr/local/php7/bin \

--sbindir=/usr/local/php7/sbin \

--includedir=/usr/local/php7/include \

--libdir=/usr/local/php7/lib/php \

--mandir=/usr/local/php7/php/man \

--enable-mbstring \

--with-curl \

--with-gd \

--with-config-file-path=/usr/local/php7/etc \

--enable-fpm \

--enable-mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-mysql-sock=/var/run/mysqld/mysqld.sock

#如提示缺少依赖包,请根据错误提示安装

#开始编译

make

#编译测试

make test

#安装

make install

#install Php7 End.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值