Ubuntu如何编译安装PHP和Nginx

发布时间 - 2023-05-12 00:00:00    点击率:

编译安装nginx

切换目录到工作文件夹:

cd /usr/local/src

下载pcre源代码并安装

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.20.tar.gz
tar -zxvf pcre2-10.20.tar.gz
mv ./pcre2-10.20.tar.gz ./pcre 
cd pcre
./configure --prefix=/usr/local/pcre
make && make install

下载zlib源代码并安装

wget http://tenet.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
mv ./zlib-1.2.8.tar.gz ./zlib
cd zlib
./configure --prefix=/usr/local/zlib
make && make install

下载nginx源代码并安装

wget http://nginx.org/download/nginx-1.8.1.tar.gz
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlib
make && make install

开机启动nginx

添加/ect/init.d/nginx,并写入脚本

#! /bin/bash
# description: startup script for webserver on centos. cp it in /etc/init.d and
# chkconfig --add nginx && chkconfig nginx on
# then you can use server command control nginx
#
# chkconfig: 2345 08 99
# description: starts, stops nginx
set -e
path=$path:/usr/local/nginx/sbin/
desc="nginx daemon"
name=nginx
daemon=/usr/local/nginx/sbin/$name
configfile=/usr/local/nginx/conf/nginx.conf
pidfile=/var/run/nginx.pid
scriptname=/etc/init.d/$name
# gracefully exit if the package has been removed.
test -x $daemon || exit 0
d_start() {
$daemon -c $configfile || echo -n " already running"
}
d_stop() {
kill -quit `cat $pidfile` || echo -n " not running"
}
d_reload() {
kill -hup `cat $pidfile` || echo -n " can't reload"
}
case "$1" in
start)
echo -n "starting $desc: $name"
d_start
echo "."
;;
stop)
echo -n "stopping $desc: $name"
d_stop
echo "."
;;
reload)
echo -n "reloading $desc configuration..."
d_reload
echo "reloaded."
;;
restart)
echo -n "restarting $desc: $name"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "usage: $scriptname {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
chmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig --level 2345 nginx on
service nginx start

源码编译安装php5.6

下载php源代码

cd /usr/local/src
wget http://cn2.php.net/get/php-5.6.24.tar.gz/from/this/mirror
mv mirror php-5.6.24.tar.gz
tar -zxvf php-5.6.24.tar.gz
cd php-5.6.24

安装依赖的组件

xml扩展

apt-get install libxml2-dev

png扩展

apt-get install libpng12-dev

freetype扩展

apt-get -y install libfreetype6-dev

openssl扩展

apt-get install openssl
apt-get install libcurl3-openssl-dev

jpeg扩展

apt-get install libjpeg-dev

编译语句

生成配置文件

./configure --prefix=/opt/php --with-config-file-path=/opt/php/lib --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl-dir=/usr --with-openssl --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --enable-gd-native-ttf --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli

安装了依赖的组件以后,应该就不会报错,如果报错请安装缺少的组件,然后重新生成配置文件。

编译&安装

make && make install

查看php服务器配置

当我们迁移服务器的时候,上述生成配置文件的代码需要与原php服务器的一直,我们可以使用php-config --configure-options查看。

php-config的位置在 php/bin/php-config

没有发现php.ini?

直接编译安装php之后,是没有php.ini的,我们可以从解压缩后的目录copy到/opt/php/lib,然后进行配置生效。

/opt/php/lib是在./configure中配置的路径


# ubuntu  # php  # nginx  # xml  # copy  # 源代码  # 配置文件  # 并安装  # 报错  # 是在  # 就不  # 我们可以  # 可以使用  # 当我们  # 解压缩 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  详解Huffman编码算法之Java实现  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  浅谈redis在项目中的应用  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  网站建设整体流程解析,建站其实很容易!  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  iOS UIView常见属性方法小结  魔方云NAT建站如何实现端口转发?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  PHP 500报错的快速解决方法  Python数据仓库与ETL构建实战_Airflow调度流程详解  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  如何用搬瓦工VPS快速搭建个人网站?  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  JavaScript模板引擎Template.js使用详解  html5的keygen标签为什么废弃_替代方案说明【解答】  如何做网站制作流程,*游戏网站怎么搭建?  如何快速搭建虚拟主机网站?新手必看指南  香港服务器部署网站为何提示未备案?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Laravel如何实现API版本控制_Laravel版本化API设计方案  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  如何在万网自助建站平台快速创建网站?  微信小程序 配置文件详细介绍  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  JavaScript Ajax实现异步通信  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel如何实现本地化和多语言支持?(i18n教程)  网站制作软件有哪些,制图软件有哪些?  如何快速搭建自助建站会员专属系统?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】