首页 > 其他 > 详细

基于LAMP架构,一键安装wordpress博客

时间:2020-11-02 00:27:37      阅读:34      评论:0      收藏:0      [点我收藏+]

本脚本基于mysql-5.6.48版本数据库,只需要提前准备好mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz的安装包即可。

其他几项使用wget的包可以提前进行下载,然后再把本脚本中的wget注释掉即可。

(本脚本算是一个LAMP架构的总结,全部都是原命令)

#!/bin/bash

install_httpd(){
yum -y install gcc make pcre-devel openssl-devel expat-devel wget bzip2
wget https://downloads.apache.org//apr/apr-1.7.0.tar.bz2
wget https://downloads.apache.org//apr/apr-util-1.6.1.tar.bz2
wget https://downloads.apache.org//httpd/httpd-2.4.46.tar.bz2

tar xvf apr-1.7.0.tar.bz2
tar xvf apr-util-1.6.1.tar.bz2
tar xvf httpd-2.4.46.tar.bz2

mv apr-1.7.0 httpd-2.4.46/srclib/apr
mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util

cd httpd-2.4.46/
./configure --prefix=/apps/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make && make install

useradd -s /sbin/nologin -r apache

sed -ri ‘s#(.*) daemon$#\1 apache#g‘ /apps/httpd/conf/httpd.conf

ln -s /apps/httpd/bin* /usr/bin/

echo "MANDATORY_MANPATH           /apps/httpd/man" >> /etc/man_db.conf

cat > /usr/lib/systemd/system/httpd.service << EOF
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)

[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/apps/httpd/bin/apachectl start
#ExecStart=/apps/httpd24/bin/httpd $OPTIONS -k start
ExecReload=/apps/httpd/bin/apachectl graceful
#ExecReload=/apps/httpd24/bin/httpd $OPTIONS -k graceful
ExecStop=/apps/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

sed -ir -e ‘s/^#LoadModule proxy_module modules\/mod_proxy.so/LoadModule proxy_module modules\/mod_proxy.so/‘ -e ‘s/^\#LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so/LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so/‘ -e ‘s/DirectoryIndex.*/DirectoryIndex index.php index.html/‘ /apps/httpd/conf/httpd.conf

echo "AddType application/x-httpd-php .php" >> /apps/httpd/conf/httpd.conf

cat >> /apps/httpd/conf/httpd.conf <<EOF
<virtualhost *:80>
servername blog.magedu.org
documentroot /data/wordpress
<directory /data/wordpress>
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/wordpress/$1
ProxyPassMatch ^/(pm_status|ping)$ fcgi://127.0.0.1:9000/$1
CustomLog "logs/access_wordpress_log" common
</virtualhost>
EOF


systemctl daemon-reload
systemctl enable --now httpd
cd /root
}

install_mysqld(){
groupadd -r -g 306 mysql
useradd -r -g 306 -u 306 -d /data/mysql mysql
echo "开始安装依赖包......"
yum -y install libaio perl-Data-Dumper &>/dev/null
mkdir /data/mysql && chown -R mysql.mysql /data/mysql
echo "开始解压mysql-5.6.48-linux......"
tar xf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
echo "解压完成"
ln -s /usr/local/mysql-5.6.48-linux-glibc2.12-x86_64 /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql
echo "授权完成,开始准备相关文件......"
mv /etc/my.cnf /etc/my.cnf.back
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cat > /etc/my.cnf <<EOF
[mysqld]
datadir=/data/mysql
innodb_file_per_table=on
skip_name_resolve=on
EOF
cd /usr/local/mysql
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql &>/dev/null
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start &>/dev/null
ln -s /usr/local/mysql/bin/* /usr/bin/
systemctl start mysqld
cd - &>/dev/null
echo "安装完成。"
mysql -e ‘create database wordpress‘
mysql -e ‘create database discuz‘
mysql -e ‘grant all on wordpress.* to wordpress@"10.0.0.%" identified by "123456"‘
mysql -e ‘grant all on discuz.* to discuz@"10.0.0.%" identified by "123456"‘
cd /root
}

install_php(){
yum install -y gcc libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel
wget https://www.php.net/distributions/php-7.4.12.tar.xz
tar xf php-7.4.12.tar.xz
cd php-7.4.12
./configure --prefix=/apps/php74 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-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 && make install
ln -s /apps/php74/bin/* /usr/bin/
cp /root/php-7.4.12/php.ini-production /etc/php-ini
sed -ir -e ‘s/;date.timezone =/date.timezone = Asia\/Shanghai/g‘ -e ‘s/upload_max_filesize = 2M/upload_max_filesize = 20M/g‘ /etc/php-ini

cp /root/php-7.4.12/sapi/fpm/php-fpm.service /usr/lib/systemd/system/
systemctl daemon-reload
cp /apps/php74/etc/php-fpm.conf.default /apps/php74/etc/php-fpm.conf
cp /apps/php74/etc/php-fpm.d/www.conf.default /apps/php74/etc/php-fpm.d/www.conf
sed -ir -e ‘s/^user = nobody/user = apache/‘ -e ‘s/group = nobody/group = apache/‘ /apps/php74/etc/php-fpm.d/www.conf
mkdir /etc/php.d
cat > /etc/php.d/opcache.ini <<EOF
[opcache]
zend_extension=opcache.so
opcache.enable=1
EOF
systemctl daemon-reload
systemctl enable --now php-fpm.service
cd /root
}

install_wordpress(){
tar xf wordpress-5.4.2-zh_CN.tar.gz -C /data/
chown -R apache.apache /data/
}

install_mysqld

install_httpd

install_php

install_wordpress

 本脚本由于中间采用了多虚拟机的设置,因此若是运行之后在网页上打不开,请将"/apps/httpd/conf/httpd.conf"配置文件中的家目录指定为/data/wordpress即可

sed -ir ‘s/DocumentRoot "\/apps\/httpd.*"/DocumentRoot "\/data\/wordpress"/‘ /apps/httpd/conf/httpd.conf
sed -ir ‘s@<Directory "\/apps\/httpd\/htdocs">@<Directory "\/data\/wordpress">@‘ /apps/httpd/conf/httpd.conf

基于LAMP架构,一键安装wordpress博客

原文:https://www.cnblogs.com/shang-b/p/13912401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!