说明
- LNMP经典网站环境,Linux系统,Nginx网站服务,MySQL数据库(Mariadb),PHP(运行环境)
- Wordpress PHP代码
建议的搭建顺序
- MySQL数据库(mariadb)
- PHP环境 php7.x
- Nginx直接安装即可
部署数据库
安装数据库
apt install -y mariadb-server mariadb-client
启动数据库
systemctl enable --now mariadb
检查
#检查端口ss -lntup | grep mariadb#检查jinchengps -ef | grep mariadb
数据库初始化(优化)
#安装后进行即可,进行1次即可mysql_secure_installation#会出现以下提示 照着整就行NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDBSERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andhaven't set the root password yet, you should just press enter here.Enter current password for root (enter for none): #回车OK, successfully used password, moving on...Setting the root password or using the unix_socket ensures that nobodycan log into the MariaDB root user without the proper authorisation.You already have your root account protected, so you can safely answer 'n'.Switch to unix_socket authentication [Y/n] n #no ... skipping.You already have your root account protected, so you can safely answer 'n'.Change the root password? [Y/n] Y #YNew password: Re-enter new password: Password updated successfully!Reloading privilege tables..... Success!By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.Remove anonymous users? [Y/n] Y #Y ... Success!Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] Y #Y... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? [Y/n] Y #Y- Dropping test database...... Success!- Removing privileges on test database...... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? [Y/n] Y #Y... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!
进入数据库,创建库,创建用户
#-u 用户名#-p 密码#使用root登录 #密码为root密码mysql -uroot -p#出现以下提示为进入成功Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 39Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> #创建库并检查create tatabase wordpress; #创建一个叫wordpress的库#添加用户并检查grant all on wordpress.* to 'wordpress'@'localhost' identified by 'yangfan996'#上面解析:👆#给予所有all(所有)权限对于wordpress这个库下所有 wordpress用户登录方式为本地登录 用户密码:yangfan996#通过wordpress用户登录测试mysql -uwordpress -pyangfan996
一些删除操作:
1.删除数据库:drop database wordpress;
2.删除用户:drop user 'wordpress'@'localhost'; 刷新权限 flush privileges;
👆22行说明:grent all on wordpress.* to 'wordpress'@'localhost' identified by 'lidao996';
添加用户 设置权限
grent all on wordpress.* to 'wordpress'@'localhost' identified by 'Lidao996'
所有权限对于wordpress库所有表 to‘用户’@‘白名单(本地登录)’ 密码是Lidao996
PHP环境部署
#安装php#1.生成本地apt缓存apt update#2.安装下面的软件包apt install -y php8.1-bcmath php8.1-bz2 php8.1-cgi php8.1-cli php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-intl \php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-soap \php8.1-xml php8.1-zip php8.1-apcu php8.1-redis php8.1-snmp#2.检查数量dpkg -l | grep php8.1|wc -l
修改配置文件,检查启动服务
#1.查看软件包的配置文件dpkg -L php8.1-fpm/etc/php/8.1/fpm/php-fpm.conf #php-fpm主配置文件/etc/php/8.1/fpm/pool.d/etc/php/8.1/fpm/pool.d/www.conf #子配置文件.#2.修改子配置文件vim /etc/php/8.1/fpm/pool.d/www.conf#修改后查看👇egrep '^(user|group|listen)' /etc/php/8.1/fpm/pool.d/www.confuser = www-datagroup = www-datalisten = 127.0.0.1:9000 #主要修改这里listen.owner = www-datalisten.group = www-data#user和group 看后续nginx安装后的用户#3.检查配置文件php-fpm8.1 -t输出为以下👇[14-Sep-2024 10:21:34] NOTICE: PHP message: PHP Warning: Cannot load module "http" because required module "raphf" is not loaded in Unknown on line 0[14-Sep-2024 10:21:34] NOTICE: configuration file /etc/php/8.1/fpm/php-fpm.conf test is successful用echo $?检查是否错误,没有则返回0#4.启动(重启)dpkg -L php8.1-fpm | grep service#启动php8.1-fpmsystemctl enable --now php8.1-fpm#查看输出是否有错误echo $?#重启php8.1-fpmsystemctl restart php8.1-fpm
nginx
#检查是否安装apache#关闭apache2服务apt autoremove apache2 apache2-bin#安装nginxapt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring下载nginx配置文件curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/nullgpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg#上面命令执行后应该有如下输出:类似的👇pub rsa2048 2011-08-19 [SC] [expires: 2027-05-24]573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62uid nginx signing key <signing-key@nginx.com>echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \| sudo tee /etc/apt/sources.list.d/nginx.listapt update #生成本地apt缓存apt install -y nginx #下载nginxdpkg -l | grep nginx #查看nginx是否安装#3.修改nginx配置文件/etc/nginx/nginx.conf #主配置文件/etc/nginx/conf.d /etc/nginx/conf.d/default.conf #子配置文件#3.1修改nginx用户为www-data\grep ^user /etc/nginx/nginx.confuser www-dada#4.修改配置文件cp /etc/nginx/conf.d/default.conf{,.bak} #备份子配置文件vim /etc/nginx/conf.d/default.conf #修改子配置文件cat /etc/nginx/conf.d/default.conf #修改后查看如下👇server {listen 80;server_name localhost;root /app/code/blog/;location / {index index.php;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}#5.检查语法,启动/重启服务nginx -t #检查nginx文件配置参数echo $? #查看输出是否有错systemctl enable --now nginx #启动nginx服务(开机自启)#输出以下👇Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.Executing: /lib/systemd/systemd-sysv-install enable nginx
部署代码(业务)
#1.创建代码目录
mkdir -p /app/code/blog#2.下载代码
#下载网址:https://cn.wordpress.org/download/#下载压缩包
wget https://cn.wordpress.org/latest-zh_CN.zip#3.解压代码移动到网站目录
unzip -t latest-zh_CN.zip #检查安装包完整性 正确输出OK,错误可能输出bad CRC (inflater)
unzip latest-zh_CN.zip #解压到当前目录
mv wordpress/* /app/code/blog/ #移动wordpress下所有到指定目录(防止因为多出来的wordpress目录而找不到wordpress下文件)#4.设置所属用户
chown -R www-data.www-data /app/code/blog/#5.待补充
放行网页访问(80)端口
5.浏览器搜索域名自动下载域名的文件
原因:可能由于nginx服务没有转发给php服务建议检查nginx子配置文件