Linux下手动安装NGINX和PHP
Linux下编译安装NGINX
准备工作
官网下载nginx包:
官网
,nginx-1.23.2下载地址:
下载
安装依赖包:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| # centos使用:
yum install -y make gcc gcc-c++ openssl openssl-dev pcre pcre-devel zlib zlib-devel libssl-dev
# ubuntu使用:
apt install make gcc libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl openssl-dev
# 如果没有openssl-dev可以使用
apt install libssl-dev
# –prefix=后面的是安装目录,也可以不指定。
./configure --prefix=/usr/local/nginx
# 如果需要ssl模块↓↓↓
# --with-openssl=path ,路径地址为openssl的源代码路径并非编译后的路径
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-openssl=/root/openssl-1.1.1u
make
make install
# 添加www用户
groupadd www
useradd -g www -s /sbin/nologin -d /dev/null www
|
不指定安装目录时,默认位置为 /usr/sbin/nginx:主程序 /etc/nginx:存放配置文件 /usr/share/nginx:存放项目文件 /var/log/nginx:存放日志 一般自动安装配置文件目录和主程序目录不变,因为版本原因,其它目录可能会变,但是都可以从配置文件里ngxin.conf里找到对应的位置。
sudo update-alternatives –config javashell
启动 ./nginx 快速停止 ./nginx -s stop 在退出前完成已经接受的连接请求 ./nginx -s quit 重新加载配置 ./nginx -s reload
1
2
3
4
5
6
| :g/^#/d # 删除注释
:g/\s#/d
:g/^$/d # 删除空行
# 查看有关nginx的进程 然后浏览器输入IP地址,访问成功即安装成功
ps -ef | grep nginx
|
Linux下编译安装PHP
准备工作
PHP官网下载你想要的版本:
官网
php-7.4.33下载地址:
下载
解压,然后进入解压后的文件夹,开始安装依赖
1
| yum install -y gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gd sqlite sqlite-devel net-snmp net-snmp-devel oniguruma oniguruma-devel httpd-devel
|
prefix=php的安装路径
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysqli=mysqlnd \
--enable-pdo \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/ \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-pcre-regex \
--with-zlib \
--with-bz2 \
--enable-calendar \
--disable-phar \
--with-curl \
--enable-dba \
--with-libxml-dir \
--enable-ftp \
--enable-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-jis-conv \
--with-mhash \
--enable-mbstring \
--disable-opcache \
--enable-pcntl \
--enable-xml \
--disable-rpath \
--enable-shmop \
--enable-sockets \
--enable-zip \
--enable-bcmath \
--with-snmp \
--disable-ipv6 \
--with-gettext \
--disable-rpath \
--disable-debug \
--enable-embedded-mysqli \
--with-mysql-sock=/usr/local/mysql \
--with-apxs2=/usr/bin/apxs
|
如遇到报错缺失:oniguruma
1
2
3
4
| git clone https://github.com/kkos/oniguruma
cd oniguruma
./configure --prefix=/usr --libdir=/lib64
make && make install
|
编译安装PHP
在源码包中找到php.ini-production复制到/usr/local/php,并改名为php.ini
1
| cp php.ini-production /usr/local/php/php.ini
|
[可选项] 让PHP错误信息打印
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| vim /usr/local/php/php.ini
# 查找 cgi.fix_pathinfo:在文件中找到 cgi.fix_pathinfo 这一行,修改为
cgi.fix_pathinfo=0
进入配置目录
cd /usr/local/php/etc/
# 复制并编辑配置文件:
cp php-fpm.conf.default php-fpm.conf
# 编辑一下php-fpm.conf
vim php-fpm.conf
# 添加以下内容
pid = run/php-fpm.pid
user = www
group = www
# 进入php-fpm.d 目录下
cd php-fpm.d
# 复制www.conf
cp www.conf.default www.conf
# 新建用户组及用户www
groupadd www
useradd -g www www
# 启动PHP-FPM
/usr/local/php/sbin/php-fpm
# 停止 直接通过PID杀掉进程
ps -e | grep php-fpm # 获取PID
kill -9 PID
|
在nginx中启用php
1
2
| # 编辑nginx.conf配置文件
vim /usr/local/nginx/conf/nginx.conf
|
查找 location ~ \.php$
,通常在文件中会被注释掉(前面有 #
)
将这一行前的 #
去掉,确保它看起来像这样

保存并退出:按 Esc
,输入 :wq
保存并退出。
这样配置后,Nginx 就能处理 PHP 文件了
PHP安装拓展
下载扩展:
解压和进入目录:
1
2
| tar -zxvf xxx.tgz
cd xxx
|
准备编译环境:
1
| /usr/local/php/bin/phpize
|
配置编译选项(对于特定库,可能需要修改):
编译和安装:
修改 php.ini
:
重启 PHP:
运行 PHP-FPM 或 Nginx:
1
| /usr/local/php/sbin/php-fpm
|
这样就完成了扩展的安装!
添加nginx到服务中
创建符号链接:
1
| ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
|
编辑 Nginx 服务脚本:
将以下内容粘贴到文件中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$COM
;;
stop)
kill -s QUIT $(cat $PID)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PID)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
|
赋予执行权限:
1
| chmod +x /etc/init.d/nginx
|
添加为系统服务:
完成后,你可以通过以下命令管理 Nginx 服务:
- 启动:
service nginx start
- 停止:
service nginx stop
- 重启:
service nginx restart
- 重载:
service nginx reload