一、安装依赖
(1)安装编译环境
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
(2)安装pcre库
cd /usr/local/src
wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz
tar -zxvf pcre-8.39.tar.gz
cd pcre-8.39
./configure
make && make install
(3)安装zlib
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install
(4)安装openssl
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar -zxvf openssl-1.1.0b.tar.gz
cd openssl-1.1.0b
./config
make && make install
二、安装Nginx
(1)下载Nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.10.2.tar.gz
tar -zxvf nginx-1.10.2.tar.gz
cd nginx-1.10.2
(2)添加Nginx启动用户nginx
groupadd -r nginx
useradd -r -g nginx nginx
(3)编译安装
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_mp4_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre=/usr/local/src/pcre-8.39 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/src/openssl-1.1.0b
make && make install
(4)测试
先创建目录,否则nginx启动会报错
mkdir -p /var/tmp/nginx/client
启动
cd /usr/local/nginx/sbin
./nginx
浏览器输入ip地址,看到下面的信息表示安装成功
三、安装php
(1)先安装依赖
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel
yum -y install gcc gcc-c++ glibc
yum -y install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel
(2)下载并编译安装PHP 7.3.24(这里选择了和macOS Big Sur自带的php版本)
cd /usr/local/src
wget http://au1.php.net/get/php-7.3.24.tar.gz/from/this/mirror
tar -zvxf mirror
cd php-7.3.24
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \
--enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath \
--enable-inline-optimization --with-bz2 --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli \
--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar
make && make install
(3)如果提示Configure报错:Please reinstall the libzip distribution
移除旧的libzip
yum remove libzip
安装新版本
cd /usr/local/src
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
(4)如果提示编译报错 configure: error: off_t undefined; check your library configuration
添加搜索路径到配置文件
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
更新配置
ldconfig -v
(5)如果提示编译报错/usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory,则执行
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
四、配置php
cd /usr/local/src/php-7.3.24
cp php.ini-production /usr/local/php/etc/php.ini
五、配置php-fpm
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
六、添加用户和组
cd /usr/local/php
groupadd www
useradd -g www www
七、修改配置文件
(1)修改php-fpm.conf
cd /usr/local/php/etc/
vim php-fpm.conf
修改文件中的
pid = /usr/local/php/var/run/php-fpm.pid
(2)修改www.conf
cd /usr/local/php/etc/php-fpm.d
vim www.conf
修改
user = www
group = www
八、启动php-fpm
/usr/local/php/sbin/php-fpm
九、整合
user www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
access_log logs/host.access.log;
location / {
root html;
index index.html index.htm;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
}
在/usr/local/nginx/html目录下,新建index.php文件,内容如下:
<?php
phpinfo();
?>
浏览器访问 http://xxx.xxx.xxx.xxx/index.php ,出现如下页面表示正常。
如果浏览器出现 file not found.
则检查
(1)nginx的配置
fastcgi_param SCRIPT_FILENAME {{{web目录}}}$fastcgi_script_name;
(2)nginx的启动用户是否有权限访问{{{web目录}}}
全文完。