安装前准备事项
为确保系统最新执行命令:yum update
安装php
参考资料: Linux下安装php环境并且配置Nginx支持php-fpm模块 Linux编译安装PHP7.4.24及启动
- 点击下载php安装包
- 上传并解压安装包
tar -xzvf php-7.4.24.tar.gz - 安装依赖包
yum install 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 - 执行php的配置命令
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip - 执行make命令
make - 执行安装命令
make install - 在解压后的目录下找到php.ini-production文件,执行命令
cp /opt/php7.4.33/php.ini-development /usr/local/php/lib/php.inicp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
- 修改php.ini文件,执行命令
vim /usr/local/php/lib/php.ini,找到cgi.fix_pathinfo配置项,修改为cgi.fix_pathinfo=0这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0,设置完毕保存并退出
- 创建用户及用户组
groupadd www-datauseradd -g www-data www-data
- 修改php-fpm.conf
vim /usr/local/php/etc/php-fpm.conf- 修改include为php安装的实际目录
include=/usr/local/php/etc/php-fpm.d/*.conf
- 配置php-fpm
cd /usr/local/php/etc/php-fpm.d- 备份原配置文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf vim /usr/local/php/etc/php-fpm.d/www.conf,修改user = www-data,group = www-data
- 启动php-fpm:
/usr/local/sbin/php-fpm - 启动完毕后,php-fpm服务默认使用9000端口,使用
netstat -tln | grep 9000查看端口使用情况
安装nginx
- 上传nginx安装包
- 解压安装包
tar -xzvf nginx-1.26.1.tar.gz - 安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel - 执行configure命令生成MakeFile文件,[options]配置项可忽略
./configure [options] - 执行make命令
make - 执行安装命令
make install - 查看是否安装完成(查看是否有nginx进程)
ps -ef | grep nginx,或者使用./nginx -v查看nginx版本,可以把nginx加入系统环境变量,在任何目录下都可以通过nginx命令操作ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/ - 若存在进程则代表安装成功,则可以切换到
/sbin目录下验证在当前目录下验证 nginx 配置文件是否正确./nginx -t - nginx命令
- 启动nginx:
./nginx - 停止nginx:
./nginx -s stop - 重启nginx:
./nginx -s reload - 查看nginx进程:
ps -ef | grep nginx
- 启动nginx:
安装wordpress
- 点击下载WordPress安装包,上传wordpress安装包至服务器
/app/wordpress/目录下,并解压 - 修改wordpress目录权限
chown -R www /app/wordpress/;给站点目录权限,nginx可读写chown -R nginx.nginx /app/wordpress
配置nginx
- 在
/usr/local/nginx/conf/nginx.conf中添加以下内容#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; 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 服务器IP地址; #charset koi8-r; #access_log logs/host.access.log main; location / { root /app/wordpress; #指定网站根目录 index index.html index.htm index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /app/wordpress;#指定网站根目录 fastcgi_pass 127.0.0.1:9000;#指定php-fpm监听端口 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } - 重新启动nginx
安装MySQL
参考资料: Linux环境下安装部署MySQL8.0以上(内置保姆级教程)- 离线模式 Linux 安装Mysql 详细教程(图文教程)
- 下载MySQL安装包
mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz,上传至服务器/usr/local/目录下,并解压tar -xvf mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz - 检查是否有mysql用户组和mysql用户
groups mysql - 创建mysql用户组和用户
groupadd mysql && useradd -g mysql mysql - 创建数据目录并赋予权限
mkdir /data/mysql/data && chown -R mysql.mysql /data/mysql - 修改配置文件
vim /etc/my.cnf[mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true - 安装并初始化,
cd /usr/local/mysql/bin./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
- 查看mysql密码
cat /data/mysql/mysql.err | grep password - 将
mysql.server放置到/etc/init.d/mysql中,/etc/init.d目录通常用于存放启动脚本,这些脚本用于管理系统服务的启动、停止和重启:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql - 启动mysql服务
service mysql start,并查看进程ps -ef | grep mysql - 开启免密登录:
vim /etc/my.cnf,添加skip-grant-tables,退出保存,重启服务service mysql restart,配置生效 - 修改账号密码
cd /usr/local/mysql/bin./mysqladmin -u root -p不用输入密码直接敲回车进去mysql
- 允许外部访问,默认是localhost,导致navicat工具不能链接数据库
update mysql.user set host = '%' where user = 'root';- 刷新
flush privileges;
- 修改数据库密码
ALTER USER "root"@"%" IDENTIFIED BY "你的密码";(密码要包含大小写特殊符号和数字,否则会出现错误提示),刷新FLUSH PRIVILEGES; - 去掉登录免密
vim /etc/my.cnf,#skip-grant-tables,重启mysql服务service mysql start - 创建wordpress数据库
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - 创建wordpress用户
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '密码'; - 授权wordpress用户访问wordpress数据库
grant all privileges on wordpress.* to 'wordpress'@'%';