Pi编译安装PHP/Nginx并安装完整LEMP环境

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 安装 Nginx+Php+Mysql#添加Nginx、Php最新源并刷新源sudo add-apt-repository ppa:nginx/stablesudo add-apt-repository ppa:ondrej/phpsudo ...
  • 安装 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 恢复的数据库名;

AI 代码解读
  • 编译安装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无法编译的问题<font style="color:red">此问题在Nginx 1.11.4已经解决,1.11.4请忽略</font>
#由于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.

AI 代码解读
  • 编译安装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.

AI 代码解读
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
7
分享
相关文章
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
45 18
|
2月前
|
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
93 20
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
在多用户环境中,如何确保 PHP Shell 的安全性?
在多用户环境中确保 PHP Shell 安全,需采取限制执行环境、禁用危险函数、使用安全模式、采用 `suPHP` 或 `PHP-FPM`、使用参数化查询、输入验证、转义命令、强化会话管理、合理配置错误处理、正确设置文件权限及定期更新等措施。这些策略有助于防范潜在的安全威胁。
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
111 3
01 入门PHP就来我这-安装phpstudy
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
130 6
|
6月前
|
PHP7 MongDB 安装与使用
10月更文挑战第19天
71 1
PHP7 MongDB 安装与使用
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
65 0
|
6月前
|
宝塔PHP8.1安装fileinfo拓展失败解决办法
在宝塔面板安装PHP8.1后,fileinfo扩展安装失败,手动尝试也报错。通过分析错误信息,在Makefile中修改CFLAGS添加`-std=c99`,并执行`make clean`清除缓存后,重新编译安装成功。最后在php.ini中启用fileinfo扩展并重启PHP服务。注意需调整CFLAGS为`-std=c99 -g`,去掉`-O2`。
474 0
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题