当前位置:网站首页>利用LNMP实现wordpress站点搭建
利用LNMP实现wordpress站点搭建
2022-07-05 22:44:00 【wwzroom】
利用LNMP实现wordpress站点搭建
1.准备资源
[[email protected]:~]#
cd /usr/local/src
#然后利用lrzsz实现windows上传对应的文件
[[email protected]:/usr/local/src]#
ll
-rw-r--r-- 1 root root 661718255 Sep 1 2021 mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
-rw-r--r-- 1 root root 1039530 Sep 1 2021 nginx-1.18.0.tar.gz
-rw-r--r-- 1 root root 16866582 Jun 6 17:38 php-7.4.29.tar.gz
-rw-r--r-- 1 root root 21861227 May 31 14:22 wordpress-6.0-zh_CN.tar.gz
2.编写脚本
[[email protected]:/usr/local/src]#
vim install_lnmpcentos7.sh
#!/bin/bash
SRC_DIR=/usr/local/src
NGINX='nginx-1.18.0.tar.gz'
MYSQL='mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz'
PHP='php-7.4.29.tar.gz'
APP='wordpress-6.0-zh_CN.tar.gz'
COLOR="echo -e \\033[01;31m"
END='\033[0m'
MYSQL_ROOT_PASSWORD=laowang
MYSQL_WORDPRESS_PASSWORD=laowang
CPU=`lscpu| awk '/^CPU\(s\):/{print $NF}'`
${COLOR}'开始安装基于LNMP的wordpress'$END
sleep 3
check_file (){
cd $SRC_DIR
$COLOR"请将相关软件放在${SRC_DIR}目录下"$END
if [ ! -e $NGINX ];then
$COLOR"缺少${NGINX}文件"$END
exit
elif [ ! -e $MYSQL ];then
$COLOR"缺少${MYSQL}文件"$END
exit
elif [ ! -e $PHP ];then
$COLOR"缺少${PHP}文件"$END
exit
elif [ ! -e $APP ];then
$COLOR"缺少${APP}文件"$END
exit
else
$COLOR"相关文件已准备好"$END
fi
}
install_mysql(){
$COLOR"开始安装MySQL数据库"$END
cd $SRC_DIR
tar xf $MYSQL -C /usr/local/
if [ -e /usr/local/mysql ];then
$COLOR"数据库已存在,安装失败"$END
exit
fi
MYSQL_DIR=`echo $MYSQL| sed -nr 's/^(.*[0-9]).*/\1/p'`
ln -s /usr/local/$MYSQL_DIR /usr/local/mysql
chown -R root.root /usr/local/mysql/
id mysql &> /dev/null || {
useradd -s /sbin/nologin -r mysql ; $COLOR"创建mysql用户"$END; }
yum -y -q install numactl-libs libaio &> /dev/null
echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/lamp.sh
. /etc/profile.d/lamp.sh
cat > /etc/my.cnf <<-EOF [mysqld] server-id=1 log-bin datadir=/data/mysql socket=/data/mysql/mysql.sock log-error=/data/mysql/mysql.log pid-file=/data/mysql/mysql.pid [client] socket=/data/mysql/mysql.sock EOF
[ -d /data ] || mkdir /data
[ -d /data ] || mkdir /data
mysqld --initialize --user=mysql --datadir=/data/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
[ $? -ne 0 ] && {
$COLOR"数据库启动失败,退出!"$END;exit; }
MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.log`
mysqladmin -uroot -p$MYSQL_OLDPASSWORD password $MYSQL_ROOT_PASSWORD &>/dev/null
$COLOR"数据库安装完成"$END
}
install_nginx(){
${COLOR}"开始安装NGINX"$END
id nginx &> /dev/null || {
useradd -s /sbin/nologin -r nginx; $COLOR"创建nginx用户"$END; }
$COLOR"安装nginx相关包"$END
yum -q -y install gcc pcre-devel openssl-devel zlib-devel perl-ExtUtils-Embed git &> /dev/null
cd $SRC_DIR
tar xf $NGINX
# git clone https://github.com/openresty/echo-nginx-module.git || { $COLOR"下载NGINX第三方模块失败,退出!"$END;exit; }
NGINX_DIR=`echo $NGINX| sed -nr 's/^(.*[0-9]).*/\1/p'`
cd $NGINX_DIR
./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_perl_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
make -j $CPU && make install
[ $? -eq 0 ] && $COLOR"NGINX编译安装成功"$END || {
$COLOR"NGINX编译安装失败,退出!"$END;exit; }
[ -d /data/www ] || mkdir -pv /data/www/
cat > /apps/nginx/conf/nginx.conf <<EOF worker_processes auto; events { worker_connections 10240; } http { include mime.types; default_type application/octet-stream; server_tokens off; log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" ' sendfile on; client_max_body_size 100m; keepalive_timeout 65; server { listen 80 default_server; server_name localhost ; root /data/www ; access_log logs/nginx.access.log main; location / { root /data/www/; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root /data/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } } } EOF
echo 'PATH=/apps/nginx/sbin:$PATH' >> /etc/profile.d/lamp.sh
cat > /usr/lib/systemd/system/nginx.service <<EOF [Unit] After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/apps/nginx/sbin/nginx ExecReload=/apps/nginx/sbin/nginx -s reload ExecStop=/apps/nginx/sbin/nginx -s stop [Install] WantedBy=multi-user.target EOF
systemctl daemon-reload
systemctl start nginx
systemctl is-active nginx &> /dev/null || {
$COLOR"NGINX 启动失败,退出!"$END ; exit; }
$COLOR"NGINX安装完成"
}
install_php (){
${COLOR}"开始安装PHP"$END
yum -y -q install gcc make libxml2-devel bzip2-devel libmcrypt-devel libsqlite3x-devel oniguruma-devel &>/dev/null
cd $SRC_DIR
tar xf $PHP
PHP_DIR=`echo $PHP| sed -nr 's/^(.*[0-9]).*/\1/p'`
cd $PHP_DIR
./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
make -j $CPU && make install
[ $? -eq 0 ] && $COLOR"PHP编译安装成功"$END || {
$COLOR"PHP编译安装失败,退出!"$END;exit; }
cp php.ini-production /etc/php.ini
mkdir /etc/php.d/
cat > /etc/php.d/opcache.ini <<EOF [opcache] zend_extension=opcache.so opcache.enable=1 EOF
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
cd /apps/php74/etc
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf
id nginx &> /dev/null || {
useradd -s /sbin/nologin -r nginx; $COLOR"创建nginx用户"$END; }
sed -i.bak -e 's/^user.*/user = nginx/' -e 's/^group.*/group = nginx/' /apps/php74/etc/php-fpm.d/www.conf
systemctl daemon-reload
systemctl start php-fpm
systemctl is-active php-fpm &> /dev/null || {
$COLOR"PHP-FPM 启动失败,退出!"$END ; exit; }
$COLOR"PHP安装完成"
}
install_wordpress(){
cd $SRC_DIR
tar xf $APP
[ -d /data/www ] || mkdir -pv /data/www
mv wordpress/* /data/www/
chown -R nginx.nginx /data/www/wp-content/
cd /data/www/
mv wp-config-sample.php wp-config.php
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e "create database wordpress;grant all on wordpress.* to [email protected]'127.0.0.1' identified by '$MYSQL_WORDPRESS_PASSWORD'" &>/dev/null
sed -i.bak -e 's/database_name_here/wordpress/' -e 's/username_here/wordpress/' -e 's/password_here/'''$MYSQL_WORDPRESS_PASSWORD'''/' -e 's/localhost/127.0.0.1/' wp-config.php
$COLOR"WORDPRESS安装完成"
}
check_file
install_mysql
install_nginx
install_php
install_wordpress
3.执行脚本一键部署
[[email protected]:/usr/local/src]#
bash install_lnmpcentos7.sh
4.主机hosts文件添加dns解析地址
C:\Windows\System32\drivers\etc\hosts 内添加10.0.0.17 blog.wwzroom.org,
5.访问注册登录http://blog.wwzroom.org
详见下图
6.小技巧
1.隐藏PHP版本
[[email protected]:/usr/local/src]#
vim /etc/php.ini
expose_php = off #这只为off
[[email protected]:/usr/local/src]#
systemctl restart php-fpm
2.上传大图片实现
1)修改php-fpm配置文件,调整允许图片大小。
[[email protected]:/usr/local/src]#
vim /etc/php.ini
post_max_size = 20M
upload_max_filesize = 20M
[[email protected]:/usr/local/src]#
systemctl restart php-fpm
2)修改nginx配置文件(脚本中已经设置,可以不用再设置了)
[[email protected]:/usr/local/src]#
vim /apps/nginx/conf/nginx.conf
client_max_body_size 100m;
边栏推荐
- 分布式解决方案选型
- Postman core function analysis - parameterization and test report
- 70. Climbing Stairs. Sol
- [Chongqing Guangdong education] National Open University autumn 2018 0088-21t Insurance Introduction reference questions
- Go language learning tutorial (XV)
- BFC block level formatting context
- Shelved in TortoiseSVN- Shelve in TortoiseSVN?
- Assign the output of a command to a variable [repeat] - assigning the output of a command to a variable [duplicate]
- Nacos 的安装与服务的注册
- Global and Chinese markets for reciprocating seal compressors 2022-2028: Research Report on technology, participants, trends, market size and share
猜你喜欢
[error record] file search strategy in groovy project (src/main/groovy/script.groovy needs to be used in the main function | groovy script directly uses the relative path of code)
Google Maps case
Postman core function analysis - parameterization and test report
audiopolicy
EasyCVR集群部署如何解决项目中的海量视频接入与大并发需求?
Post-90s tester: "after joining Ali, this time, I decided not to change jobs."
Navigation day answer applet: preliminary competition of navigation knowledge competition
Overview of Fourier analysis
Paddle Serving v0.9.0 重磅发布多机多卡分布式推理框架
Codeforces Global Round 19
随机推荐
我对新中台模型的一些经验思考总结
Metaverse Ape猿界应邀出席2022·粤港澳大湾区元宇宙和web3.0主题峰会,分享猿界在Web3时代从技术到应用的文明进化历程
南京:全面启用商品房买卖电子合同
Global and Chinese markets of tantalum heat exchangers 2022-2028: Research Report on technology, participants, trends, market size and share
The code generator has deoptimised the styling of xx/typescript.js as it exceeds the max of 500kb
Navigation day answer applet: preliminary competition of navigation knowledge competition
New 3D particle function in QT 6.3
d3dx9_ How to repair 31.dll_ d3dx9_ 31. Solution to missing DLL
[speech processing] speech signal denoising and denoising based on Matlab GUI low-pass filter [including Matlab source code 1708]
Arduino 测量交流电流
Nacos installation and service registration
终于搞懂什么是动态规划的
How to quickly experience oneos
Overriding equals() & hashCode() in sub classes … considering super fields
Nacos 的安装与服务的注册
Nangou Gili hard Kai font TTF Download with installation tutorial
Spectrum analysis of ADC sampling sequence based on stm32
344. Reverse String. Sol
基于STM32的ADC采样序列频谱分析
分布式解决方案选型