申明:资料来源于网络及书本,通过理解、实践、整理成学习笔记。
文章目录
Ubuntu上安装nginx
搭建liunux环境
虚拟机版本:VMware Workstation Pro 12.5.2
下载链接:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
liunux镜像:Ubuntu 20.04.2.0 LTS(我使用的是目前的最新版本)
下载链接:https://cn.ubuntu.com/download
安装C++编译器
需要用到C++编译器,在ubuntu终端下直接安装g++,安装命令如下:
apt-get install g++
我在安装时出现了错误,会提示无法打开锁文件 /var/lib/dpkg/lock - open (13: 权限不够) 无法对状态列表目录加锁(/var/lib/dpkg/),请查看您是否正以 root 用户运行?如下图:
解决方法:在命令前面加sudo
sudo apt-get install g++
输入之后会提示出入密码,输入的密码不会显示,正常输入完成按回车即可。
完成之后会提示你是否确认安装,输入y确认安装,如下图:
代码执行完成之后,按方向上键回车再次执行,确保安装成功,如下图:
安装nginx的依赖包
1.安装nginx的依赖包openssl,安装命令如下:
sudo apt-get install openssl libssl-dev
2. 安装nginx的依赖包pcre,安装命令如下:
sudo apt-get install libpcre3 libpcre3-dev
3. 安装nginx的依赖包zlib,安装命令如下:
sudo apt-get install zlib1g-dev
安装nginx
1.下载nginx,这里我下载的版本是1.18.0,终端命令如下:
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2.将下载的nginx压缩包进行解压,终端命令如下:
tar -xzvf nginx-1.18.0.tar.gz
3.将文件夹nginx-1.18.0重命名为nginx,方便以后记忆查询,终端命令如下:
mv nginx-1.18.0 nginx
4.移动nginx文件夹到ubuntu常见软件目录下,在移动时如果不加sudo又会报错权限不够,所以要加上sudo,终端命令如下:
sudo mv nginx/ /usr/local/
5.进入nginx文件夹并修改nginx的配置文件,终端命令如下:
sudo ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
6.安装make包,终端命令如下:
sudo apt install make
7.编译nginx,终端命令如下:
sudo make
8.安装nginx,终端命令如下:
sudo make install
正常安装到这里就OK了,但是这里有部分可能发生报错,报错情况如下:
这里先不说解决方法,后面会一起解决
9.查看nginx是否安装成功,终端命令如下:
cd /usr/local/nginx/sbin
./nginx -t
如果执行结果如下图所示,那么恭喜你安装成功,如果没有安装的同学请继续看下面的错误排查
打开浏览器输入localhost
,查看结果是否如图所示:
安装nginx遇到的错误解决
错误1:open() “/usr/local/nginx/logs/error/log” failed,如图所示:
- 当前用户权限不够,使用root用户
su root
- 或者在命令前加
sudo
sudo ./nginx
错误2:open() “/usr/local/nginx/logs/nginx.pid” failed,如图所示:
解决方法:
- 进入到logs目录发现确实没有nginx.pid文件,指定配置文件启动nginx后,nginx.pid生成
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
错误3:getpwnam(“www”) failed,如图所示:
解决方法:
- 错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www
进入/usr/sbin/文件夹
添加www用户组cd /usr/sbin/
用户www用户sudo groupadd -f www
sudo useradd -g www www
错误4:Address already in use,如图所示:
解决方法:
- 80端口被占用,这时候倘若我门想要再使用这个端口,就会抛出 “error:[Errno 98] Address already in use” 这样的异常。
找到被占用的指定端口号所对应的进程信息并呈现
将查询出来的进程全部关闭sudo lsof -i:80
具体操作如下图:sudo kill -9 (PID号)
安装nginx-rtmp-modeule
nginx-rtmp-modeule下载地址:
https://codechina.csdn.net/mirrors/arut/nginx-rtmp-module?utm_source=csdn_github_accelerator
解压到/usr/local/nginx文件夹下
切换到/usr/local/nginx文件夹,终端命令如下:
cd /usr/local/nginx
修改nginx文件夹下的配置文件,终端命令如下:
sudo ./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/nginx-rtmp-module-dev
再次编译,终端命令如下:
sudo make
安装libx264
安装yasm,终端命令如下:
apt-get install yasm
安装aptitude,终端命令如下:
sudo apt install aptitude
安装libx264,终端命令如下:
sudo aptitude install libx264-dev
安装FFmpeg
安装FFmpeg的依赖包libfaac
,终端命令如下:
sudo aptitude install libfaac-dev
安装FFmpeg的依赖包libmp3lame
,终端命令如下:
sudo aptitude install libmp3lame-dev
安装FFmpeg的依赖包libtheora
,终端命令如下:
sudo aptitude install libtheora-dev
安装FFmpeg的依赖包libvorbis
,终端命令如下:
sudo aptitude install libvorbis-dev
安装FFmpeg的依赖包libxvid
,终端命令如下:
sudo aptitude install libxvidcore-dev
安装FFmpeg的依赖包libxext
,终端命令如下:
sudo aptitude install libxext-dev
安装FFmpeg的依赖包libxfixes
,终端命令如下:
sudo aptitude install libxfixes-dev
安装git
sudo apt install git
下载ffmpeg
,终端命令如下:
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
移动ffmpeg文件夹到/usr/local下,终端命令如下:
sudo mv ffmpeg/ /usr/local/
切换到/usr/local/ffmpeg文件夹,终端命令如下:
cd /usr/local/ffmpeg
修改ffmpeg文件夹下的配置文件,终端命令如下:
./configure --enable-shared --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx264
编译ffmpeg,终端命令如下:
make
安装ffmpeg,终端命令如下:
make install
增加安装目录的动态链接库,终端命令如下:
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
查看指令依赖的动态库,终端命令如下:
ldd ffmpeg
检测fsmpeg是否安装成功,终端命令如下:
ffmpeg -version
出现如下所示,即安装成功
一个坚持学习,坚持成长,坚持分享的人,即使再不聪明,也一定会成为优秀的人!
如果看完觉得有所收获的话,记得一键三连哦,谢谢大家!