当前位置:网站首页>Using LNMP to build WordPress sites
Using LNMP to build WordPress sites
2022-07-05 23:00:00 【wwzroom】
utilize LNMP Realization wordpress Site construction
1. Prepare resources
[[email protected]:~]#
cd /usr/local/src
# And then use it lrzsz Realization windows Upload the corresponding file
[[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. Write a script
[[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}' Start installation based on LNMP Of wordpress'$END
sleep 3
check_file (){
cd $SRC_DIR
$COLOR" Please put the relevant software in ${SRC_DIR} Under the table of contents "$END
if [ ! -e $NGINX ];then
$COLOR" The lack of ${NGINX} file "$END
exit
elif [ ! -e $MYSQL ];then
$COLOR" The lack of ${MYSQL} file "$END
exit
elif [ ! -e $PHP ];then
$COLOR" The lack of ${PHP} file "$END
exit
elif [ ! -e $APP ];then
$COLOR" The lack of ${APP} file "$END
exit
else
$COLOR" Relevant documents are ready "$END
fi
}
install_mysql(){
$COLOR" Start installation MySQL database "$END
cd $SRC_DIR
tar xf $MYSQL -C /usr/local/
if [ -e /usr/local/mysql ];then
$COLOR" Database already exists , Installation failed "$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" establish mysql user "$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" Database startup failed , sign out !"$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" Database installation complete "$END
}
install_nginx(){
${COLOR}" Start installation NGINX"$END
id nginx &> /dev/null || {
useradd -s /sbin/nologin -r nginx; $COLOR" establish nginx user "$END; }
$COLOR" install nginx Related packages "$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" download NGINX The third-party module failed , sign out !"$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 Compile and install successfully "$END || {
$COLOR"NGINX Compilation and installation failed , sign out !"$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 Boot failure , sign out !"$END ; exit; }
$COLOR"NGINX installation is complete "
}
install_php (){
${COLOR}" Start installation 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 Compile and install successfully "$END || {
$COLOR"PHP Compilation and installation failed , sign out !"$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" establish nginx user "$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 Boot failure , sign out !"$END ; exit; }
$COLOR"PHP installation is complete "
}
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 installation is complete "
}
check_file
install_mysql
install_nginx
install_php
install_wordpress
3. Execute script one click deployment
[[email protected]:/usr/local/src]#
bash install_lnmpcentos7.sh
4. host hosts File to add dns Address resolution
C:\Windows\System32\drivers\etc\hosts Add in 10.0.0.17 blog.wwzroom.org,
5. Access registration login http://blog.wwzroom.org
As shown in the figure below




6. Tips
1. hide PHP edition
[[email protected]:/usr/local/src]#
vim /etc/php.ini
expose_php = off # It's just for you off
[[email protected]:/usr/local/src]#
systemctl restart php-fpm
2. Upload big pictures
1) modify php-fpm The configuration file , Adjust the allowed picture size .
[[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) modify nginx The configuration file ( It has been set in the script , You don't need to set it anymore )
[[email protected]:/usr/local/src]#
vim /apps/nginx/conf/nginx.conf
client_max_body_size 100m;
边栏推荐
- Common JVM tools and optimization strategies
- Post-90s tester: "after joining Ali, this time, I decided not to change jobs."
- Thoroughly understand JVM class loading subsystem
- Douban scoring applet Part-2
- Negative sampling
- 利用LNMP实现wordpress站点搭建
- TypeError: this. getOptions is not a function
- Binary tree (III) -- heap sort optimization, top k problem
- Distributed resource management and task scheduling framework yarn
- 一文搞定JVM常见工具和优化策略
猜你喜欢

Vcomp110.dll download -vcomp110 What if DLL is lost

Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem

Matlab smooth curve connection scatter diagram
![[screen recording] how to record in the OBS area](/img/34/bd06bd74edcdabaf678c8d7385cae9.jpg)
[screen recording] how to record in the OBS area

一文搞定JVM常见工具和优化策略

The method and principle of viewing the last modification time of the web page

Alibaba Tianchi SQL training camp task4 learning notes

MoCo: Momentum Contrast for Unsupervised Visual Representation Learning

MCU case -int0 and INT1 interrupt count

I closed the open source project alinesno cloud service
随机推荐
My experience and summary of the new Zhongtai model
audiopolicy
Why does the C# compiler allow an explicit cast between IEnumerable&lt; T&gt; and TAlmostAnything?
一文搞定JVM常见工具和优化策略
Global and Chinese markets for welding products 2022-2028: Research Report on technology, participants, trends, market size and share
【Note17】PECI(Platform Environment Control Interface)
TypeError: this. getOptions is not a function
APK加固技术的演变,APK加固技术和不足之处
Selenium+pytest automated test framework practice
Codeforces Global Round 19
Nacos 的安装与服务的注册
Three. Js-01 getting started
The code generator has deoptimised the styling of xx/typescript.js as it exceeds the max of 500kb
TCC of distributed solutions
Common model making instructions
Boring boring
关于MySQL的30条优化技巧,超实用
Three.js-01 入门
谷歌地图案例
3 find the greatest common divisor and the least common multiple