1台 Linux+Nginx+PHP+WordPress 系统:CentOS 7.9
1台 MySQL+Redis 服务器 系统:CentOS 7.9
<Mysql>
hostnamectl set-hostname MySQL-Redis
bash
yum update -y #非必要不更新,太久了
yum install mariadb-server -y
systemctl enable --now mariadb
mysql
create database wordpress;
create user wordpress@'另一台机IP' identified by '123456';
grant all on wordpress.* to wordpress@'另一台机IP';
exit;
<LNP服务器>
hostnamectl set-hostname LNP-Server
bash
yum install mariadb-server -y
mysql -uwordpress -p123456 -h + MYSQL服务器IP #验证mysql连接性
<----------编译安装php---------->
yum -y install gcc openssl-devel libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel #一定要检查是否全部安装成功,否则编译一定有问题
####### yum update -y #如果安装失败就更新一下再安装
wget https://www.php.net/distributions/php-7.4.28.tar.xz
tar xf php-7.4.28.tar.xz
cd php-7.4.28/
<----------编译前检查---------->
./configure --prefix=/apps/php74 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-zlib --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --enable-xml --enable-sockets --enable-fpm -enable-maintainer-zts --disable-fileinfo
Thank you for using PHP. #出现该信息才算成功
<----------编译---------->
make && make install
----------------------------------------------------------------'
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /apps/php74/lib/php/extensions/no-debug-zts-20190902/
Installing PHP CLI binary: /apps/php74/bin/
Installing PHP CLI man page: /apps/php74/php/man/man1/
Installing PHP FPM binary: /apps/php74/sbin/
Installing PHP FPM defconfig: /apps/php74/etc/
Installing PHP FPM man page: /apps/php74/php/man/man8/
Installing PHP FPM status page: /apps/php74/php/php/fpm/
Installing phpdbg binary: /apps/php74/bin/
Installing phpdbg man page: /apps/php74/php/man/man1/
Installing PHP CGI binary: /apps/php74/bin/
Installing PHP CGI man page: /apps/php74/php/man/man1/
Installing build environment: /apps/php74/lib/php/build/
Installing header files: /apps/php74/include/php/
Installing helper programs: /apps/php74/bin/
program: phpize
program: php-config
Installing man pages: /apps/php74/php/man/man1/
page: phpize.1
page: php-config.1
/usr/local/src/php-7.4.28/build/shtool install -c ext/phar/phar.phar /apps/php74/bin/phar.phar
ln -s -f phar.phar /apps/php74/bin/phar
Installing PDO headers: /apps/php74/include/php/ext/pdo/
###出现这类字眼就算安装成功
----------------------------------------------------------------
cp php.ini-production /etc/php.ini
cd /apps/php74/etc
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf
vim www.conf
修改下列参数为:
;user = nobody
user = www
;group = nobody
group = www
;pm.status_path = /status
pm.status_path = /status
;ping.path = /ping
ping.path = /ping
;access.log = log/$pool.access.log
access.log = log/$pool.access.log
;slowlog = log/$pool.log.slow
slowlog = log/$pool.log.slow
:wq!
grep '^[^;]' www.conf #使用该命令隐藏所有以;开头的行,用作比对:
[www]
user = www
group = www
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /status
ping.path = /ping
access.log = log/$pool.access.log
slowlog = log/$pool.log.slow
useradd -r -s /sbin/nologin www
mkdir /apps/php74/log
/apps/php74/sbin/php-fpm -t #检查配置文件语法
[28-Dec-2023 10:16:48] NOTICE: configuration file /apps/php74/etc/php-fpm.conf test is successful
cp ~/php-7.4.28/sapi/fpm/php-fpm.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl enable --now php-fpm
<----------编译安装nginx---------->
yum -y install gcc pcre-devel openssl-devel zlib-devel #安装依赖
cd /usr/local/src/ #nginx源码放置位置
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar xf nginx-1.20.2.tar.gz
cd nginx-1.20.2
<----------编译前检查---------->
./configure --prefix=/apps/nginx --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
注意看依赖有没有缺少,然后安装
<----------编译---------->
make && make install
----------------------------------------------------------------
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
:wq!
vim /apps/nginx/conf/nginx.conf\
#仅修改以下内容:
pid /apps/nginx/run/nginx.pid;
:wq!
systemctl daemon-reload
systemctl enable --now nginx
<----------配置 Nginx 支持 fastcgi---------->
vim /apps/nginx/conf/nginx.conf
#仅修改以下内容,没有的要自己加上去,有点乱,仔细对比
worker_processes auto;
pid /apps/nginx/run/nginx.pid;
server {
listen 80;
server_name localhost;
location / {
root /data/nginx/wordpress;
index index.php index.html index.htm;
}
location \.php$ {
root /data/nginx/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ^/(ping|pm_status)$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
}
:wq!
-----------------------------------------------------------------------------
grep -Ev '#|^$' /apps/nginx/conf/nginx.conf #隐藏注释符继续对比
worker_processes auto;
pid /apps/nginx/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost; #指定域名
location / {
root /data/nginx/wordpress; #指定数据目录
index index.php index.html index.htm; # 指定默认主页文件
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location \.php$ { #实现php-fpm
root /data/nginx/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ^/(ping|pm_status)$ { #PHP检测状态页
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
}
}
}
-------------------------------------------------------------------------------
systemctl reload nginx
mkdir -p /data/nginx/wordpress
vim /data/nginx/wordpress/phpinfo.php
<?php
phpinfo();
?>
:wq!
###测试页面:
浏览器输入:ip/ping
###状态页:ip/phpinfo.php
<----------部署WordPress---------->
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
cp -r wordpress/* /data/nginx/wordpress
chown -R www.www /data/nginx/wordpress/
可选使用域名访问:添加hosts:
C:\Windows\System32\drivers\etc\hosts
添加内容为ip<空格>域名
使用ip或域名访问即可看到WordPress首页
nginx源码位置:/usr/local/src/
安装位置:/apps/nginx
php源码位置:~/php-7.4.28.tar.xz
安装位置:/apps/php74
WordPress安装位置:/data/nginx/wordpress/