Linux手动安装nginx和php

温馨提醒
总结摘要
没有自己想要的版本,自己动手丰衣足食

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

1
2
make
make install

在源码包中找到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. 下载扩展

    • 打开 PECL下载需要的扩展,使用命令:

      1
      
      wget xxx.xxx.tgz
  2. 解压和进入目录

    1
    2
    
    tar -zxvf xxx.tgz
    cd xxx
  3. 准备编译环境

    1
    
    /usr/local/php/bin/phpize
  4. 配置编译选项(对于特定库,可能需要修改):

    • 基本命令:

      1
      
      ./configure --with-php-config=/usr/local/php/bin/php-config
    • 例如,安装 GD 库(对于 PHP 7.4 及之后版本):

      1
      
      ./configure --with-php-config=/usr/local/php/bin/php-config --with-freetype=/usr/local/freetype --enable-gd --with-jpeg=/usr/include --with-webp=/usr/include/webp
  5. 编译和安装

    1
    2
    
    make
    make install
  6. 修改 php.ini

    • /usr/local/php/etc/php.ini 中添加:

      1
      
      extension=ssh2.so
  7. 重启 PHP

    • 运行 PHP-FPM 或 Nginx:

      1
      
      /usr/local/php/sbin/php-fpm

这样就完成了扩展的安装!

添加nginx到服务中

  1. 创建符号链接

    1
    
    ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
  2. 编辑 Nginx 服务脚本

    1
    
    vim /etc/init.d/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
  3. 赋予执行权限

    1
    
    chmod +x /etc/init.d/nginx
  4. 添加为系统服务

    1
    
    chkconfig --add nginx

完成后,你可以通过以下命令管理 Nginx 服务:

  • 启动:service nginx start
  • 停止:service nginx stop
  • 重启:service nginx restart
  • 重载:service nginx reload